/*WebMethods.asmx*/
var WebMethods=function(){WebMethods.initializeBase(this);this._timeout=0;this._userContext=null;this._succeeded=null;this._failed=null;}
WebMethods.prototype={_get_path:function(){var p=this.get_path();if(p)return p;else return WebMethods._staticInstance.get_path();},GetAllTags:function(projectID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetAllTags',false,{projectID:projectID},succeededCallback,failedCallback,userContext);},GetAllTagsForProjects:function(projectIDs,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetAllTagsForProjects',false,{projectIDs:projectIDs},succeededCallback,failedCallback,userContext);},GetUserList:function(projectID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetUserList',false,{projectID:projectID},succeededCallback,failedCallback,userContext);},GetEntityStatesForProcess:function(processID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetEntityStatesForProcess',false,{processID:processID},succeededCallback,failedCallback,userContext);},MarkMessagesAsRead:function(messageIds,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'MarkMessagesAsRead',false,{messageIds:messageIds},succeededCallback,failedCallback,userContext);},GetActionProcessorMessagesAndClear:function(message,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetActionProcessorMessagesAndClear',false,{message:message},succeededCallback,failedCallback,userContext);},GetUserStoryEffortInfo:function(userStoryID,excludeTaskID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetUserStoryEffortInfo',false,{userStoryID:userStoryID,excludeTaskID:excludeTaskID},succeededCallback,failedCallback,userContext);},IsPracticeAvailable:function(projectId,practiceName,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'IsPracticeAvailable',false,{projectId:projectId,practiceName:practiceName},succeededCallback,failedCallback,userContext);},GetUsersList:function(prefixText,count,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetUsersList',false,{prefixText:prefixText,count:count},succeededCallback,failedCallback,userContext);},GetGeneralListEx:function(prefixText,count,projectID,currentProjectID,projectIDs,entityTypeIDs,excludeEntityID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetGeneralListEx',false,{prefixText:prefixText,count:count,projectID:projectID,currentProjectID:currentProjectID,projectIDs:projectIDs,entityTypeIDs:entityTypeIDs,excludeEntityID:excludeEntityID},succeededCallback,failedCallback,userContext);},GetGeneralList:function(prefixText,count,projectID,entityTypeIDs,excludeEntityID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetGeneralList',false,{prefixText:prefixText,count:count,projectID:projectID,entityTypeIDs:entityTypeIDs,excludeEntityID:excludeEntityID},succeededCallback,failedCallback,userContext);},GetBuilds:function(releaseIterationBacklogSelector,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetBuilds',false,{releaseIterationBacklogSelector:releaseIterationBacklogSelector},succeededCallback,failedCallback,userContext);},GetTimeRemainForAssignable:function(assignableID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetTimeRemainForAssignable',false,{assignableID:assignableID},succeededCallback,failedCallback,userContext);},GetTimeRemainForAssignableAndRole:function(assignableID,roleID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetTimeRemainForAssignableAndRole',false,{assignableID:assignableID,roleID:roleID},succeededCallback,failedCallback,userContext);},GetTimeRemainAndSpendForAssignableAndRoleAndTime:function(timeID,assignableID,roleID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetTimeRemainAndSpendForAssignableAndRoleAndTime',false,{timeID:timeID,assignableID:assignableID,roleID:roleID},succeededCallback,failedCallback,userContext);},GetTimeRemainAndSpendForTimeID:function(timeID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetTimeRemainAndSpendForTimeID',false,{timeID:timeID},succeededCallback,failedCallback,userContext);},ChangeAssignment:function(assignableMenuItem,context,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'ChangeAssignment',false,{assignableMenuItem:assignableMenuItem,context:context},succeededCallback,failedCallback,userContext);},DeleteTime:function(timeID,extenderID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'DeleteTime',false,{timeID:timeID,extenderID:extenderID},succeededCallback,failedCallback,userContext);},SaveTime:function(projectID,assignableID,customActivityID,timeID,spent,remain,description,date,userID,actorID,customFields,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'SaveTime',false,{projectID:projectID,assignableID:assignableID,customActivityID:customActivityID,timeID:timeID,spent:spent,remain:remain,description:description,date:date,userID:userID,actorID:actorID,customFields:customFields},succeededCallback,failedCallback,userContext);},SetRemainTime:function(assignableID,actorID,remainEffort,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'SetRemainTime',false,{assignableID:assignableID,actorID:actorID,remainEffort:remainEffort},succeededCallback,failedCallback,userContext);},BindMessage:function(messageID,generalID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'BindMessage',false,{messageID:messageID,generalID:generalID},succeededCallback,failedCallback,userContext);},SetRankBefore:function(assignableID,beforeAssignableID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'SetRankBefore',false,{assignableID:assignableID,beforeAssignableID:beforeAssignableID},succeededCallback,failedCallback,userContext);},PrioritizeTestCases:function(testCaseOrder,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'PrioritizeTestCases',false,{testCaseOrder:testCaseOrder},succeededCallback,failedCallback,userContext);},SaveMenu:function(menuItems,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'SaveMenu',false,{menuItems:menuItems},succeededCallback,failedCallback,userContext);},BindGeneralToRequest:function(generalID,requestID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'BindGeneralToRequest',false,{generalID:generalID,requestID:requestID},succeededCallback,failedCallback,userContext);},CreateEntity:function(messageID,selectedText,returnUrl,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'CreateEntity',false,{messageID:messageID,selectedText:selectedText,returnUrl:returnUrl},succeededCallback,failedCallback,userContext);},UpdateUserStory:function(userStoryID,name,priorityID,releaseID,iterationID,featureID,actorEfforts,updateName,updatePriorityID,updateReleaseID,updateIterationID,updateFeatureID,updateRoleEfforts,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'UpdateUserStory',false,{userStoryID:userStoryID,name:name,priorityID:priorityID,releaseID:releaseID,iterationID:iterationID,featureID:featureID,actorEfforts:actorEfforts,updateName:updateName,updatePriorityID:updatePriorityID,updateReleaseID:updateReleaseID,updateIterationID:updateIterationID,updateFeatureID:updateFeatureID,updateRoleEfforts:updateRoleEfforts},succeededCallback,failedCallback,userContext);},UpdateBug:function(bugID,name,priorityID,severityID,releaseID,iterationID,actorEfforts,updateName,updatePriorityID,updateSeverityID,updateReleaseID,updateFeatureID,updateRoleEfforts,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'UpdateBug',false,{bugID:bugID,name:name,priorityID:priorityID,severityID:severityID,releaseID:releaseID,iterationID:iterationID,actorEfforts:actorEfforts,updateName:updateName,updatePriorityID:updatePriorityID,updateSeverityID:updateSeverityID,updateReleaseID:updateReleaseID,updateFeatureID:updateFeatureID,updateRoleEfforts:updateRoleEfforts},succeededCallback,failedCallback,userContext);},UpdateFeature:function(featureID,name,priorityID,initialEstimate,releaseID,updateName,updatePriorityID,updateInitialEstimate,updateReleaseID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'UpdateFeature',false,{featureID:featureID,name:name,priorityID:priorityID,initialEstimate:initialEstimate,releaseID:releaseID,updateName:updateName,updatePriorityID:updatePriorityID,updateInitialEstimate:updateInitialEstimate,updateReleaseID:updateReleaseID},succeededCallback,failedCallback,userContext);},UpdateRequest:function(requestID,name,priorityID,requestTypeID,updateName,updatePriorityID,updateRequestTypeID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'UpdateRequest',false,{requestID:requestID,name:name,priorityID:priorityID,requestTypeID:requestTypeID,updateName:updateName,updatePriorityID:updatePriorityID,updateRequestTypeID:updateRequestTypeID},succeededCallback,failedCallback,userContext);},GetRoleOptionsForAssignable:function(assignableID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'GetRoleOptionsForAssignable',false,{assignableID:assignableID},succeededCallback,failedCallback,userContext);},LoadData:function(iterationID,targetControl,releaseID,projectID,pageIndex,showUserStories,showBugs,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'LoadData',false,{iterationID:iterationID,targetControl:targetControl,releaseID:releaseID,projectID:projectID,pageIndex:pageIndex,showUserStories:showUserStories,showBugs:showBugs},succeededCallback,failedCallback,userContext);},MoveItem:function(assignableID,positionAssignableID,iterationID,releaseID,toProjectID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'MoveItem',false,{assignableID:assignableID,positionAssignableID:positionAssignableID,iterationID:iterationID,releaseID:releaseID,toProjectID:toProjectID},succeededCallback,failedCallback,userContext);},Prioritize:function(assignableID,positionAssignableID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'Prioritize',false,{assignableID:assignableID,positionAssignableID:positionAssignableID},succeededCallback,failedCallback,userContext);},CheckInboundMailConnection:function(protocol,server,login,password,port,useSsl,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'CheckInboundMailConnection',false,{protocol:protocol,server:server,login:login,password:password,port:port,useSsl:useSsl},succeededCallback,failedCallback,userContext);},CheckSourceControlPractice:function(processID,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'CheckSourceControlPractice',false,{processID:processID},succeededCallback,failedCallback,userContext);},CheckRecipients:function(recipients,succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'CheckRecipients',false,{recipients:recipients},succeededCallback,failedCallback,userContext);}}
WebMethods.registerClass('WebMethods',Sys.Net.WebServiceProxy);WebMethods._staticInstance=new WebMethods();WebMethods.set_path=function(value){WebMethods._staticInstance.set_path(value);}
WebMethods.get_path=function(){return WebMethods._staticInstance.get_path();}
WebMethods.set_timeout=function(value){WebMethods._staticInstance.set_timeout(value);}
WebMethods.get_timeout=function(){return WebMethods._staticInstance.get_timeout();}
WebMethods.set_defaultUserContext=function(value){WebMethods._staticInstance.set_defaultUserContext(value);}
WebMethods.get_defaultUserContext=function(){return WebMethods._staticInstance.get_defaultUserContext();}
WebMethods.set_defaultSucceededCallback=function(value){WebMethods._staticInstance.set_defaultSucceededCallback(value);}
WebMethods.get_defaultSucceededCallback=function(){return WebMethods._staticInstance.get_defaultSucceededCallback();}
WebMethods.set_defaultFailedCallback=function(value){WebMethods._staticInstance.set_defaultFailedCallback(value);}
WebMethods.get_defaultFailedCallback=function(){return WebMethods._staticInstance.get_defaultFailedCallback();}
WebMethods.set_path("/(F(9WKSCn4wYG835ORRTAIaKKyBsGYKfE4jrAG-CUqK1MQcCoDq0A5ZjW2Z_EngyGEBY8hF4EBE-tpulOUi9eGRDg2))/PageServices/WebMethods.asmx");WebMethods.GetAllTags=function(projectID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetAllTags(projectID,onSuccess,onFailed,userContext);}
WebMethods.GetAllTagsForProjects=function(projectIDs,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetAllTagsForProjects(projectIDs,onSuccess,onFailed,userContext);}
WebMethods.GetUserList=function(projectID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetUserList(projectID,onSuccess,onFailed,userContext);}
WebMethods.GetEntityStatesForProcess=function(processID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetEntityStatesForProcess(processID,onSuccess,onFailed,userContext);}
WebMethods.MarkMessagesAsRead=function(messageIds,onSuccess,onFailed,userContext){WebMethods._staticInstance.MarkMessagesAsRead(messageIds,onSuccess,onFailed,userContext);}
WebMethods.GetActionProcessorMessagesAndClear=function(message,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetActionProcessorMessagesAndClear(message,onSuccess,onFailed,userContext);}
WebMethods.GetUserStoryEffortInfo=function(userStoryID,excludeTaskID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetUserStoryEffortInfo(userStoryID,excludeTaskID,onSuccess,onFailed,userContext);}
WebMethods.IsPracticeAvailable=function(projectId,practiceName,onSuccess,onFailed,userContext){WebMethods._staticInstance.IsPracticeAvailable(projectId,practiceName,onSuccess,onFailed,userContext);}
WebMethods.GetUsersList=function(prefixText,count,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetUsersList(prefixText,count,onSuccess,onFailed,userContext);}
WebMethods.GetGeneralListEx=function(prefixText,count,projectID,currentProjectID,projectIDs,entityTypeIDs,excludeEntityID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetGeneralListEx(prefixText,count,projectID,currentProjectID,projectIDs,entityTypeIDs,excludeEntityID,onSuccess,onFailed,userContext);}
WebMethods.GetGeneralList=function(prefixText,count,projectID,entityTypeIDs,excludeEntityID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetGeneralList(prefixText,count,projectID,entityTypeIDs,excludeEntityID,onSuccess,onFailed,userContext);}
WebMethods.GetBuilds=function(releaseIterationBacklogSelector,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetBuilds(releaseIterationBacklogSelector,onSuccess,onFailed,userContext);}
WebMethods.GetTimeRemainForAssignable=function(assignableID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetTimeRemainForAssignable(assignableID,onSuccess,onFailed,userContext);}
WebMethods.GetTimeRemainForAssignableAndRole=function(assignableID,roleID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetTimeRemainForAssignableAndRole(assignableID,roleID,onSuccess,onFailed,userContext);}
WebMethods.GetTimeRemainAndSpendForAssignableAndRoleAndTime=function(timeID,assignableID,roleID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetTimeRemainAndSpendForAssignableAndRoleAndTime(timeID,assignableID,roleID,onSuccess,onFailed,userContext);}
WebMethods.GetTimeRemainAndSpendForTimeID=function(timeID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetTimeRemainAndSpendForTimeID(timeID,onSuccess,onFailed,userContext);}
WebMethods.ChangeAssignment=function(assignableMenuItem,context,onSuccess,onFailed,userContext){WebMethods._staticInstance.ChangeAssignment(assignableMenuItem,context,onSuccess,onFailed,userContext);}
WebMethods.DeleteTime=function(timeID,extenderID,onSuccess,onFailed,userContext){WebMethods._staticInstance.DeleteTime(timeID,extenderID,onSuccess,onFailed,userContext);}
WebMethods.SaveTime=function(projectID,assignableID,customActivityID,timeID,spent,remain,description,date,userID,actorID,customFields,onSuccess,onFailed,userContext){WebMethods._staticInstance.SaveTime(projectID,assignableID,customActivityID,timeID,spent,remain,description,date,userID,actorID,customFields,onSuccess,onFailed,userContext);}
WebMethods.SetRemainTime=function(assignableID,actorID,remainEffort,onSuccess,onFailed,userContext){WebMethods._staticInstance.SetRemainTime(assignableID,actorID,remainEffort,onSuccess,onFailed,userContext);}
WebMethods.BindMessage=function(messageID,generalID,onSuccess,onFailed,userContext){WebMethods._staticInstance.BindMessage(messageID,generalID,onSuccess,onFailed,userContext);}
WebMethods.SetRankBefore=function(assignableID,beforeAssignableID,onSuccess,onFailed,userContext){WebMethods._staticInstance.SetRankBefore(assignableID,beforeAssignableID,onSuccess,onFailed,userContext);}
WebMethods.PrioritizeTestCases=function(testCaseOrder,onSuccess,onFailed,userContext){WebMethods._staticInstance.PrioritizeTestCases(testCaseOrder,onSuccess,onFailed,userContext);}
WebMethods.SaveMenu=function(menuItems,onSuccess,onFailed,userContext){WebMethods._staticInstance.SaveMenu(menuItems,onSuccess,onFailed,userContext);}
WebMethods.BindGeneralToRequest=function(generalID,requestID,onSuccess,onFailed,userContext){WebMethods._staticInstance.BindGeneralToRequest(generalID,requestID,onSuccess,onFailed,userContext);}
WebMethods.CreateEntity=function(messageID,selectedText,returnUrl,onSuccess,onFailed,userContext){WebMethods._staticInstance.CreateEntity(messageID,selectedText,returnUrl,onSuccess,onFailed,userContext);}
WebMethods.UpdateUserStory=function(userStoryID,name,priorityID,releaseID,iterationID,featureID,actorEfforts,updateName,updatePriorityID,updateReleaseID,updateIterationID,updateFeatureID,updateRoleEfforts,onSuccess,onFailed,userContext){WebMethods._staticInstance.UpdateUserStory(userStoryID,name,priorityID,releaseID,iterationID,featureID,actorEfforts,updateName,updatePriorityID,updateReleaseID,updateIterationID,updateFeatureID,updateRoleEfforts,onSuccess,onFailed,userContext);}
WebMethods.UpdateBug=function(bugID,name,priorityID,severityID,releaseID,iterationID,actorEfforts,updateName,updatePriorityID,updateSeverityID,updateReleaseID,updateFeatureID,updateRoleEfforts,onSuccess,onFailed,userContext){WebMethods._staticInstance.UpdateBug(bugID,name,priorityID,severityID,releaseID,iterationID,actorEfforts,updateName,updatePriorityID,updateSeverityID,updateReleaseID,updateFeatureID,updateRoleEfforts,onSuccess,onFailed,userContext);}
WebMethods.UpdateFeature=function(featureID,name,priorityID,initialEstimate,releaseID,updateName,updatePriorityID,updateInitialEstimate,updateReleaseID,onSuccess,onFailed,userContext){WebMethods._staticInstance.UpdateFeature(featureID,name,priorityID,initialEstimate,releaseID,updateName,updatePriorityID,updateInitialEstimate,updateReleaseID,onSuccess,onFailed,userContext);}
WebMethods.UpdateRequest=function(requestID,name,priorityID,requestTypeID,updateName,updatePriorityID,updateRequestTypeID,onSuccess,onFailed,userContext){WebMethods._staticInstance.UpdateRequest(requestID,name,priorityID,requestTypeID,updateName,updatePriorityID,updateRequestTypeID,onSuccess,onFailed,userContext);}
WebMethods.GetRoleOptionsForAssignable=function(assignableID,onSuccess,onFailed,userContext){WebMethods._staticInstance.GetRoleOptionsForAssignable(assignableID,onSuccess,onFailed,userContext);}
WebMethods.LoadData=function(iterationID,targetControl,releaseID,projectID,pageIndex,showUserStories,showBugs,onSuccess,onFailed,userContext){WebMethods._staticInstance.LoadData(iterationID,targetControl,releaseID,projectID,pageIndex,showUserStories,showBugs,onSuccess,onFailed,userContext);}
WebMethods.MoveItem=function(assignableID,positionAssignableID,iterationID,releaseID,toProjectID,onSuccess,onFailed,userContext){WebMethods._staticInstance.MoveItem(assignableID,positionAssignableID,iterationID,releaseID,toProjectID,onSuccess,onFailed,userContext);}
WebMethods.Prioritize=function(assignableID,positionAssignableID,onSuccess,onFailed,userContext){WebMethods._staticInstance.Prioritize(assignableID,positionAssignableID,onSuccess,onFailed,userContext);}
WebMethods.CheckInboundMailConnection=function(protocol,server,login,password,port,useSsl,onSuccess,onFailed,userContext){WebMethods._staticInstance.CheckInboundMailConnection(protocol,server,login,password,port,useSsl,onSuccess,onFailed,userContext);}
WebMethods.CheckSourceControlPractice=function(processID,onSuccess,onFailed,userContext){WebMethods._staticInstance.CheckSourceControlPractice(processID,onSuccess,onFailed,userContext);}
WebMethods.CheckRecipients=function(recipients,onSuccess,onFailed,userContext){WebMethods._staticInstance.CheckRecipients(recipients,onSuccess,onFailed,userContext);}
var gtc=Sys.Net.WebServiceProxy._generateTypedConstructor;Type.registerNamespace('Tp.Atlas.Extenders.AssignmentEffort');if(typeof(Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortInfo)==='undefined'){Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortInfo=gtc("Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortInfo");Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortInfo.registerClass('Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortInfo');}
if(typeof(GeneralItem)==='undefined'){var GeneralItem=gtc("GeneralItem");GeneralItem.registerClass('GeneralItem');}
Type.registerNamespace('Tp.Integration.Common');if(typeof(Tp.Integration.Common.BuildDTO)==='undefined'){Tp.Integration.Common.BuildDTO=gtc("Tp.Integration.Common.BuildDTO");Tp.Integration.Common.BuildDTO.registerClass('Tp.Integration.Common.BuildDTO');}
Type.registerNamespace('Tp.Web.Extensions.Components.Menu');if(typeof(Tp.Web.Extensions.Components.Menu.AssignableMenuItem)==='undefined'){Tp.Web.Extensions.Components.Menu.AssignableMenuItem=gtc("Tp.Web.Extensions.Components.Menu.AssignableMenuItem");Tp.Web.Extensions.Components.Menu.AssignableMenuItem.registerClass('Tp.Web.Extensions.Components.Menu.AssignableMenuItem');}
if(typeof(Tp.Web.Extensions.Components.Menu.AssignmentContext)==='undefined'){Tp.Web.Extensions.Components.Menu.AssignmentContext=gtc("Tp.Web.Extensions.Components.Menu.AssignmentContext");Tp.Web.Extensions.Components.Menu.AssignmentContext.registerClass('Tp.Web.Extensions.Components.Menu.AssignmentContext');}
if(typeof(RoleOption)==='undefined'){var RoleOption=gtc("RoleOption");RoleOption.registerClass('RoleOption');};
/*StateKeeper.asmx*/
var StateKeeper=function(){StateKeeper.initializeBase(this);this._timeout=0;this._userContext=null;this._succeeded=null;this._failed=null;}
StateKeeper.prototype={_get_path:function(){var p=this.get_path();if(p)return p;else return StateKeeper._staticInstance.get_path();},CheckForUpdates:function(succeededCallback,failedCallback,userContext){return this._invoke(this._get_path(),'CheckForUpdates',false,{},succeededCallback,failedCallback,userContext);}}
StateKeeper.registerClass('StateKeeper',Sys.Net.WebServiceProxy);StateKeeper._staticInstance=new StateKeeper();StateKeeper.set_path=function(value){StateKeeper._staticInstance.set_path(value);}
StateKeeper.get_path=function(){return StateKeeper._staticInstance.get_path();}
StateKeeper.set_timeout=function(value){StateKeeper._staticInstance.set_timeout(value);}
StateKeeper.get_timeout=function(){return StateKeeper._staticInstance.get_timeout();}
StateKeeper.set_defaultUserContext=function(value){StateKeeper._staticInstance.set_defaultUserContext(value);}
StateKeeper.get_defaultUserContext=function(){return StateKeeper._staticInstance.get_defaultUserContext();}
StateKeeper.set_defaultSucceededCallback=function(value){StateKeeper._staticInstance.set_defaultSucceededCallback(value);}
StateKeeper.get_defaultSucceededCallback=function(){return StateKeeper._staticInstance.get_defaultSucceededCallback();}
StateKeeper.set_defaultFailedCallback=function(value){StateKeeper._staticInstance.set_defaultFailedCallback(value);}
StateKeeper.get_defaultFailedCallback=function(){return StateKeeper._staticInstance.get_defaultFailedCallback();}
StateKeeper.set_path("/(F(9WKSCn4wYG835ORRTAIaKKyBsGYKfE4jrAG-CUqK1MQcCoDq0A5ZjW2Z_EngyGEBY8hF4EBE-tpulOUi9eGRDg2))/PageServices/StateKeeper.asmx");StateKeeper.CheckForUpdates=function(onSuccess,onFailed,userContext){StateKeeper._staticInstance.CheckForUpdates(onSuccess,onFailed,userContext);}
var gtc=Sys.Net.WebServiceProxy._generateTypedConstructor;Type.registerNamespace('Tp.BusinessObjects');if(typeof(Tp.BusinessObjects.UpdateInfo)==='undefined'){Tp.BusinessObjects.UpdateInfo=gtc("Tp.BusinessObjects.UpdateInfo");Tp.BusinessObjects.UpdateInfo.registerClass('Tp.BusinessObjects.UpdateInfo');};
/*PreviewScript.js*/
Sys.Component.prototype.get_dataContext=function(){return this._dataContext||null};Sys.Component.prototype.set_dataContext=function(a){this._dataContext=a};Sys.UI.Control.prototype.get_dataContext=function(){var a=Sys.UI.Control.callBaseMethod(this,"get_dataContext");if(!a){var b=this.get_parent();if(b)a=b.get_dataContext()}return a};Sys.UI.Control.prototype.set_dataContext=Sys.Component.prototype.set_dataContext;Sys.UI.Behavior.prototype.get_dataContext=function(){var a=Sys.UI.Behavior.callBaseMethod(this,"get_dataContext");if(!a)if(this.control)a=this.control.get_dataContext();else{var c=this.get_element();if(c){var b=c.control;if(b)a=b.get_dataContext()}}return a};Sys.UI.Behavior.prototype.set_dataContext=Sys.Component.prototype.set_dataContext;function _loadMozillaCompatLayer(a){a.HTMLElement.prototype.__defineGetter__("innerText",function(){return this.textContent});a.HTMLElement.prototype.__defineSetter__("innerText",function(a){if(a)this.innerHTML=c(a);else this.innerHTML=""});function c(e){var a=new Sys.StringBuilder,f=e.length,d;for(var c=0;c<f;c++){var b=e.charAt(c);switch(b){case"<":a.append("&lt;");break;case">":a.append("&gt;");break;case'"':a.append("&quot;");break;case"&":a.append("&amp;");break;case" ":if(d==" ")a.append("&nbsp;");else a.append(" ");break;case"\r":break;case"\n":a.appendLine();a.appendLine("<br />");break;default:a.append(b);break}d=b}return a.toString()}function b(d,g,a){a=a?a:d;var f=new XPathEvaluator,c=f.evaluate(g,a,d.createNSResolver(d.documentElement),XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),e=new Array(c.snapshotLength);for(var b=0;b<c.snapshotLength;b++)e[b]=c.snapshotItem(b);return e}function d(f,d,e){d+="[1]";var a=b(f,d,e);if(a.length!=0)for(var c=0;c<a.length;c++)if(a[c])return a[c];return null}a.XMLDocument.prototype.selectNodes=function(c,a){return b(this,c,a)};a.XMLDocument.prototype.selectSingleNode=function(b,a){return d(this,b,a)};a.XMLDocument.prototype.transformNode=function(c){var a=new XSLTProcessor;a.importStylesheet(c);var d=document.implementation.createDocument("","",null),b=a.transformToDocument(this);return b.xml};Node.prototype.selectNodes=function(a){var b=this.ownerDocument;return b.selectNodes(a,this)};Node.prototype.selectSingleNode=function(a){var b=this.ownerDocument;return b.selectSingleNode(a,this)};Node.prototype.__defineGetter__("baseName",function(){return this.localName});Node.prototype.__defineGetter__("text",function(){return this.textContent});Node.prototype.__defineSetter__("text",function(a){this.textContent=a});Node.prototype.__defineGetter__("xml",function(){return(new XMLSerializer).serializeToString(this)});DocumentFragment.prototype.getElementById=function(e){var d=[],c=this.childNodes,a,b;for(b=0;b<c.length;b++){a=c[b];if(a.nodeType==1)Array.enqueue(d,a)}while(d.length){a=Array.dequeue(d);if(a.id==e)return a;c=a.childNodes;if(c.length!=0)for(b=0;b<c.length;b++){a=c[b];if(a.nodeType==1)Array.enqueue(d,a)}}return null};DocumentFragment.prototype.createElement=function(a){return document.createElement(a)}}function _loadTypeDescriptorCompatLayer(){Sys.Preview.TypeDescriptor.prototype._addEvent=Sys.Preview.TypeDescriptor.prototype.addEvent;Sys.Preview.TypeDescriptor.prototype._addProperty=Sys.Preview.TypeDescriptor.prototype.addProperty;Sys.Preview.TypeDescriptor.prototype._addMethod=Sys.Preview.TypeDescriptor.prototype.addMethod;Sys.Preview.TypeDescriptor._createParameter=Sys.Preview.TypeDescriptor.createParameter;Sys.Preview.TypeDescriptor.prototype.addEvent=function(a){this._addEvent(a);var b=a.toLowerCase();if(a!=b){this._addEvent(b);this._getEvents()[b].name=a}};Sys.Preview.TypeDescriptor.prototype.addProperty=function(c){this._addProperty.apply(this,arguments);var a=c.toLowerCase();if(c!==a){var b=[];Array.add(b,a);for(var d=1;d<arguments.length;d++)Array.add(b,arguments[d]);this._addProperty.apply(this,b);this._getProperties()[a].name=c}};Sys.Preview.TypeDescriptor.prototype.addMethod=function(c,a){if(a)for(var b=a.length-1;b>=0;b--)a[b].name=a[b].name.toLowerCase();this._addMethod(c,a)};Sys.Preview.TypeDescriptor.createParameter=function(a,b,c){return Sys.Preview.TypeDescriptor._createParameter(a.toLowerCase(),b,c)}}if(Sys.Browser.agent===Sys.Browser.Firefox)_loadMozillaCompatLayer(window);Type.registerNamespace("Sys.Preview");window.XMLDOM=function(b){if(window.DOMParser)return(new window.DOMParser).parseFromString(b,"text/xml");else if(window.XMLDOMParser)return(new window.XMLDOMParser).parseFromString(b,"text/xml");else{var d=["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument"];for(var c=0;c<d.length;c++)try{var a=new ActiveXObject(d[c]);a.async=false;a.loadXML(b);a.setProperty("SelectionLanguage","XPath");return a}catch(e){}return null}};Sys.Preview.IAction=function(){throw Error.notImplemented()};Sys.Preview.IAction.prototype={execute:function(){throw Error.notImplemented()},setOwner:function(){throw Error.notImplemented()}};Sys.Preview.IAction.registerInterface("Sys.Preview.IAction");Sys.Preview.Attributes=new function(){this.defineAttribute=function(a){this[a]=a}};Sys.Preview.TypeDescriptor=function(){var b={},d={},c={},a={};this._getAttributes=function(){return a};this._getEvents=function(){return d};this._getMethods=function(){return c};this._getProperties=function(){return b}};Sys.Preview.TypeDescriptor.registerClass("Sys.Preview.TypeDescriptor");Sys.Preview.TypeDescriptor.prototype.addAttribute=function(b,a){this._getAttributes()[b]=a};Sys.Preview.TypeDescriptor.prototype.addEvent=function(a){this._getEvents()[a]={name:a}};Sys.Preview.TypeDescriptor.prototype.addMethod=function(a,b){this._getMethods()[a]={name:a,parameters:b}};Sys.Preview.TypeDescriptor.prototype.addProperty=function(d,e,b,g,f){if(e===Sys.UI.DomElement)throw Error.argumentType("propertyType",Sys.UI.DomElement,Object,"Use isDomElement with a null type for element properties.\ne.g., for descriptors use { name: 'foo', isDomElement: true, type: null }");b=!!b;var c;if(f){c={};for(var a=3;a<arguments.length;a+=2){var h=arguments[a],i=arguments[a+1];c[h]=i}}this._getProperties()[d]={name:d,type:e,"readOnly":b,"isDomElement":g,attributes:c}};Sys.Preview.TypeDescriptor.createParameter=function(b,a,c){if(a===Sys.UI.DomElement)throw Error.argumentType("parameterType",Sys.UI.DomElement,Object,"Use isDomElement with a null type for element parameters.\ne.g., for descriptors use { name: 'foo', isDomElement: true, type: null }");return{name:b,type:a,"isDomElement":c}};Sys.Preview.TypeDescriptor.getTypeDescriptor=function(c){var a=Object.getType(c),b=a._descriptor;if(!b&&!a._descriptorChecked){if(Sys.Preview.ITypeDescriptorProvider.isImplementedBy(c))b=c.getDescriptor();else b=Sys.Preview.TypeDescriptor.generateDescriptor(a);a._descriptor=b;a._descriptorChecked=true}return b};Sys.Preview.TypeDescriptor.generateBaseDescriptor=function(b){var a=b.getBaseType();return Sys.Preview.TypeDescriptor.generateDescriptor(a)};Sys.Preview.TypeDescriptor.generateDescriptor=function(c){var b=null,a=c;while(a){if(a.descriptor){if(!b)b=new Sys.Preview.TypeDescriptor;Sys.Preview.TypeDescriptor.append(b,a.descriptor)}a=a.getBaseType()}return b};Sys.Preview.TypeDescriptor.append=function(c,a){if(a.properties){var e=a.properties.length;for(var b=0;b<e;b++){var d=a.properties[b],j=d.name,h=d.attributes,n=!!d.readOnly,m=!!d.isDomElement;if(!c._getProperties()[j]){var l=[j,d.type,n,m];if(h)Array.addRange(l,h);c.addProperty.apply(c,l)}}}if(a.events){var e=a.events.length;for(var b=0;b<e;b++){var k=a.events[b].name;if(!c._getEvents()[k])c.addEvent(k)}}if(a.methods){var e=a.methods.length;for(var b=0;b<e;b++){var g=a.methods[b].name;if(!c._getMethods()[g]){var f=a.methods[b].params;if(!f)f=a.methods[b].parameters;if(f)c.addMethod(g,f);else c.addMethod(g)}}}if(a.attributes){var e=a.attributes.length;for(var b=0;b<e;b++){var i=a.attributes[b].name;if(!c._getAttributes()[i])c.addAttribute(i,a.attributes[b].value)}}};Sys.Preview.TypeDescriptor.unload=function(){};Sys.Preview.TypeDescriptor.getAttribute=function(b,a){var c=Sys.Preview.TypeDescriptor.getTypeDescriptor(b);return c._getAttributes()[a]};Sys.Preview.TypeDescriptor.getProperty=function(b,e,a){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(b))return b.getProperty(e,a);var f=Sys.Preview.TypeDescriptor.getTypeDescriptor(b);if(!f){var c=b[e];if(c&&a)c=a.indexOf(".")===-1?c[a]:Sys.Preview.TypeDescriptor._evaluatePath(c,a);return c}var g=f._getProperties()[e],h=b["get_"+g.name],d=h.call(b);if(a)d=a.indexOf(".")===-1?d[a]:Sys.Preview.TypeDescriptor._evaluatePath(d,a);return d};Sys.Preview.TypeDescriptor.setProperty=function(a,e,c,b){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(a)){a.setProperty(e,c,b);return}var g=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!g){if(!b||!b.length)a[e]=c;else if(b.indexOf(".")===-1)a[e][b]=c;else Sys.Preview.TypeDescriptor._setPath(a,b,c);return}var d=g._getProperties()[e];if(b){var h=a["get_"+d.name],f=h.call(a);if(b.indexOf(".")===-1)f[b]=c;else Sys.Preview.TypeDescriptor._setPath(f,b,c)}else{var i=a["set_"+d.name];c=Sys.Preview.TypeDescriptor._evaluateValue(d.type,d.isDomElement,c);i.call(a,c)}};Sys.Preview.TypeDescriptor.invokeMethod=function(a,e,f){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(a))return a.invokeMethod(e,f);var j=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!j)return a[e].call(a);var b=j._getMethods()[e],i=a[b.name];if(!f||!b.parameters||!b.parameters.length)return i.call(a);else{var h=[];for(var c=0;c<b.parameters.length;c++){var d=b.parameters[c],g=f[d.name];g=Sys.Preview.TypeDescriptor._evaluateValue(d.type,d.isDomElement,g);h[c]=g}return i.apply(a,h)}};Sys.Preview.TypeDescriptor.getPropertyType=function(a,d,e){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(a))return Object;if(e)return Object;var b=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!b)return Object;var c=b._getProperties()[d];return c.type||null};Sys.Preview.TypeDescriptor._evaluatePath=function(e,f){var d,c=f.split("."),a=e;for(var b=0;b<c;b++){d=c[b];a=a[d];if(!a)return null}return a};Sys.Preview.TypeDescriptor._evaluateValue=function(b,d,a){if(!b)return a;var c=typeof a;if(c==="undefined"||a===null)return a;if(d){if(c==="string")a=$get(a)}else if(b===Object||b===Sys.Component||b.inheritsFrom(Sys.Component)){if(c==="string")a=$find(a)}else if(b!==String&&c==="string")if(Type.isEnum(b))a=b.parse(a,true);else if(a===""&&b===Number)a=0;else a=b.parseInvariant||b.parse(a);else if(b===String&&c!=="string")a=a.toString();return a};Sys.Preview.TypeDescriptor._setPath=function(e,g,f){var a=e,b=g.split("."),d;for(var c=0;c<b.length-1;c++){d=b[c];a=a[d];if(!a)break}if(a)a[b[b.length-1]]=f};if(Sys.Browser.agent===Sys.Browser.Safari)_loadTypeDescriptorCompatLayer(window);Sys.Preview.MarkupContext=function(c,d,a,b){this._document=c;this._global=d;this._parentContext=a;this._dataContext=b||null;this._objects={};this._pendingReferences=[];this._pendingEndUpdates=[]};Sys.Preview.MarkupContext.prototype={_dataContextHidden:false,_opened:false,get_dataContext:function(){if(this._dataContextHidden)return null;return this._dataContext},get_isGlobal:function(){return this._global},addComponent:function(a,c){var b=a.get_id();if(b)this._addComponentByID(b,a,c)},removeComponent:function(a){var b=a.get_id();if(b)this._removeComponentByID(b);if(this._global&&Sys.Component.isInstanceOfType(a))Sys.Application.removeComponent(object)},findComponent:function(c,a){if(a)return Sys.Application.findComponent(c,a);else{var b=this._objects[c];if(!b){a=this._parentContext||Sys.Application;b=a.findComponent(c)}return b}},getComponents:function(){var a=[],b=this._objects;for(var c in b)a[a.length]=b[c];return a},_addComponentByID:function(c,a,b){this._objects[c]=a;if(!b&&this._global&&Sys.Component.isInstanceOfType(a))Sys.Application.addComponent(a)},addEndUpdate:function(a){Array.add(this._pendingEndUpdates,a)},addReference:function(c,a,b){Array.add(this._pendingReferences,{o:c,p:a,r:b})},close:function(){this._opened=false;this._dataContext=null;var a;for(a=0;a<this._pendingReferences.length;a++){var b=this._pendingReferences[a],c=b.o,e=b.p,d=b.r,f=this.findComponent(d),g=c["set_"+e.name];g.call(c,f)}this._pendingReferences=null;for(a=0;a<this._pendingEndUpdates.length;a++)this._pendingEndUpdates[a].endUpdate();this._pendingEndUpdates=null},dispose:function(){if(!this._global)for(var a in this._objects){if(Sys.IDisposable.isImplementedBy(this._objects[a]))this._objects[a].dispose();this._objects[a]=null}this._document=null;this._parentContext=null;this._dataContext=null;this._objects=null;this._pendingReferences=null;this._pendingEndUpdates=null},findElement:function(b){if(this._opened){var a=Sys.UI.DomElement.getElementById(b,this._document);if(!a&&this._parentContext)a=Sys.UI.DomElement.getElementById(b,this._parentContext);return a}return null},hideDataContext:function(){if(!this._dataContextHidden){this._dataContextHidden=true;return true}return false},open:function(){this._pendingReferences=[];this._pendingEndUpdates=[];this._opened=true},restoreDataContext:function(){this._dataContextHidden=false}};Sys.Preview.MarkupContext.registerClass("Sys.Preview.MarkupContext",null,Sys.IContainer);Sys.Preview.MarkupContext.createGlobalContext=function(){return new Sys.Preview.MarkupContext(document,true)};Sys.Preview.MarkupContext.createLocalContext=function(a,b,c){return new Sys.Preview.MarkupContext(a,false,b,c)};Sys.Preview.MarkupParser=new function(){};Sys.Preview.MarkupParser._defaultNamespaceURI="http://schemas.microsoft.com/xml-script/2005";Sys.Preview.MarkupParser._cachedNamespaceURILists={};Sys.Preview.MarkupParser.getNodeName=function(a){return a.localName||a.baseName};Sys.Preview.MarkupParser.initializeObject=function(a,I,f){var z=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!z)return null;var B=false;if(a.beginUpdate&&a.endUpdate&&a!==Sys.Application){B=true;a.beginUpdate()}var v,g,i,r,e,n,c,b,h,o,t,H,s,C=z._getProperties(),G=z._getEvents(),j=I.attributes;if(j)for(g=j.length-1;g>=0;g--){i=j[g];r=i.nodeName;if(r==="id"&&Sys.UI.Control.isInstanceOfType(a))continue;e=C[r];if(e){c=e.type;b=i.nodeValue;if(c&&(c===Object||c===Sys.Component||c.inheritsFrom(Sys.Component)))f.addReference(a,e,b);else{if(e.isDomElement)b=f.findElement(b);else if(c===Array)b=Array.parse("["+b+"]");else if(c&&c!==String)if(Type.isEnum(c))b=c.parse(b,true);else if(b===""&&c===Number)b=0;else b=c.parseInvariant||c.parse(b);n=e.name;t=a["set_"+n];t.call(a,b)}}else{h=G[r];if(h){var E=Function.parse(i.nodeValue);if(E){o=a["add_"+h.name];if(o)o.apply(a,[E])}}}}var q=I.childNodes;if(q&&q.length!=0)for(v=q.length-1;v>=0;v--){var d=q[v];if(d.nodeType!=1)continue;s=Sys.Preview.MarkupParser.getNodeName(d);e=C[s];if(e){n=e.name;c=e.type;if(e.readOnly){H=a["get_"+n];var m=H.call(a);if(c===Array){if(d.childNodes.length){var u=Sys.Preview.MarkupParser.parseNodes(d.childNodes,f);for(var k=0;k<u.length;k++){var l=u[k];if(typeof m.add==="function")m.add(l);else{Array.add(m,l);if(typeof l.setOwner==="function")l.setOwner(a)}}}}else if(c===Object){j=d.attributes;for(g=j.length-1;g>=0;g--){i=j[g];m[i.nodeName]=i.nodeValue}}else Sys.Preview.MarkupParser.initializeObject(m,d,f)}else{b=null;if(c==String)b=d.text;else if(d.childNodes.length!=0){var w;for(var p=0;p<d.childNodes.length;p++){if(d.childNodes[p].nodeType!=1)continue;w=d.childNodes[p];break}if(w)b=Sys.Preview.MarkupParser.parseNode(w,f)}if(b){t=a["set_"+n];t.call(a,b)}}}else{h=G[s];if(h){var x=Sys.Preview.MarkupParser.parseNodes(d.childNodes,f);if(x.length){o=a["add_"+h.name];if(o)for(var A=0;A<x.length;A++){var F=x[A];F.set_eventName(h.name);F.set_eventSource(a)}}}else{var y=null,D=s.toUpperCase();if(D==="BINDINGS")y=Sys.Preview.BindingBase;else if(D==="BEHAVIORS")y=Sys.UI.Behavior;if(y)if(d.childNodes.length){var u=Sys.Preview.MarkupParser.parseNodes(d.childNodes,f);for(var k=0;k<u.length;k++){var l=u[k];if(typeof l.setOwner==="function")l.setOwner(a)}}}}}if(B)f.addEndUpdate(a);return a};Sys.Preview.MarkupParser.parseNode=function(e,f){var d=null,b=Sys.Preview.MarkupParser._getTagType(e);if(b){var a=b.parseFromMarkup;if(!a){var c=b.getBaseType();while(c){a=c.parseFromMarkup;if(a)break;c=c.getBaseType()}b.parseFromMarkup=a}if(a)d=a.call(null,b,e,f)}return d};Sys.Preview.MarkupParser.parseNodes=function(e,f){var d=[];for(var a=0;a<e.length;a++){var c=e[a];if(c.nodeType!==1)continue;var b=Sys.Preview.MarkupParser.parseNode(c,f);if(b)Array.add(d,b)}return d};Sys.Preview.MarkupParser.processDocument=function(h){var g=[],d=document.getElementsByTagName("script");for(var c=0;c<d.length;c++)if(d[c].type=="text/xml-script"){var i=d[c],a=i.innerHTML;if(a.startsWith("<!--")){var j=a.indexOf("<",1),e=a.lastIndexOf(">");e=a.lastIndexOf(">",e-1);a=a.substring(j,e+1)}if(a.length==0)continue;var k=new XMLDOM(a),b=null,f=k.getElementsByTagName("page");if(f.length)b=f[0];if(b&&Sys.Preview.MarkupParser.getNodeName(b)==="page")Array.add(g,b)}Sys.Preview.MarkupParser.processDocumentScripts(h,g)};Sys.Preview.MarkupParser.processDocumentScripts=function(d,j){d.open();for(var g=0;g<j.length;g++){var c=[],k=j[g],h=k.childNodes;for(var f=h.length-1;f>=0;f--){var b=h[f];if(b.nodeType!==1)continue;var a=Sys.Preview.MarkupParser.getNodeName(b);if(a)a=a.toLowerCase();if(a==="components")for(var e=0;e<b.childNodes.length;e++){var i=b.childNodes[e];if(i.nodeType!==1)continue;Array.add(c,i)}}if(c.length)Sys.Preview.MarkupParser.parseNodes(c,d)}d.close()};Sys.Preview.MarkupParser._getDefaultNamespaces=function(){if(!Sys.Preview.MarkupParser._defaultNamespaces){var a=[Sys,Sys.UI,Sys.Net,Sys.Preview,Sys.Preview.UI,Sys.Preview.Net,Sys.Preview.Data,Sys.Preview.UI.Data,Sys.Preview.Services.Components];if(Sys.Preview.UI.Effects)Array.add(a,Sys.Preview.UI.Effects);Sys.Preview.MarkupParser._defaultNamespaces=a}return Sys.Preview.MarkupParser._defaultNamespaces};Sys.Preview.MarkupParser._processNamespaceURI=function(namespaceURI){if(!namespaceURI||namespaceURI===Sys.Preview.MarkupParser._defaultNamespaceURI)return Sys.Preview.MarkupParser._getDefaultNamespaces();var start=namespaceURI.slice(0,12).toLowerCase();if(start==="javascript:"){namespaceURI=namespaceURI.slice(11);if(!namespaceURI.length)return[]}var nspaceList=namespaceURI.split(",");list=[];for(var i=0;i<nspaceList.length;i++){var nspaceName=nspaceList[i];if(nspaceName.startsWith(" "))nspaceName=nspaceName.trimStart();if(nspaceName.endsWith(" "))nspaceName=nspaceName.trimEnd();if(!nspaceName.length)continue;var nspace=null;try{nspace=eval(nspaceName)}catch(a){}if(nspace)Array.add(list,nspace)}return list};Sys.Preview.MarkupParser._getTagType=function(f){var e=Sys.Preview.MarkupParser.getNodeName(f),b=f.namespaceURI||Sys.Preview.MarkupParser._defaultNamespaceURI,a=Sys.Preview.MarkupParser._cachedNamespaceURILists[b];if(typeof a==="undefined"){a=Sys.Preview.MarkupParser._processNamespaceURI(b);Sys.Preview.MarkupParser._cachedNamespaceURILists[b]=a}var d=e.toUpperCase();for(var c=0;c<a.length;c++){var h=a[c],g=Type.parse(e,h);if(typeof g==="function")return g}if(d==="APPLICATION")return Sys._Application;if(d==="WEBREQUESTMANAGER")return Sys.Net._WebRequestManager;return null};Sys.Preview.ICustomTypeDescriptor=function(){throw Error.notImplemented()};Sys.Preview.ICustomTypeDescriptor.prototype={getProperty:function(){throw Error.notImplemented()},setProperty:function(){throw Error.notImplemented()},invokeMethod:function(){throw Error.notImplemented()}};Sys.Preview.ICustomTypeDescriptor.registerInterface("Sys.Preview.ICustomTypeDescriptor");Sys.Preview.ITypeDescriptorProvider=function(){throw Error.notImplemented()};Sys.Preview.ITypeDescriptorProvider.prototype={getDescriptor:function(){throw Error.notImplemented()}};Sys.Preview.ITypeDescriptorProvider.registerInterface("Sys.Preview.ITypeDescriptorProvider");Sys.Preview.INotifyCollectionChanged=function(){throw Error.notImplemented()};Sys.Preview.INotifyCollectionChanged.prototype={add_collectionChanged:function(){throw Error.notImplemented()},remove_collectionChanged:function(){throw Error.notImplemented()}};Sys.Preview.INotifyCollectionChanged.registerInterface("Sys.Preview.INotifyCollectionChanged");Sys.Preview.NotifyCollectionChangedAction=function(){throw Error.invalidOperation()};Sys.Preview.NotifyCollectionChangedAction.prototype={Add:0,Remove:1,Reset:2};Sys.Preview.NotifyCollectionChangedAction.registerEnum("Sys.Preview.NotifyCollectionChangedAction");Sys.Preview.CollectionChangedEventArgs=function(b,a){Sys.Preview.CollectionChangedEventArgs.initializeBase(this);this._action=b;this._changedItem=a};Sys.Preview.CollectionChangedEventArgs.prototype={get_action:function(){return this._action},get_changedItem:function(){return this._changedItem}};Sys.Preview.CollectionChangedEventArgs.descriptor={properties:[{name:"action",type:Sys.Preview.NotifyCollectionChangedAction,readOnly:true},{name:"changedItem",type:Object,readOnly:true}]};Sys.Preview.CollectionChangedEventArgs.registerClass("Sys.Preview.CollectionChangedEventArgs",Sys.EventArgs);Sys.Preview.BindingDirection=function(){throw Error.invalidOperation()};Sys.Preview.BindingDirection.prototype={In:0,Out:1,InOut:2};Sys.Preview.BindingDirection.registerEnum("Sys.Preview.BindingDirection");Sys.Preview.BindingEventArgs=function(d,c,b,a){Sys.Preview.BindingEventArgs.initializeBase(this);this._value=d;this._direction=c;this._targetPropertyType=b;this._transformerArgument=a};Sys.Preview.BindingEventArgs.prototype={get_direction:function(){return this._direction},get_targetPropertyType:function(){return this._targetPropertyType},get_transformerArgument:function(){return this._transformerArgument},get_value:function(){return this._value},set_value:function(a){this._value=a}};Sys.Preview.BindingEventArgs.descriptor={properties:[{name:"direction",type:Sys.Preview.BindingDirection,readOnly:true},{name:"targetPropertyType",type:Type,readOnly:true},{name:"transformerArgument",readOnly:true},{name:"value"}]};Sys.Preview.BindingEventArgs.registerClass("Sys.Preview.BindingEventArgs",Sys.CancelEventArgs);Sys.Preview.BindingBase=function(a){Sys.Preview.BindingBase.initializeBase(this);if(a)this._target=a};Sys.Preview.BindingBase.prototype={_target:null,_property:null,_propertyKey:null,_dataContext:null,_dataPath:null,_dataPathParts:null,_transformerArgument:null,_automatic:true,_bindingExecuting:false,_source:null,get_automatic:function(){return this._automatic},set_automatic:function(a){if(!this._source)this._automatic=a},get_dataContext:function(){return this._dataContext},set_dataContext:function(a){if(!this._source)this._dataContext=a},get_dataPath:function(){return this._dataPath},set_dataPath:function(a){if(!this._source)this._dataPath=a},get_target:function(){return this._target},set_target:function(a){this._target=a},get_property:function(){return this._property},set_property:function(a){if(!this._source)this._property=a},get_propertyKey:function(){return this._propertyKey},set_propertyKey:function(a){if(!this._source)this._propertyKey=a},get_transformerArgument:function(){return this._transformerArgument},set_transformerArgument:function(a){this._transformerArgument=a},add_transform:function(a){this.get_events().addHandler("transform",a)},remove_transform:function(a){this.get_events().removeHandler("transform",a)},dispose:function(){this._dataContext=null;this._source=null;this._target=null;Sys.Preview.BindingBase.callBaseMethod(this,"dispose")},evaluate:function(a){if(this._bindingExecuting)return;this._bindingExecuting=true;if(a===Sys.Preview.BindingDirection.In)this.evaluateIn();else this.evaluateOut();this._bindingExecuting=false},evaluateIn:function(){var c=Sys.Preview.TypeDescriptor.getPropertyType(this._target,this._property,this._propertyKey),a=this._getSourceValue(c),d=false,e=this.get_events().getHandler("transform");if(e){var b=new Sys.Preview.BindingEventArgs(a,Sys.Preview.BindingDirection.In,c,this._transformerArgument);e(this,b);d=b.get_cancel();a=b.get_value()}if(!d)Sys.Preview.TypeDescriptor.setProperty(this._target,this._property,a,this._propertyKey)},evaluateOut:function(){},initialize:function(){Sys.Preview.BindingBase.callBaseMethod(this,"initialize");this._source=this._dataContext;if(!this._source)this._source=this._target.get_dataContext();if(this._dataPath&&this._dataPath.indexOf(".")>0)this._dataPathParts=this._dataPath.split(".")},_evaluateDataPath:function(){var a=this._source;for(var b=0;b<this._dataPathParts.length-1;b++){a=Sys.Preview.TypeDescriptor.getProperty(a,this._dataPathParts[b]);if(!a)return null}return a},_get_dataPathParts:function(){return this._dataPathParts},_getSource:function(){return this._source},_getSourceValue:function(){if(this._dataPath&&this._dataPath.length){var a=this._source,b=this._dataPath;if(this._dataPathParts){a=this._evaluateDataPath();if(a===null)return null;b=this._dataPathParts[this._dataPathParts.length-1]}return Sys.Preview.TypeDescriptor.getProperty(a,b)}if(this._source&&Sys.Preview.ICustomTypeDescriptor.isImplementedBy(this._source))return this._source.getProperty("");return this._source},_getTargetValue:function(d){var a=Sys.Preview.TypeDescriptor.getProperty(this._target,this._property,this._propertyKey),c=this.get_events().getHandler("transform");if(c){var b=new Sys.Preview.BindingEventArgs(a,Sys.Preview.BindingDirection.Out,d,this._transformerArgument);c(this,b);var e=b.get_cancel();if(!e)a=b.get_value();else a=null}return a},setOwner:function(a){this.set_target(a)}};Sys.Preview.BindingBase.descriptor={properties:[{name:"target",type:Object},{name:"automatic",type:Boolean},{name:"dataContext",type:Object},{name:"dataPath",type:String},{name:"property",type:String},{name:"propertyKey"},{name:"transformerArgument",type:String}],methods:[{name:"evaluateIn"}],events:[{name:"transform"}]};Sys.Preview.BindingBase.registerClass("Sys.Preview.BindingBase",Sys.Component,Sys.IDisposable);Sys.Preview.BindingBase.parseFromMarkup=function(h,b,f){var d=new h,a,c=b.attributes.getNamedItem("transform");if(c){var g=c.nodeValue;a=Sys.Preview.BindingBase.Transformers[g]}if(a){d.add_transform(a);b.attributes.removeNamedItem("transform")}var e=Sys.Preview.MarkupParser.initializeObject(d,b,f);if(a)b.attributes.setNamedItem(c);if(e){f.addComponent(e);return e}else d.dispose();return null};Sys.Preview.BindingBase.Transformers={};Sys.Preview.BindingBase.Transformers.Invert=function(b,a){a.set_value(!a.get_value())};Sys.Preview.BindingBase.Transformers.ToString=function(f,c){var d=c.get_value(),b="",a=c.get_transformerArgument(),e=a&&a.length!==0?a.indexOf("{0}"):-1;if(e!=-1)b=String.format(a,d);else if(d)b=d.toString();else b=a;c.set_value(b)};Sys.Preview.BindingBase.Transformers.ToLocaleString=function(f,d){var b=d.get_value(),c="",a=d.get_transformerArgument(),e=a&&a.length!==0?a.indexOf("{0}"):-1;if(e!==-1)c=String.format(a,b.toLocalString?b.toLocalString():b.toString());else if(b)c=b.toLocaleString();else c=a;d.set_value(c)};Sys.Preview.BindingBase.Transformers.Add=function(e,c){var b=c.get_value();if(typeof b!=="number")if(b==="")b=0;else b=Number.parseInvariant(b);var a=c.get_transformerArgument();if(!a)a=1;if(typeof a!=="number")if(b==="")a=0;else a=Number.parseInvariant(a);if(c.get_direction()===Sys.Preview.BindingDirection.Out)a=-a;var d=b+a;if(c.get_targetPropertyType()!=="number")d=d.toString();c.set_value(d)};Sys.Preview.BindingBase.Transformers.Multiply=function(e,c){var b=c.get_value();if(typeof b!=="number")if(b==="")b=0;else b=Number.parseInvariant(b);var a=c.get_transformerArgument();if(!a)a=1;if(typeof a!=="number")if(a==="")a=0;else a=Number.parseInvariant(a);var d;if(c.get_direction()===Sys.Preview.BindingDirection.Out)d=b/a;else d=b*a;if(c.get_targetPropertyType()!=="number")d=d.toString();c.set_value(d)};Sys.Preview.BindingBase.Transformers.Compare=function(d,b){var a=b.get_value(),c=b.get_transformerArgument();if(c===null)a=a?true:false;else a=a===c;b.set_value(a)};Sys.Preview.BindingBase.Transformers.CompareInverted=function(d,b){var a=b.get_value(),c=b.get_transformerArgument();if(c===null)a=a?false:true;else a=a!==c;b.set_value(a)};Sys.Preview.BindingBase.Transformers.RSSTransform=function(h,f){function b(b,c){var a=b.selectSingleNode(c);if(a)return a.nodeValue;return null}var c=f.get_value();if(!c)return;var e=new Sys.Preview.Data.DataTable([new Sys.Preview.Data.DataColumn("title",String,null,false,true),new Sys.Preview.Data.DataColumn("description",String,null,false,true),new Sys.Preview.Data.DataColumn("link",String,null,false,true),new Sys.Preview.Data.DataColumn("author",String,null,false,true),new Sys.Preview.Data.DataColumn("category",String,null,false,true),new Sys.Preview.Data.DataColumn("comments",String,null,false,true),new Sys.Preview.Data.DataColumn("guid",String,null,true,true),new Sys.Preview.Data.DataColumn("pubDate",String,null,false,true),new Sys.Preview.Data.DataColumn("source",String,null,false,true)]);for(var d=0;d<c.length;d++){var a=c[d];if(!a||a.nodeType!=1)continue;var g={title:b(a,"./title/text()"),description:b(a,"./description/text()"),link:b(a,"./link/text()"),author:b(a,"./author/text()"),category:b(a,"./category/text()"),comments:b(a,"./comments/text()"),guid:b(a,"./guid/text()"),pubDate:b(a,"./pubDate/text()"),source:b(a,"./source/text()")};e.add(g)}f.set_value(e)};Sys.Preview.Binding=function(a){Sys.Preview.Binding.initializeBase(this,[a])};Sys.Preview.Binding.prototype={_targetNotificationHandler:null,_sourceNotificationHandler:null,_direction:Sys.Preview.BindingDirection.In,get_direction:function(){return this._direction},set_direction:function(a){if(!this._getSource())this._direction=a},dispose:function(){var b=this.get_target(),a=this._getSource();if(this._targetNotificationHandler){b.remove_propertyChanged(this._targetNotificationHandler);this._targetNotificationHandler=null}if(this._sourceNotificationHandler){a.remove_propertyChanged(this._sourceNotificationHandler);this._sourceNotificationHandler=null}if(this._targetDisposingHandler){b.remove_disposing(this._targetDisposingHandler);this._targetDisposingHandler=null}if(this._sourceDisposingHandler){a.remove_disposing(this._sourceDisposingHandler);this._sourceDisposingHandler=null}Sys.Preview.Binding.callBaseMethod(this,"dispose")},evaluateOut:function(){var a,b,c=this._get_dataPathParts();if(c){a=this._evaluateDataPath();b=c[c.length-1];if(!a)return}else{a=this._getSource();b=this.get_dataPath()}var e=Sys.Preview.TypeDescriptor.getPropertyType(a,b),d=this._getTargetValue(e);if(d!==null)Sys.Preview.TypeDescriptor.setProperty(a,b,d)},initialize:function(){Sys.Preview.Binding.callBaseMethod(this,"initialize");if(this.get_automatic()){if(this._direction!==Sys.Preview.BindingDirection.In){var b=this.get_target();if(Sys.INotifyPropertyChange.isImplementedBy(b)){this._targetNotificationHandler=Function.createDelegate(this,this._onTargetPropertyChanged);b.add_propertyChanged(this._targetNotificationHandler)}if(Sys.INotifyDisposing.isImplementedBy(b)){this._targetDisposingHandler=Function.createDelegate(this,this._onDisposing);b.add_disposing(this._targetDisposingHandler)}}if(this._direction!==Sys.Preview.BindingDirection.Out){var a=this._getSource();if(Sys.INotifyPropertyChange.isImplementedBy(a)){this._sourceNotificationHandler=Function.createDelegate(this,this._onSourcePropertyChanged);a.add_propertyChanged(this._sourceNotificationHandler)}if(Sys.INotifyDisposing.isImplementedBy(a)){this._sourceDisposingHandler=Function.createDelegate(this,this._onDisposing);a.add_disposing(this._sourceDisposingHandler)}this.evaluate(Sys.Preview.BindingDirection.In)}}},_onSourcePropertyChanged:function(e,d){var a=this.get_dataPath(),b=this._get_dataPathParts();if(b)a=b[0];var c=d.get_propertyName();if(!c||c===a)this.evaluate(Sys.Preview.BindingDirection.In)},_onTargetPropertyChanged:function(c,b){var a=b.get_propertyName();if(!a||a===this.get_property())this.evaluate(Sys.Preview.BindingDirection.Out)},_onDisposing:function(){this.dispose()}};Sys.Preview.Binding.descriptor={properties:[{name:"direction",type:Sys.Preview.BindingDirection}],methods:[{name:"evaluateOut"}]};Sys.Preview.Binding.registerClass("Sys.Preview.Binding",Sys.Preview.BindingBase);Sys.Preview.XPathBinding=function(){Sys.Preview.XPathBinding.initializeBase(this)};Sys.Preview.XPathBinding.prototype={_xpath:null,get_xpath:function(){return this._xpath},set_xpath:function(a){if(!this._getSource())this._xpath=a},initialize:function(){Sys.Preview.XPathBinding.callBaseMethod(this,"initialize");if(this.get_automatic())this.evaluate(Sys.Preview.BindingDirection.In)},_getSourceValue:function(f){var b=Sys.Preview.XPathBinding.callBaseMethod(this,"_getSourceValue");if(!b)return null;if(Array.isInstanceOfType(f)){var d=b.selectNodes(this._xpath),e=[];for(var c=0;c<d.length;c++){var a=d[c];if(!a||a.nodeType!==1)continue;Array.add(e,a)}return e}else{var a=b.selectSingleNode(this._xpath);if(a)return a.nodeValue;return null}}};Sys.Preview.XPathBinding.descriptor={properties:[{name:"xpath",type:String}]};Sys.Preview.XPathBinding.registerClass("Sys.Preview.XPathBinding",Sys.Preview.BindingBase);Sys.Preview.Action=function(){Sys.Preview.Action.initializeBase(this)};Sys.Preview.Action.prototype={_eventSource:null,_eventName:null,_eventArgs:null,_result:null,_target:null,_bindings:null,get_eventSource:function(){return this._eventSource},set_eventSource:function(a){if(!this.get_isInitialized())this._eventSource=a},get_eventName:function(){return this._eventName},set_eventName:function(a){if(!this.get_isInitialized())this._eventName=a},get_target:function(){return this._target},set_target:function(a){this._target=a},get_dataContext:function(){return this},get_eventArgs:function(){return this._eventArgs},get_result:function(){return this._result},get_sender:function(){return this._eventSource},get_bindings:function(){if(!this._bindings){this._bindings=Sys.Component.createCollection(this);this._bindings.add_collectionChanged(Function.createDelegate(this,this._bindingChanged))}return this._bindings},_bindingChanged:function(b,a){if(a.get_action()===Sys.Preview.NotifyCollectionChangedAction.Add)a.get_changedItem().set_automatic(false)},dispose:function(){if(this._sourceHandler){this._eventSource["remove_"+this._eventName](this._sourceHandler);this._sourceHandler=null}if(this._sourceDisposingHandler){this._eventSource.remove_disposing(this._sourceDisposingHandler);this._sourceDisposingHandler=null}if(this._targetDisposingHandler){this._target.remove_disposing(this._targetDisposingHandler);this._targetDisposingHandler=null}this._target=null;this._eventSource=null;Sys.Preview.Action.callBaseMethod(this,"dispose")},performAction:function(){throw Error.notImplemented()},execute:function(f,e){this._eventArgs=e;var d=this.get_bindings(),a,b;if(d){var c;for(c=0;c<d.length;c++){a=d[c];b=a?Object.getType(a):null;if(b&&(b===Sys.Preview.Binding||Sys.Preview.Binding.inheritsFrom(b))){if(a.get_direction()!==Sys.Preview.BindingDirection.Out)a.evaluateIn()}else a.evaluateIn()}}this._result=this.performAction();if(d)for(c=0;c<d.length;c++){a=d[c];b=a?Object.getType(a):null;if(b&&(b===Sys.Preview.Binding||Sys.Preview.Binding.inheritsFrom(b))){if(a.get_direction()!==Sys.Preview.BindingDirection.In)a.evaluateOut()}else a.evaluateOut()}this._eventArgs=null;this._result=null},initialize:function(){if(this._eventSource){var a=Sys.Preview.TypeDescriptor.getTypeDescriptor(this._eventSource);if(a){if(Sys.INotifyDisposing.isImplementedBy(this._eventSource)){this._sourceDisposeHandler=Function.createDelegate(this,this._sourceDisposing);this._eventSource.add_disposing(this._sourceDisposeHandler)}var b=a._getEvents()[this.get_eventName()];this._sourceHandler=Function.createDelegate(this,this.execute);this._eventName=b.name;this._eventSource["add_"+this._eventName](this._sourceHandler)}}if(this._target&&Sys.INotifyDisposing.isImplementedBy(this._target)){this._targetDisposeHandler=Function.createDelegate(this,this._targetDisposing);this._target.add_disposing(this._targetDisposeHandler)}Sys.Preview.Action.callBaseMethod(this,"initialize")},setOwner:function(a){if(!this.get_isInitialized())this._eventSource=a},_sourceDisposing:function(){this.dispose()},_targetDisposing:function(){this.dispose()}};Sys.Preview.Action.descriptor={properties:[{name:"eventSource",type:Object},{name:"eventName",type:String},{name:"bindings",type:Array,readOnly:true},{name:"eventArgs",type:Sys.EventArgs,readOnly:true},{name:"result",type:Object,readOnly:true},{name:"sender",type:Object,readOnly:true},{name:"target",type:Object}]};Sys.Preview.Action.registerClass("Sys.Preview.Action",Sys.Component,Sys.Preview.IAction);Sys.Preview.Action.parseFromMarkup=function(e,d,b){var c=new e,a=Sys.Preview.MarkupParser.initializeObject(c,d,b);if(a){b.addComponent(a);return a}else c.dispose();return null};Sys.Preview.InvokeMethodAction=function(){Sys.Preview.InvokeMethodAction.initializeBase(this)};Sys.Preview.InvokeMethodAction.prototype={_method:null,_parameters:null,get_method:function(){return this._method},set_method:function(a){this._method=a},get_parameters:function(){if(!this._parameters)this._parameters={};return this._parameters},performAction:function(){return Sys.Preview.TypeDescriptor.invokeMethod(this.get_target(),this._method,this._parameters)}};Sys.Preview.InvokeMethodAction.descriptor={properties:[{name:"method",type:String},{name:"parameters",type:Object,readOnly:true}]};Sys.Preview.InvokeMethodAction.registerClass("Sys.Preview.InvokeMethodAction",Sys.Preview.Action);Sys.Preview.SetPropertyAction=function(){Sys.Preview.SetPropertyAction.initializeBase(this)};Sys.Preview.SetPropertyAction.prototype={_property:null,_propertyKey:null,_value:null,get_property:function(){return this._property},set_property:function(a){this._property=a},get_propertyKey:function(){return this._propertyKey},set_propertyKey:function(a){this._propertyKey=a},get_value:function(){return this._value},set_value:function(a){this._value=a},performAction:function(){Sys.Preview.TypeDescriptor.setProperty(this.get_target(),this._property,this._value,this._propertyKey);return null}};Sys.Preview.SetPropertyAction.descriptor={properties:[{name:"property",type:String},{name:"propertyKey"},{name:"value",type:String}]};Sys.Preview.SetPropertyAction.registerClass("Sys.Preview.SetPropertyAction",Sys.Preview.Action);Sys.Preview.PostBackAction=function(){Sys.Preview.PostBackAction.initializeBase(this)};Sys.Preview.PostBackAction.prototype={_eventArgument:null,get_target:function(){return this._target},set_target:function(a){this._target=a},get_eventArgument:function(){return this._eventArgument},set_eventArgument:function(a){this._eventArgument=a},performAction:function(){__doPostBack(this.get_target(),this.get_eventArgument());return null}};Sys.Preview.PostBackAction.descriptor={properties:[{name:"eventArgument",type:String},{name:"target",type:String}]};Sys.Preview.PostBackAction.registerClass("Sys.Preview.PostBackAction",Sys.Preview.Action);Sys.Preview.Counter=function(){Sys.Preview.Counter.initializeBase(this)};Sys.Preview.Counter.prototype={_value:0,_lowerBound:Number.NaN,_upperBound:Number.NaN,get_canDecrement:function(){return isNaN(this._lowerBound)||this._value>this._lowerBound},get_canIncrement:function(){return isNaN(this._upperBound)||this._value<this._upperBound},get_lowerBound:function(){return this._lowerBound},set_lowerBound:function(a){if(isNaN(a)&&isNaN(this._lowerBound)||a===this._lowerBound)return;var b=this.get_canDecrement();this._lowerBound=a;this.raisePropertyChanged("lowerBound");if(b!==this.get_canDecrement())this.raisePropertyChanged("canDecrement")},get_upperBound:function(){return this._upperBound},set_upperBound:function(a){if(isNaN(a)&&isNaN(this._upperBound)||a===this._upperBound)return;var b=this.get_canIncrement();this._upperBound=a;this.raisePropertyChanged("upperBound");if(b!==this.get_canIncrement())this.raisePropertyChanged("canIncrement")},get_value:function(){return this._value},set_value:function(a){if((isNaN(this._lowerBound)||a>=this._lowerBound)&&(isNaN(this._upperBound)||a<=this._upperBound)&&this._value!==a){var b=this.get_canDecrement(),c=this.get_canIncrement();this._value=a;this.raisePropertyChanged("value");if(b!==this.get_canDecrement())this.raisePropertyChanged("canDecrement");if(c!==this.get_canIncrement())this.raisePropertyChanged("canIncrement")}},decrement:function(){this.set_value(this._value-1)},increment:function(){this.set_value(this._value+1)}};Sys.Preview.Counter.descriptor={properties:[{name:"value",type:Number},{name:"lowerBound",type:Number},{name:"upperBound",type:Number},{name:"canDecrement",type:Boolean,readOnly:true},{name:"canIncrement",type:Boolean,readOnly:true}],methods:[{name:"increment"},{name:"decrement"}]};Sys.Preview.Counter.registerClass("Sys.Preview.Counter",Sys.Component);Sys.Preview.Timer=function(){Sys.Preview.Timer.initializeBase(this);this._interval=1000;this._enabled=false;this._timer=null};Sys.Preview.Timer.prototype={get_interval:function(){return this._interval},set_interval:function(a){if(this._interval!==a){this._interval=a;this.raisePropertyChanged("interval");if(!this.get_isUpdating()&&this._timer!==null)this.restartTimer()}},get_enabled:function(){return this._enabled},set_enabled:function(a){if(a!==this.get_enabled()){this._enabled=a;this.raisePropertyChanged("enabled");if(!this.get_isUpdating())if(a)this._startTimer();else this._stopTimer()}},add_tick:function(a){this.get_events().addHandler("tick",a)},remove_tick:function(a){this.get_events().removeHandler("tick",a)},dispose:function(){this.set_enabled(false);this._stopTimer();Sys.Preview.Timer.callBaseMethod(this,"dispose")},updated:function(){Sys.Preview.Timer.callBaseMethod(this,"updated");if(this._enabled)this.restartTimer()},_timerCallback:function(){var a=this.get_events().getHandler("tick");if(a)a(this,Sys.EventArgs.Empty)},restartTimer:function(){this._stopTimer();this._startTimer()},_startTimer:function(){this._timer=window.setInterval(Function.createDelegate(this,this._timerCallback),this._interval)},_stopTimer:function(){window.clearInterval(this._timer);this._timer=null}};Sys.Preview.Timer.descriptor={properties:[{name:"interval",type:Number},{name:"enabled",type:Boolean}],events:[{name:"tick"}]};Sys.Preview.Timer.registerClass("Sys.Preview.Timer",Sys.Component);Sys.Preview.ITask=function(){throw Error.notImplemented()};Sys.Preview.ITask.prototype={execute:function(){throw Error.notImplemented()}};Sys.Preview.ITask.registerInterface("Sys.Preview.ITask");Sys.Preview.Reference=function(){};Sys.Preview.Reference.prototype={_component:null,_onload:null,get_component:function(){return this._component},set_component:function(a){this._component=a},get_onscriptload:function(){return this._onload},set_onscriptload:function(a){this._onload=a},dispose:function(){this._component=null}};Sys.Preview.Reference.descriptor={properties:[{name:"component",type:Object},{name:"onscriptload",type:String}]};Sys.Preview.Reference.registerClass("Sys.Preview.Reference",null,Sys.IDisposable);Sys.Preview.Reference.parseFromMarkup=function(e,d,c){var a=new Sys.Preview.Reference,b=Sys.Preview.MarkupParser.initializeObject(a,d,c);if(b)return b;a.dispose();return null};Sys.Preview._TaskManager=function(){Sys.Application.registerDisposableObject(this);this._tasks=[]};Sys.Preview._TaskManager.prototype={_timeoutCookie:null,_timeoutHandler:null,addTask:function(a){Array.enqueue(this._tasks,a);this._startTimeout()},dispose:function(){if(this._timeoutCookie)window.clearTimeout(this._timeoutCookie);if(this._tasks&&this._tasks.length)for(var a=this._tasks.length-1;a>=0;a--)this._tasks[a].dispose();this._tasks=null;this._timeoutHandler=null;Sys.Application.unregisterDisposableObject(this)},_onTimeout:function(){this._timeoutCookie=0;var a=Array.dequeue(this._tasks);if(!a.execute())Array.enqueue(this._tasks,a);if(this._tasks.length)this._startTimeout()},_startTimeout:function(){if(!this._timeoutCookie){if(!this._timeoutHandler)this._timeoutHandler=Function.createDelegate(this,this._onTimeout);this._timeoutCookie=window.setTimeout(this._timeoutHandler,0)}}};Sys.Preview._TaskManager.registerClass("Sys.Preview._TaskManager",null,Sys.IDisposable);Sys.Preview.TaskManager=new Sys.Preview._TaskManager;Type.registerNamespace("Sys.Preview.Net");Sys.Preview.Net.ServiceMethodRequest=function(){Sys.Preview.Net.ServiceMethodRequest.initializeBase(this)};Sys.Preview.Net.ServiceMethodRequest.prototype={_url:null,_methodName:null,_parameters:null,_userContext:null,_result:null,_request:null,_timeoutInterval:0,_useGet:true,get_url:function(){return this._url},set_url:function(a){this._url=a},get_methodName:function(){return this._methodName},set_methodName:function(a){this._methodName=a},get_useGet:function(){return this._useGet},set_useGet:function(a){this._useGet=a},get_parameters:function(){if(this._parameters===null)this._parameters={};return this._parameters},get_result:function(){return this._result},get_timeoutInterval:function(){return this._timeoutInterval},set_timeoutInterval:function(a){this._timeoutInterval=a},add_completed:function(a){this.get_events().addHandler("completed",a)},remove_completed:function(a){this.get_events().removeHandler("completed",a)},add_timeout:function(a){this.get_events().addHandler("timeout",a)},remove_timeout:function(a){this.get_events().removeHandler("timeout",a)},add_error:function(a){this.get_events().addHandler("error",a)},remove_error:function(a){this.get_events().removeHandler("error",a)},invoke:function(a){if(this._request!==null)return false;var d={parameters:this.get_parameters(),loadMethod:""};this._request=Sys.Net.WebServiceProxy.invoke(this._url,this._methodName,this._useGet,d,b,c,this,this._timeoutInterval);function b(d,b){b._request=null;b._userContext=a;b._result=d;var c=b.get_events().getHandler("completed");if(c)c(b,Sys.EventArgs.Empty)}function c(c,b){b._request=null;b._userContext=a;b._result=c;var e=false;if(c.get_errorStatus)e=c.get_errorStatus()===2;else if(c.get_timedOut)e=c.get_timedOut();var d;if(e)d=b.get_events().getHandler("timeout");else d=b.get_events().getHandler("error");if(d)d(b,Sys.EventArgs.Empty)}return true}};Sys.Preview.Net.ServiceMethodRequest.descriptor={properties:[{name:"url",type:String},{name:"methodName",type:String},{name:"parameters",type:Object,readOnly:true},{name:"result",type:Object,readOnly:true},{name:"timeoutInterval",type:Number},{name:"useGet",type:Boolean}],methods:[{name:"invoke",parameters:[{name:"userContext"}]}],events:[{name:"completed"},{name:"timeout"},{name:"error"}]};Sys.Preview.Net.ServiceMethodRequest.registerClass("Sys.Preview.Net.ServiceMethodRequest",Sys.Component);Sys.Net._WebRequestManager.descriptor={properties:[{name:"defaultTimeout",type:Number},{name:"defaultExecutorType",type:String}]};Sys.Net._WebRequestManager.parseFromMarkup=function(c,b,a){if(!a.get_isGlobal())return null;Sys.Preview.MarkupParser.initializeObject(Sys.Net.WebRequestManager,b,a);return Sys.Net.WebRequestManager};Type.registerNamespace("Sys.Preview.Data");Sys.Preview.Data.IData=function(){throw Error.notImplemented()};Sys.Preview.Data.IData.prototype={add:function(){throw Error.notImplemented()},clear:function(){throw Error.notImplemented()},get_length:function(){throw Error.notImplemented()},getRow:function(){throw Error.notImplemented()},remove:function(){throw Error.notImplemented()}};Sys.Preview.Data.IData.registerInterface("Sys.Preview.Data.IData");Sys.Preview.Data.DataRowState=function(){throw Error.invalidOperation()};Sys.Preview.Data.DataRowState.prototype={Unchanged:0,Added:1,Deleted:2,Detached:3,Modified:4};Sys.Preview.Data.DataRowState.registerEnum("Sys.Preview.Data.DataRowState");Sys.Preview.Data.SortDirection=function(){throw Error.invalidOperation()};Sys.Preview.Data.SortDirection.prototype={Ascending:0,Descending:1};Sys.Preview.Data.SortDirection.registerEnum("Sys.Preview.Data.SortDirection");Sys.Preview.Data.ServiceType=function(){throw Error.invalidOperation()};Sys.Preview.Data.ServiceType.prototype={DataService:0,Handler:1};Sys.Preview.Data.ServiceType.registerEnum("Sys.Preview.Data.ServiceType");Sys.Preview.Data.DataColumn=function(b,d,a,e,c){this._columnName=b;this._dataType=d;this._defaultValue=a;this._readOnly=c;this._key=e};Sys.Preview.Data.DataColumn.prototype={get_columnName:function(){return this._columnName},get_dataType:function(){return this._dataType},get_defaultValue:function(){return this._defaultValue},get_isKey:function(){return this._key},get_readOnly:function(){return!!this._readOnly},dispose:function(){this._columnName=null;this._dataType=null;this._defaultValue=null}};Sys.Preview.Data.DataColumn.parseFromJson=function(json){return new Sys.Preview.Data.DataColumn(json.name,typeof(json.dataType==="string")?eval(json.dataType):json.dataType,json.defaultValue,json.isKey,json.readOnly)};Sys.Preview.Data.DataColumn.descriptor={properties:[{name:"columnName",type:String,readOnly:true},{name:"dataType",type:Sys.Type,readOnly:true},{name:"defaultValue",readOnly:true},{name:"isKey",type:Boolean,readOnly:true},{name:"readOnly",type:Boolean,readOnly:true}]};Sys.Preview.Data.DataColumn.registerClass("Sys.Preview.Data.DataColumn",null,Sys.IDisposable);Sys.Preview.Data.DataRow=function(b,a,c){this._owner=a;this._row=b;this._index=c};Sys.Preview.Data.DataRow.prototype={_state:Sys.Preview.Data.DataRowState.Unchanged,_selected:false,_events:null,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){if(this._disposed)return;this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){if(this._disposed)return;this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},get_isDirty:function(){return typeof this._row._original==="object"},get_index:function(){return this._index},_set_index:function(a){this._index=a},get_rowObject:function(){return typeof this._row._rowObject!=="undefined"?this._row._rowObject:this._row},get_selected:function(){return this._selected},set_selected:function(a){if(this._selected!==a){this._selected=a;this._onPropertyChanged("$selected")}},get_state:function(){return this._state},_set_state:function(a){this._state=a},get_table:function(){return this._owner},_set_table:function(a){this._owner=a},dispose:function(){delete this._events;this._row=null;this._owner=null;this._disposed=true},getProperty:function(a,b){if(!a)return typeof this._row._rowObject!=="undefined"?this._row._rowObject:this._row;switch(a){case"$isDirty":return this.get_isDirty();case"$index":return this._index;case"$selected":return this.get_selected()}return Sys.Preview.TypeDescriptor.getProperty(this._row,a,b)},setProperty:function(b,c,f){if(b==="$selected"){this.set_selected(c);return}if(this._row[b]===c)return;var e=this.get_isDirty();if(!e&&this._owner&&this.get_state()===Sys.Preview.Data.DataRowState.Unchanged){var d={};for(var a in this._row)if(a.charAt(0)!=="_"&&typeof this._row[a]!=="function")d[a]=this._row[a];this._row._original=d;this._set_state(Sys.Preview.Data.DataRowState.Modified)}Sys.Preview.TypeDescriptor.setProperty(this._row,b,c,f);this._onPropertyChanged(b);if(!e)this._onPropertyChanged("$isDirty");this._owner.raiseRowChanged(this._row)},invokeMethod:function(){}};Sys.Preview.Data.DataRow.descriptor={properties:[{name:"$isDirty",type:Boolean,readOnly:true},{name:"$index",type:Number,readOnly:true},{name:"$selected",type:Boolean}],events:[{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataRow.registerClass("Sys.Preview.Data.DataRow",null,Sys.Preview.ICustomTypeDescriptor,Sys.INotifyPropertyChange,Sys.IDisposable);Sys.Preview.Data.DataRowView=function(a,b){this._row=a;this._index=b};Sys.Preview.Data.DataRowView.prototype={_rowPropertyChanged:null,_events:null,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},get_dataIndex:function(){return this._row.get_index()},get_index:function(){return this._index},_set_index:function(a){this._index=a},get_isDirty:function(){return this._row.get_isDirty()},_get_row:function(){return this._row},get_rowObject:function(){return this._row.get_rowObject()},get_selected:function(){return this._row.get_selected()},set_selected:function(a){this._row.set_selected(a)},get_table:function(){return this._row.get_table()},dispose:function(){if(this._row&&this._rowPropertyChanged)this._row.remove_propertyChanged(this._rowPropertyChanged);delete this._events;this._row=null},initialize:function(){this._rowPropertyChanged=Function.createDelegate(this,this._onRowPropertyChanged);this._row.add_propertyChanged(this._rowPropertyChanged)},_onRowPropertyChanged:function(b,a){this._onPropertyChanged(a.get_propertyName())},getProperty:function(a,b){if(a==="$index")return this._index;if(a==="$dataIndex")return this._row.get_index();return this._row.getProperty(a,b)},setProperty:function(b,a,c){this._row.setProperty(b,a,c)},invokeMethod:function(){}};Sys.Preview.Data.DataRowView.descriptor={properties:[{name:"$dataIndex",type:Number,readOnly:true},{name:"$isDirty",type:Boolean,readOnly:true},{name:"$index",type:Number,readOnly:true},{name:"$selected",type:Boolean}],events:[{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataRowView.registerClass("Sys.Preview.Data.DataRowView",null,Sys.Preview.ICustomTypeDescriptor,Sys.INotifyPropertyChange,Sys.IDisposable);Sys.Preview.Data.DataRowCollection=function(a,b){this._rows=a;this._dataTable=b};Sys.Preview.Data.DataRowCollection.prototype={_indexToRow:null,_tableCollectionChanged:null,_suspendNotifications:false,_events:null,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},add_collectionChanged:function(a){this.get_events().addHandler("collectionChanged",a)},remove_collectionChanged:function(a){this.get_events().removeHandler("collectionChanged",a)},_onCollectionChanged:function(c,b){var a=this.get_events().getHandler("collectionChanged");if(a)a(this,new Sys.Preview.CollectionChangedEventArgs(c,b))},_get_dataTable:function(){return this._dataTable},get_length:function(){return this._rows.length},add:function(c){var a=this._dataTable.add(c),b=new Sys.Preview.Data.DataRowView(a,this._rows.length);b.initialize();if(typeof this._rows.add==="function")this._rows.add(b);else Array.add(this._rows,b);if(this._indexToRow)this._indexToRow[a.get_dataIndex()]=a},clear:function(){this._suspendNotifications=true;for(var a=this._rows.length-1;a>=0;a--)this._dataTable.remove(this._rows[a]._get_row());this._rows=[];this._indexToRow=null;this._suspendNotifications=false;this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Reset,null)},getRow:function(a){return this._rows[a]},getItem:function(a){return this.getRow(a)},remove:function(a){this._dataTable.remove(a._get_row())},dispose:function(){if(this._dataTable&&this._tableCollectionChanged){this._dataTable.remove_collectionChanged(this._tableCollectionChanged);this._tableCollectionChanged=null}delete this._events;this._rows=null;this._dataTable=null},initialize:function(){if(this._dataTable.add_collectionChanged){this._tableCollectionChanged=Function.createDelegate(this,this.onTableCollectionChanged);this._dataTable.add_collectionChanged(this._tableCollectionChanged)}},ensureLookupTable:function(){if(!this._indexToRow){this._indexToRow=[];for(var a=this._rows.length-1;a>=0;a--){var b=this._rows[a];this._indexToRow[b.get_dataIndex()]=b}}},onTableCollectionChanged:function(d,c){if(this._suspendNotifications)return;switch(c.get_action()){case Sys.Preview.NotifyCollectionChangedAction.Reset:this._rows=[];this._indexToRow=null;this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Reset,b);return;case Sys.Preview.NotifyCollectionChangedAction.Remove:var b=c.get_changedItem();this.ensureLookupTable();var a=b.get_index();if(this._indexToRow[a]){if(typeof this._rows.remove==="function")this._rows.remove(this._indexToRow[a]);else Array.remove(this._rows,this._indexToRow[a]);delete this._indexToRow[a];this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Remove,b)}return}}};Sys.Preview.Data.DataRowCollection.descriptor={properties:[{name:"length",type:Number,readOnly:true}],methods:[{name:"add"},{name:"clear"},{name:"remove"}],events:[{name:"collectionChanged",readOnly:true},{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataRowCollection.registerClass("Sys.Preview.Data.DataRowCollection",null,Sys.Preview.Data.IData,Sys.INotifyPropertyChange,Sys.Preview.INotifyCollectionChanged,Sys.IDisposable);Sys.Preview.Data.DataTable=function(b,a){this._array=Array.isInstanceOfType(a)?a:[];this._columns=Array.isInstanceOfType(b)?b:[];this._rows=[];this._deletedRows=[];this._newRows=[];this._updatedRows=[];this._columnDictionary={};this._keys=null;this._events=null};Sys.Preview.Data.DataTable.prototype={get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){if(this._disposed)return;this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){if(this._disposed)return;this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){if(this._disposed)return;var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},add_collectionChanged:function(a){if(this._disposed)return;this.get_events().addHandler("collectionChanged",a)},remove_collectionChanged:function(a){if(this._disposed)return;this.get_events().removeHandler("collectionChanged",a)},_onCollectionChanged:function(c,b){if(this._disposed)return;var a=this.get_events().getHandler("collectionChanged");if(a)a(this,new Sys.Preview.CollectionChangedEventArgs(c,b))},get_columns:function(){return this._columns},get_keyNames:function(){if(this._disposed)return null;if(!this._keys){this._keys=[];var c=this._columns.length;for(var a=0;a<c;a++){var b=this._columns[a];if(b.get_isKey())Array.add(this._keys,b.get_columnName())}}return this._keys},get_isDirty:function(){if(this._disposed)return false;return this._deletedRows.length!==0||this._newRows.length!==0||this._updatedRows.length!==0},get_length:function(){if(this._disposed)return 0;return this._array.length},add:function(a){if(this._disposed)return null;var b;if(Sys.Preview.Data.DataRow.isInstanceOfType(a)){b=a;b._set_table(this);a=a.get_rowObject()}else b=new Sys.Preview.Data.DataRow(a,this);var e=this._array.length;b._set_index(e);var c=this.get_columns();if(c)for(var f=c.length-1;f>=0;f--){var d=c[f];if(typeof a[d.get_columnName()]==="undefined")a[d.get_columnName()]=d.get_defaultValue()}var g=this.get_isDirty();this._array[e]=a;this._rows[e]=b;Array.add(this._newRows,a);b._set_state(Sys.Preview.Data.DataRowState.Added);this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Add,b);this._onPropertyChanged("length");if(!g)this._onPropertyChanged("isDirty");return b},clear:function(){if(this.get_length()>0){var c=this.get_isDirty();for(var a=this._array.length-1;a>=0;a--){var b=this._array[a];if(b&&!Array.contains(this._newRows,b)){Array.add(this._deletedRows,b);this._rows[a]._set_state(Sys.Preview.Data.DataRowState.Deleted)}}this._rows=[];this._array=[];this._newRows=[];this._updatedRows=[];this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Reset,null);this._onPropertyChanged("length");if(!c)this._onPropertyChanged("isDirty")}},createRow:function(c){if(this._disposed)return null;var g={},f={};for(var b=this._columns.length-1;b>=0;b--){var e=this._columns[b],d=e.get_columnName(),a=f;if(c)a=Sys.Preview.TypeDescriptor.getProperty(c,d);if(a===f||typeof a==="undefined")a=e.get_defaultValue();g[d]=a}var h=new Sys.Preview.Data.DataRow(g,this,-1);h._set_state(Sys.Preview.Data.DataRowState.Detached);return h},getChanges:function(){if(this._disposed)return null;return{updated:this._updatedRows,inserted:this._newRows,deleted:this._deletedRows}},getColumn:function(b){if(this._disposed)return null;var d=this._columnDictionary[b];if(d)return d;for(var c=this._columns.length-1;c>=0;c--){var a=this._columns[c];if(a.get_columnName()===b){this._columnDictionary[b]=a;return a}}return null},getRow:function(b){if(this._disposed)return null;var c=this._rows[b];if(!c){var a=this._array[b];if(a){c=Sys.Preview.Data.DataRow.isInstanceOfType(a)?a:new Sys.Preview.Data.DataRow(a,this,b);this._rows[b]=c}}return c},getItem:function(a){return this.getRow(a)},remove:function(b){if(this._disposed)return;if(Sys.Preview.Data.DataRow.isInstanceOfType(b))b=b.get_rowObject();var d=this.get_isDirty(),a=Array.indexOf(this._array,b),c=this.getItem(a);if(typeof this._array.removeAt==="function")this._array.removeAt(a);else Array.removeAt(this._array,a);Array.removeAt(this._rows,a);a=Array.indexOf(this._newRows,b);if(a!==-1)Array.removeAt(this._newRows,a);else Array.add(this._deletedRows,b);c._set_state(Sys.Preview.Data.DataRowState.Deleted);this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Remove,c);this._onPropertyChanged("length");if(d!==this.get_isDirty())this._onPropertyChanged("isDirty")},dispose:function(){delete this._events;this._disposed=true;var a,b;if(this._rows)for(a=this._rows.length-1;a>=0;a--){b=this._rows[a];if(b)this._rows[a].dispose()}if(this._deletedRows)for(a=this._deletedRows.length-1;a>=0;a--){b=this._deletedRows[a];if(b&&b.dispose)b.dispose()}if(this._newRows)for(a=this._newRows.length-1;a>=0;a--){b=this._newRows[a];if(b&&b.dispose)b.dispose()}if(this._updatedRows)for(a=this._updatedRows.length-1;a>=0;a--){b=this._updatedRows[a];if(b&&b.dispose)b.dispose()}this._rows=null;this._deletedRows=null;this._newRows=null;this._updatedRows=null;this._columns=null;this._array=null;this._keys=null},raiseRowChanged:function(a){if(this._disposed)return;if(Array.indexOf(this._updatedRows,a)===-1&&Array.indexOf(this._newRows,a)===-1){var b=this.get_isDirty();Array.add(this._updatedRows,a);if(!b)this._onPropertyChanged("isDirty")}}};Sys.Preview.Data.DataTable.parseFromJson=function(a){var b=null;if(a.columns){b=[];for(var c=0;c<a.columns.length;c++)Array.add(b,Sys.Preview.Data.DataColumn.parseFromJson(a.columns[c]))}return new Sys.Preview.Data.DataTable(b,a.rows)};Sys.Preview.Data.DataTable.descriptor={properties:[{name:"columns",type:Array,readOnly:true},{name:"keyNames",type:Array,readOnly:true},{name:"length",type:Number,readOnly:true},{name:"isDirty",type:Boolean,readOnly:true}],methods:[{name:"add"},{name:"clear"},{name:"remove"}],events:[{name:"collectionChanged",readOnly:true},{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataTable.registerClass("Sys.Preview.Data.DataTable",null,Sys.Preview.Data.IData,Sys.INotifyPropertyChange,Sys.Preview.INotifyCollectionChanged,Sys.IDisposable);Sys.Preview.Data.DataView=function(){Sys.Preview.Data.DataView.initializeBase(this)};Sys.Preview.Data.DataView.prototype={_data:null,_filteredTable:null,_filteredRows:null,_paginatedRows:null,_pageSize:0,_pageIndex:0,_sorted:false,_sortColumn:"",_sortDirection:Sys.Preview.Data.SortDirection.Ascending,_filters:null,_dataChangedDelegate:null,_compareRowsDelegate:null,_updating:false,get_data:function(){return this._data},set_data:function(a){if(!this._dataChangedDelegate)this._dataChangedDelegate=Function.createDelegate(this,this.onDataChanged);this._filteredTable=null;if(this._data&&this._data.remove_collectionChanged)this._data.remove_collectionChanged(this._dataChangedDelegate);this._data=a;if(this._data&&this._data.add_collectionChanged)this._data.add_collectionChanged(this._dataChangedDelegate);this.raisePropertyChanged("data");this.raisePropertyChanged("filteredData")},get_filteredData:function(){this.ensureFilteredData();return this._filteredTable},get_filters:function(){if(!this._filters){this._filters=Sys.Component.createCollection(this);if(!this._dataChangedDelegate)this._dataChangedDelegate=Function.createDelegate(this,this.onDataChanged);this._filters.add_collectionChanged(this._dataChangedDelegate)}return this._filters},get_hasNextPage:function(){this.ensureFilteredData();return this.get_pageIndex()<this.get_pageCount()-1},get_hasPreviousPage:function(){if(!this._data)return false;return this.get_pageIndex()>0},get_length:function(){this.ensureFilteredData();return this._filteredTable?this._filteredTable.length?this._filteredTable.length:this._filteredTable.get_length():0},get_pageCount:function(){if(this._pageSize===0)return 1;this.ensureFilteredData();if(!this._filteredRows)return 1;return Math.floor((this._filteredRows.length-1)/this._pageSize)+1},get_pageIndex:function(){return this._pageIndex},set_pageIndex:function(a,c){var b=this.get_pageCount();if(a>=b)a=b>0?b-1:0;if(a!==this._pageIndex){var d=this.prepareChange();this._pageIndex=a;this._paginatedRows=null;this.triggerChangeEvents(d,false);if(!c)this.raisePropertyChanged("filteredData")}},get_pageSize:function(){return this._pageSize},set_pageSize:function(a){if(this._pageSize!==a){var b=this.prepareChange();this._pageSize=a;this._paginatedRows=null;this.triggerChangeEvents(b,true);this.raisePropertyChanged("filteredData")}},get_sortColumn:function(){return this._sortColumn},set_sortColumn:function(a){this.sort(a,this._sortDirection)},get_sortDirection:function(){return this._sortDirection},set_sortDirection:function(a){this.sort(this._sortColumn,a)},dispose:function(){this._disposed=true;if(this._filters){this._filters.dispose();this._filters=null}if(this._data&&this._dataChangedDelegate){if(this._data.removeCollectionChanged)this._data.remove_collectionChanged(this._dataChangedDelegate);this._dataChangedDelegate=null;this._data=null}Sys.Preview.Data.DataView.callBaseMethod(this,"dispose")},getItem:function(a){return this._filteredTable?this._filteredTable[a]:null},initialize:function(){Sys.Preview.Data.DataView.callBaseMethod(this,"initialize");if(this._filters)for(var a=0;a<this._filters.length;a++)this._filters[a].initialize(this)},sort:function(d,a){var b=d!==this._sortColumn,c=a!==this._sortDirection;if(b||c){this._sortColumn=d;this._sortDirection=a;if(b)this.raisePropertyChanged("sortColumn");if(c)this.raisePropertyChanged("sortDirection");this._sorted=false;this.set_pageIndex(0,true);this.raisePropertyChanged("filteredData")}},_raiseFilterChanged:function(){this._dataChangedDelegate(this,Sys.EventArgs.Empty)},compareRows:function(c,d){var a=this.get_sortColumn(),b=this.get_sortDirection();if(c.getProperty(a)===d.getProperty(a))return 0;if(c.getProperty(a)<d.getProperty(a))return b===Sys.Preview.Data.SortDirection.Ascending?-1:1;return b===Sys.Preview.Data.SortDirection.Ascending?1:-1},onDataChanged:function(d,b){if(this._disposed)return;if(b!==Sys.EventArgs.Empty){var c=b.get_changedItem(),a=this.get_filters();if(c&&!this.isValidAfterFiltering.call(c,a,a.length))return}this._filteredTable=null;this.raisePropertyChanged("filteredData")},ensureFilteredData:function(){if(this._updating||!this._data)return;this._updating=true;var i=this.prepareChange();if(typeof this._data.length==="number"&&this._data.length===0){this._filteredRows=[];this._paginatedRows=[];this._filteredTable=new Sys.Preview.Data.DataRowCollection([],this._data);this._filteredTable.initialize();this._sorted=true}else{if(!this._filteredTable){this._filteredRows=[];this._paginatedRows=null;this._filteredTable=null;var e=this.get_filters(),g=e.length,h=this._data.get_length?this._data.get_length():typeof this._data.length!=="undefined"?this._data.length:0;for(var a=0;a<h;a++){var b=this._data.getItem?this._data.getItem(a):this._data[a];if(!Sys.Preview.Data.DataRow.isInstanceOfType(b))b=new Sys.Preview.Data.DataRow(b,null,a);if(this.isValidAfterFiltering.call(this,b,e,g)){var f=new Sys.Preview.Data.DataRowView(b,a);f.initialize();Array.add(this._filteredRows,f)}}}if(!this._sorted&&this._sortColumn&&this._filteredRows.length!==0){if(!this._compareRowsDelegate)this._compareRowsDelegate=Function.createDelegate(this,this.compareRows);this._filteredRows.sort(this._compareRowsDelegate);for(var a=this._filteredRows.length-1;a>=0;a--)this._filteredRows[a]._set_index(a);this._sorted=true;this._paginatedRows=null;this._filteredTable=null}if(this._pageSize>0&&!this._paginatedRows){this._paginatedRows=[];this._filteredTable=null;var d=this._filteredRows.length,c=this._pageSize*this._pageIndex;if(d&&c>=d){this._pageIndex=Math.floor(d/this._pageSize)-1;c=this._pageSize*this._pageIndex}var j=c+this._pageSize;for(var a=c;a<j&&a<d;a++){this._filteredRows[a]._set_index(a);Array.add(this._paginatedRows,this._filteredRows[a])}}else this._paginatedRows=this._filteredRows;if(!this._filteredTable){this._filteredTable=new Sys.Preview.Data.DataRowCollection(this._paginatedRows,this._data);this._filteredTable.initialize()}}this.triggerChangeEvents(i,true);this._updating=false},isValidAfterFiltering:function(d,c,b){for(var a=0;a<b;a++)if(!c[a].filter(d))return false;return true},triggerChangeEvents:function(b,d){var c,a=this.get_pageIndex();if(d){if(this.get_pageCount()!==b.pageCount)this.raisePropertyChanged("pageCount");if(this.get_length()!==b.length)this.raisePropertyChanged("length");c=this.get_pageCount();if(a>=c){a=c>0?c-1:0;this.set_pageIndex(a)}}else c=b.pageCount;if(a!==b.pageIndex)this.raisePropertyChanged("pageIndex");if(a<c-1!==b.hasNextPage)this.raisePropertyChanged("hasNextPage");if(a>0!==b.hasPreviousPage)this.raisePropertyChanged("hasPreviousPage")},prepareChange:function(){return{pageCount:this.get_pageCount(),pageIndex:this.get_pageIndex(),length:this.get_length(),hasNextPage:this.get_hasNextPage(),hasPreviousPage:this.get_hasPreviousPage()}}};Sys.Preview.Data.DataView.descriptor={properties:[{name:"data",type:Sys.Preview.Data.DataTable},{name:"filteredData",type:Sys.Preview.Data.DataTable,readOnly:true},{name:"filters",type:Array,readOnly:true},{name:"hasNextPage",type:Boolean,readOnly:true},{name:"hasPreviousPage",type:Boolean,readOnly:true},{name:"length",type:Number,readOnly:true},{name:"pageCount",type:Number,readOnly:true},{name:"pageIndex",type:Number},{name:"pageSize",type:Number},{name:"sortColumn",type:String},{name:"sortDirection",type:Sys.Preview.Data.SortDirection}],methods:[{name:"sort",params:[{name:"sortColumn",type:String},{name:"sortDirection",type:Sys.Preview.Data.SortDirection}]}]};Sys.Preview.Data.DataView.registerClass("Sys.Preview.Data.DataView",Sys.Component);Sys.Preview.Data.DataFilter=function(){Sys.Preview.Data.DataFilter.initializeBase(this)};Sys.Preview.Data.DataFilter.prototype={filter:function(){throw Error.notImplemented()},get_dataContext:function(){var a=Sys.Preview.Data.DataFilter.callBaseMethod(this,"get_dataContext");if(!a)if(this.owner)a=this.owner.get_dataContext();return a},dispose:function(){this.owner=null;Sys.Preview.Data.DataFilter.callBaseMethod(this,"dispose")},raisePropertyChanged:function(a){Sys.Preview.Data.DataFilter.callBaseMethod(this,"raisePropertyChanged",[a]);if(this.owner)this.owner._raiseFilterChanged(this)},setOwner:function(a){this.owner=a}};Sys.Preview.Data.DataFilter.registerClass("Sys.Preview.Data.DataFilter",Sys.Component);Sys.Preview.Data.PropertyFilter=function(){Sys.Preview.Data.PropertyFilter.initializeBase(this)};Sys.Preview.Data.PropertyFilter.prototype={_property:null,_value:null,get_property:function(){return this._property},set_property:function(a){this._property=a;this.raisePropertyChanged("property")},get_value:function(){return this._value},set_value:function(a){this._value=a;this.raisePropertyChanged("value")},filter:function(a){return Sys.Preview.TypeDescriptor.getProperty(a,this._property)===this._value}};Sys.Preview.Data.PropertyFilter.descriptor={properties:[{name:"property",type:String},{name:"value"}]};Sys.Preview.Data.PropertyFilter.registerClass("Sys.Preview.Data.PropertyFilter",Sys.Preview.Data.DataFilter);Sys.Preview.Data.DataSource=function(){Sys.Preview.Data.DataSource.initializeBase(this);this._parameters={}};Sys.Preview.Data.DataSource.prototype={_data:null,_initialData:null,_autoLoad:false,_serviceURL:"",_loadMethod:"",_serviceType:Sys.Preview.Data.ServiceType.DataService,_isReady:true,_dataChangedDelegate:null,_request:null,_timeout:0,add_dataAvailable:function(a){this.get_events().addHandler("dataAvailable",a)},remove_dataAvailable:function(a){this.get_events().removeHandler("dataAvailable",a)},_onDataAvailable:function(){var a=this.get_events().getHandler("dataAvailable");if(a)a(this,Sys.EventArgs.Empty)},get_autoLoad:function(){return this._autoLoad},set_autoLoad:function(a){this._autoLoad=a},get_data:function(){return this._data},set_data:function(a){if(a&&Object.getTypeName(a)==="Object")a=Sys.Preview.Data.DataTable.parseFromJson(a);var b=this.get_isDirtyAndReady(),d=this.get_isReady(),c=this.get_rowCount();if(this._data&&this._dataChangedDelegate)this._data.remove_propertyChanged(this._dataChangedDelegate);if(a instanceof Array)a=new Sys.Preview.Data.DataTable([],a);this._data=a;if(this._data){if(!this._dataChangedDelegate)this._dataChangedDelegate=Function.createDelegate(this,this.onDataPropertyChanged);this._data.add_propertyChanged(this._dataChangedDelegate)}this.raisePropertyChanged("data");if(b!==this.get_isDirtyAndReady())this.raisePropertyChanged("isDirtyAndReady");if(d!==this.get_isReady())this.raisePropertyChanged("isReady");if(c!==this.get_rowCount())this.raisePropertyChanged("rowCount")},get_initialData:function(){return this._initialData},set_initialData:function(a){if(!this._data)if(this.get_isInitialized()){var b=null;if(a&&a.length)b=Sys.Serialization.JavaScriptSerializer.deserialize(a);this.set_data(b)}else this._initialData=a},get_isDirtyAndReady:function(){return this._isReady&&this._data&&this._data.get_isDirty()},get_isReady:function(){return this._isReady},_set_isReady:function(a){if(this._isReady!==a){var b=this.get_isDirtyAndReady();this._isReady=a;this.raisePropertyChanged("isReady");if(this.get_isDirtyAndReady()!==b)this.raisePropertyChanged("isDirtyAndReady")}},get_loadMethod:function(){return this._loadMethod},set_loadMethod:function(a){this._loadMethod=a},get_parameters:function(){return this._parameters},get_serviceURL:function(){return this._serviceURL},set_serviceURL:function(a){this._serviceURL=a},get_serviceType:function(){return this._serviceType},set_serviceType:function(a){this._serviceType=a},get_rowCount:function(){if(this._data)return this._data.get_length();return 0},dispose:function(){if(this._data)this._data.dispose();this._data=null;Sys.Preview.Data.DataSource.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.Data.DataSource.callBaseMethod(this,"initialize");if(this._autoLoad||this._initialData)this.load()},onDataPropertyChanged:function(b,a){switch(a.get_propertyName()){case"isDirty":this.raisePropertyChanged("isDirtyAndReady");break;case"length":this.raisePropertyChanged("rowCount");break}},onRequestComplete:function(a){this.onLoadComplete(a.get_object())},onLoadComplete:function(rawData,userContext,methodName){var oldDirtyAndReady=this.get_isDirtyAndReady();this.set_data(eval(rawData));this._isReady=true;this.raisePropertyChanged("isReady");if(this.get_isDirtyAndReady()!==oldDirtyAndReady)this.raisePropertyChanged("isDirtyAndReady");this._onDataAvailable()},ready:function(){this._set_isReady(true)},load:function(){if(this._initialData){this.set_data(Sys.Serialization.JavaScriptSerializer.deserialize(this._initialData));this._initialData=null;return}this._set_isReady(false);if(this._serviceType===Sys.Preview.Data.ServiceType.DataService){var e="GetData",f={parameters:this._parameters,loadMethod:this._loadMethod},b=Function.createDelegate(this,this.onLoadComplete),d=Function.createDelegate(this,this.ready);this._request=Sys.Net.WebServiceProxy.invoke(this._serviceURL,e,false,f,b,d,this,this._timeout)}else{var b=Function.createDelegate(this,this.onRequestComplete),c=Function.createDelegate(this,this.ready),g=Sys.Net.WebRequest._createUrl(this._serviceURL,this._parameters),a=new Sys.Net.WebRequest;a.set_url(g);a.add_completed(function(a,e){if(a.get_responseAvailable()){var d=a.get_statusCode();if(d>=200||d<300)b(a,e);else c()}});a.invoke()}},save:function(){if(this._data&&this._data.get_isDirty()){var b=this._data.getChanges();this._set_isReady(false);if(this._serviceType===Sys.Preview.Data.ServiceType.DataService){var d="SaveData",e={changeList:b,parameters:this._parameters,loadMethod:this._loadMethod},a=Function.createDelegate(this,this.onLoadComplete),c=Function.createDelegate(this,this.ready);this._request=Sys.Net.WebServiceProxy.invoke(this._serviceURL,d,false,e,a,c,this,this._timeout)};}}};Sys.Preview.Data.DataSource.descriptor={properties:[{name:"data",type:Object},{name:"autoLoad",type:Boolean},{name:"initialData",type:String},{name:"isDirtyAndReady",type:Boolean,readOnly:true},{name:"isReady",type:Boolean,readOnly:true},{name:"loadMethod",type:String},{name:"rowCount",type:Number,readOnly:true},{name:"serviceURL",type:String},{name:"parameters",type:Object,readOnly:true},{name:"serviceType",type:Sys.Preview.Data.ServiceType}],methods:[{name:"load"},{name:"save"}],events:[{name:"dataAvailable",readOnly:true}]};Sys.Preview.Data.DataSource.registerClass("Sys.Preview.Data.DataSource",Sys.Component);Sys.Preview.Data.XMLDataSource=function(){Sys.Preview.Data.XMLDataSource.initializeBase(this)};Sys.Preview.Data.XMLDataSource.prototype={_document:null,_initialDocument:null,_data:null,_xpath:"",_serviceURL:null,_parameters:null,_isReady:false,_autoLoad:false,add_documentAvailable:function(a){this.get_events().addHandler("documentAvailable",a)},remove_documentAvailable:function(a){this.get_events().removeHandler("documentAvailable",a)},_onDocumentAvailable:function(){var a=this.get_events().getHandler("documentAvailable");if(a)a(this,Sys.EventArgs.Empty)},get_autoLoad:function(){return this._autoLoad},set_autoLoad:function(a){this._autoLoad=a},get_document:function(){return this._document},get_data:function(){return this._data},get_initialDocument:function(){return this._initialDocument},set_initialDocument:function(b){if(!this._document){var a=new XMLDOM(b.trim());if(this.get_isInitialized())this._setDocument(a);else this._initialDocument=a}},get_isReady:function(){return this._isReady},get_parameters:function(){if(this._parameters===null)this._parameters={};return this._parameters},get_serviceURL:function(){return this._serviceURL},set_serviceURL:function(a){this._serviceURL=a},get_xpath:function(){return this._xpath},set_xpath:function(a){if(this._xpath!==a){this._xpath=a;if(this._document)this._updateData()}},dispose:function(){this._document=null;this._initialDocument=null;this._data=null;Sys.Preview.Data.XMLDataSource.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.Data.XMLDataSource.callBaseMethod(this,"initialize");if(this._autoLoad)this.load()},load:function(){if(this._initialDocument){var a=this._initialDocument;this._initialDocument=null;this._setDocument(a);this._updateReady(true)}else this._invokeService()},_invokeService:function(){var c=Function.createDelegate(this,this._serviceCompleted),b=Function.createDelegate(this,this._serviceTimeout),d=Sys.Net.WebRequest._createUrl(this._serviceURL,this.get_parameters()),a=new Sys.Net.WebRequest;a.set_url(d);a.add_completed(function(a,e){if(a.get_responseAvailable()){var d=a.get_statusCode();if(d>=200||d<300)c(a,e);else b()}});a.invoke();this._updateReady(false)},_serviceCompleted:function(a){if(a.get_statusCode()===200)this._setDocument(a.get_xml());this._updateReady(true)},_serviceTimeout:function(){this._updateReady(true)},_setDocument:function(a){this._document=a;this._updateData();this.raisePropertyChanged("document");this._onDocumentAvailable()},_updateData:function(){var a=this._xpath;if(!a||!a.length)a="*/*";var d=this._document.selectNodes(a),e=[];for(var c=0;c<d.length;c++){var b=d[c];if(!b||b.nodeType!==1)continue;Array.add(e,b)}this._data=e;this.raisePropertyChanged("data")},_updateReady:function(a){this._isReady=a;this.raisePropertyChanged("isReady")}};Sys.Preview.Data.XMLDataSource.descriptor={properties:[{name:"autoLoad",type:Boolean},{name:"data",type:Object,readOnly:true},{name:"document",type:Object,readOnly:true},{name:"initialDocument",type:String},{name:"isReady",type:Boolean,readOnly:true},{name:"parameters",type:Object,readOnly:true},{name:"serviceURL",type:String},{name:"xpath",type:String}],events:[{name:"documentAvailable",readOnly:true}],methods:[{name:"load"}]};Sys.Preview.Data.XMLDataSource.registerClass("Sys.Preview.Data.XMLDataSource",Sys.Component);Type.registerNamespace("Sys.Preview.UI");Sys.Preview.UI.DialogResult=function(){throw Error.invalidOperation()};Sys.Preview.UI.DialogResult.prototype={OK:0,Cancel:1};Sys.Preview.UI.DialogResult.registerEnum("Sys.Preview.UI.DialogResult");Sys.Preview.UI.Color=function(c,b,a){Sys.Preview.UI.Color.initializeBase(this);this._r=c;this._g=b;this._b=a};Sys.Preview.UI.Color.prototype={get_blue:function(){return this._b},get_green:function(){return this._g},get_red:function(){return this._r},toString:function(){var c=this._r.toString(16);if(this._r<16)c="0"+c;var a=this._g.toString(16);if(this._g<16)a="0"+a;var b=this._b.toString(16);if(this._b<16)b="0"+b;return"#"+c+a+b}};Sys.Preview.UI.Color.registerClass("Sys.Preview.UI.Color");Sys.Preview.UI.Color.parse=function(a){if(a&&a.length===7&&a.startsWith("#")){var d=parseInt("0x"+a.substr(1,2)),b=parseInt("0x"+a.substr(3,2)),c=parseInt("0x"+a.substr(5,2));return new Sys.Preview.UI.Color(d,b,c)}return null};Sys.Preview.Attributes.defineAttribute("ValueProperty");Sys.Preview.UI.CommandEventArgs=function(a,b){Sys.Preview.UI.CommandEventArgs.initializeBase(this);this._commandName=a;this._argument=b};Sys.Preview.UI.CommandEventArgs.prototype={get_argument:function(){return this._argument},get_commandName:function(){return this._commandName}};Sys.Preview.UI.CommandEventArgs.descriptor={properties:[{name:"argument",type:String,readOnly:true},{name:"commandName",type:String,readOnly:true}]};Sys.Preview.UI.CommandEventArgs.registerClass("Sys.Preview.UI.CommandEventArgs",Sys.EventArgs);Sys.Preview.UI.IValidationTarget=function(){};Sys.Preview.UI.IValidationTarget.prototype={validated:null,get_isInvalid:function(){throw Error.notImplemented()},get_validationMessage:function(){throw Error.notImplemented()},validate:function(){throw Error.notImplemented()}};Sys.Preview.UI.IValidationTarget.registerInterface("Sys.Preview.UI.IValidationTarget");Sys.Preview.UI.Validator=function(){Sys.Preview.UI.Validator.initializeBase(this)};Sys.Preview.UI.Validator.prototype={_errorMessage:null,_isInvalid:false,get_dataContext:function(){var a=Sys.Component.callBaseMethod(this,"get_dataContext");if(!a)if(this.control)a=this.control.get_dataContext();return a},get_errorMessage:function(){return this._errorMessage},set_errorMessage:function(a){this._errorMessage=a},get_isInvalid:function(){return this._isInvalid},dispose:function(){this.control=null;Sys.Preview.UI.Validator.callBaseMethod(this,"dispose")},performValidation:function(a){this._isInvalid=!this.validate(a)},setOwner:function(a){this.control=a},validate:function(){throw Error.notImplemented()}};Sys.Preview.UI.Validator.descriptor={properties:[{name:"errorMessage",type:String},{name:"isInvalid",type:Boolean}]};Sys.Preview.UI.Validator.registerClass("Sys.Preview.UI.Validator",Sys.Component);Sys.Preview.UI.ValidationGroup=function(){Sys.Preview.UI.ValidationGroup.initializeBase(this);this._associatedControls=[]};Sys.Preview.UI.ValidationGroup.prototype={_valid:true,_validated:false,_validatedHandler:null,get_associatedControls:function(){return this._associatedControls},get_isValid:function(){if(!this._validated){this.validate();this._validated=true}return this._valid},dispose:function(){if(this._associatedControls){for(var a=0;a<this._associatedControls.length;a++){this._associatedControls[a].get_component().remove_validated(this._validatedHandler);this._associatedControls[a].dispose()}this._validatedHandler=null;this._associatedControls=null}Sys.Preview.UI.ValidationGroup.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.ValidationGroup.callBaseMethod(this,"initialize");this._validatedHandler=Function.createDelegate(this,this._onControlValidated);for(var a=0;a<this._associatedControls.length;a++)this._associatedControls[a].get_component().add_validated(this._validatedHandler)},validate:function(){var b=true;if(this._associatedControls&&this._associatedControls.length)for(var a=0;a<this._associatedControls.length;a++)if(this._associatedControls[a].get_component().get_isInvalid()){b=false;break}this._valid=b},_onControlValidated:function(){var a=this._valid;this.validate();if(this._valid!==a)this.raisePropertyChanged("isValid")}};Sys.Preview.UI.ValidationGroup.descriptor={properties:[{name:"isValid",type:Boolean,readOnly:true},{name:"associatedControls",type:Array,readOnly:true}]};Sys.Preview.UI.ValidationGroup.registerClass("Sys.Preview.UI.ValidationGroup",Sys.Component);Sys.Preview.UI.InputControl=function(a){Sys.Preview.UI.InputControl.initializeBase(this,[a])};Sys.Preview.UI.InputControl.prototype={_valuePropertyName:null,_validators:null,_invalid:false,_validated:false,_validationMessage:null,add_validated:function(a){this.get_events().addHandler("validated",a)},remove_validated:function(a){if(this._disposed)return;this.get_events().removeHandler("validated",a)},_onValidated:function(){var a=this.get_events().getHandler("validated");if(a)a(this,Sys.EventArgs.Empty)},get_isInvalid:function(){if(!this._validated){this.validate(false);this._validated=true}return this._invalid},get_validationMessage:function(){return this.get_isInvalid()?this._validationMessage:""},get_validators:function(){if(!this._validators)this._validators=Sys.Component.createCollection(this);return this._validators},dispose:function(){if(this._validators){this._validators.dispose();this._validators=null}this._disposed=true;Sys.Preview.UI.InputControl.callBaseMethod(this,"dispose")},raisePropertyChanged:function(a){if(this._validators&&this._validators.length){if(!this._valuePropertyName)this._valuePropertyName=Sys.Preview.TypeDescriptor.getAttribute(this,Sys.Preview.Attributes.ValueProperty);if(this._valuePropertyName===a)if(!this.validate(true))return}Sys.Preview.UI.InputControl.callBaseMethod(this,"raisePropertyChanged",[a])},validate:function(d){if(!this._validators||!this._validators.length)return true;if(!this._valuePropertyName)this._valuePropertyName=Sys.Preview.TypeDescriptor.getAttribute(this,Sys.Preview.Attributes.ValueProperty);var e=Sys.Preview.TypeDescriptor.getProperty(this,this._valuePropertyName),a=null;for(var c=0;c<this._validators.length;c++){var b=this._validators[c];b.performValidation(e);if(b.get_isInvalid()){a=b;this._validationMessage=a.get_errorMessage();this._invalid=true;break}}if(!a)this._invalid=false;if(d)this._onValidated();return!this._invalid}};Sys.Preview.UI.InputControl.descriptor={properties:[{name:"isInvalid",type:Boolean,readOnly:true},{name:"validationMessage",type:String,readOnly:true},{name:"validators",type:Array,readOnly:true}]};Sys.Preview.UI.InputControl.registerClass("Sys.Preview.UI.InputControl",Sys.UI.Control,Sys.Preview.UI.IValidationTarget);Sys.Preview.UI.MessageBoxStyle=function(){throw Error.invalidOperation()};Sys.Preview.UI.MessageBoxStyle.prototype={OK:0,OKCancel:1};Sys.Preview.UI.MessageBoxStyle.registerEnum("Sys.Preview.UI.MessageBoxStyle");Sys.Preview.UI.Window=function(){throw Error.invalidOperation()};Sys.Preview.UI.Window.messageBox=function(c,a){if(!a)a=Sys.Preview.UI.MessageBoxStyle.OK;var b=Sys.Preview.UI.DialogResult.OK;switch(a){case Sys.Preview.UI.MessageBoxStyle.OK:window.alert(c);break;case Sys.Preview.UI.MessageBoxStyle.OKCancel:if(window.confirm(c)===false)b=Sys.Preview.UI.DialogResult.Cancel;break}return b};Sys.Preview.UI.Window.inputBox=function(b,a){if(!a)a="";return window.prompt(b,a)};Sys.Preview.UI.ITemplate=function(){throw Error.notImplemented()};Sys.Preview.UI.ITemplate.prototype={createInstance:function(){throw Error.notImplemented()},initialize:function(){throw Error.notImplemented()}};Sys.Preview.UI.ITemplate.registerInterface("Sys.Preview.UI.ITemplate");Sys.Preview.UI.ITemplate.disposeInstance=function(a){if(a.markupContext){a.markupContext.dispose();a.markupContext=null}};Sys.Preview.UI.TemplateInstance=function(){this.instanceElement=null;this.callbackResult=null};Sys.Preview.UI.Template=function(b,c,a){Sys.Preview.UI.Template.initializeBase(this);this._layoutElement=b;this._scriptNode=c;this._parentMarkupContext=a};Sys.Preview.UI.Template.prototype={createInstance:function(e,g,c,f){var a=new Sys.Preview.UI.TemplateInstance;a.instanceElement=this._layoutElement.cloneNode(true);var d=document.createDocumentFragment();d.appendChild(a.instanceElement);var b=Sys.Preview.MarkupContext.createLocalContext(d,this._parentMarkupContext,g);b.open();Sys.Preview.MarkupParser.parseNodes(this._scriptNode.childNodes,b);if(c)a.callbackResult=c(a.instanceElement,b,f);a.instanceElement.markupContext=b;e.appendChild(a.instanceElement);b.close();return a},dispose:function(){this._layoutElement=null;this._scriptNode=null;this._parentMarkupContext=null},initialize:function(){if(this._layoutElement.parentNode)this._layoutElement.parentNode.removeChild(this._layoutElement)}};Sys.Preview.UI.Template.registerClass("Sys.Preview.UI.Template",null,Sys.Preview.UI.ITemplate,Sys.IDisposable);Sys.Preview.UI.Template.parseFromMarkup=function(f,b,a){var c=b.attributes.getNamedItem("layoutElement"),d=c.nodeValue,e=a.findElement(d);return new Sys.Preview.UI.Template(e,b,a)};Sys.Preview.UI.PositioningMode=function(){throw Error.invalidOperation()};Sys.Preview.UI.PositioningMode.prototype={Absolute:0,Center:1,BottomLeft:2,BottomRight:3,TopLeft:4,TopRight:5};Sys.Preview.UI.PositioningMode.registerEnum("Sys.Preview.UI.PositioningMode");Sys.Preview.UI.ClickBehavior=function(a){Sys.Preview.UI.ClickBehavior.initializeBase(this,[a])};Sys.Preview.UI.ClickBehavior.prototype={_clickHandler:null,add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},dispose:function(){if(this._clickHandler)$removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.ClickBehavior.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.ClickBehavior.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);$addHandler(this.get_element(),"click",this._clickHandler)},_onClick:function(){var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty)}};Sys.Preview.UI.ClickBehavior.descriptor={events:[{name:"click"}]};Sys.Preview.UI.ClickBehavior.registerClass("Sys.Preview.UI.ClickBehavior",Sys.UI.Behavior);Sys.Preview.UI.Label=function(a){Sys.Preview.UI.Label.initializeBase(this,[a])};Sys.Preview.UI.Label.prototype={_htmlEncode:false,get_htmlEncode:function(){return this._htmlEncode},set_htmlEncode:function(a){this._htmlEncode=a},get_text:function(){var a=this.get_element();if(this._htmlEncode)return a.innerText;else return a.innerHTML},set_text:function(a){if(!a)a="";var b=this.get_element();if(this._htmlEncode){if(b.innerText!==a){b.innerText=a;this.raisePropertyChanged("text")}}else if(b.innerHTML!==a){b.innerHTML=a;this.raisePropertyChanged("text")}}};Sys.Preview.UI.Label.descriptor={properties:[{name:"htmlEncode",type:Boolean},{name:"text",type:String}]};Sys.Preview.UI.Label.registerClass("Sys.Preview.UI.Label",Sys.UI.Control);Sys.Preview.UI.Image=function(a){Sys.Preview.UI.Image.initializeBase(this,[a])};Sys.Preview.UI.Image.prototype={get_alternateText:function(){return this.get_element().alt},set_alternateText:function(a){this.get_element().alt=a},get_height:function(){return this.get_element().height},set_height:function(a){this.get_element().height=a},get_imageURL:function(){return this.get_element().src},set_imageURL:function(a){this.get_element().src=a},get_width:function(){return this.get_element().width},set_width:function(a){this.get_element().width=a}};Sys.Preview.UI.Image.descriptor={properties:[{name:"alternateText",type:String},{name:"height"},{name:"imageURL",type:String},{name:"width"}]};Sys.Preview.UI.Image.registerClass("Sys.Preview.UI.Image",Sys.UI.Control);if(Sys.Browser.agent===Sys.Browser.Safari){Sys.Preview.UI.Image_=function(a){Sys.Preview.UI.Image_.initializeBase(this,[a])};Sys.Preview.UI.Image_.registerClass("Sys.Preview.UI.Image_",Sys.Preview.UI.Image)}Sys.Preview.UI.HyperLink=function(a){Sys.Preview.UI.HyperLink.initializeBase(this,[a])};Sys.Preview.UI.HyperLink.prototype={_clickHandler:null,get_navigateURL:function(){return this.get_element().href},set_navigateURL:function(a){this.get_element().href=a?a:""},initialize:function(){Sys.Preview.UI.HyperLink.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);$addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){if(this._clickHandler)$removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.HyperLink.callBaseMethod(this,"dispose")},add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},_onClick:function(){var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty)}};Sys.Preview.UI.HyperLink.descriptor={properties:[{name:"navigateURL",type:String}],events:[{name:"click"}]};Sys.Preview.UI.HyperLink.registerClass("Sys.Preview.UI.HyperLink",Sys.Preview.UI.Label);Sys.Preview.UI.Button=function(a){Sys.Preview.UI.Button.initializeBase(this,[a])};Sys.Preview.UI.Button.prototype={_command:null,_arg:null,_clickHandler:null,get_argument:function(){return this._arg},set_argument:function(a){if(this._arg!==a){this._arg=a;this.raisePropertyChanged("argument")}},get_command:function(){return this._command},set_command:function(a){if(this._command!==a){this._command=a;this.raisePropertyChanged("command")}},initialize:function(){Sys.Preview.UI.Button.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);$addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){if(this._clickHandler)$removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.Button.callBaseMethod(this,"dispose")},add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},_onClick:function(){var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty);if(this._command)this.raiseBubbleEvent(this,new Sys.Preview.UI.CommandEventArgs(this._command,this._arg))}};Sys.Preview.UI.Button.descriptor={properties:[{name:"command",type:String},{name:"argument",type:String}],events:[{name:"click"}]};Sys.Preview.UI.Button.registerClass("Sys.Preview.UI.Button",Sys.UI.Control);Sys.Preview.UI.CheckBox=function(a){Sys.Preview.UI.CheckBox.initializeBase(this,[a])};Sys.Preview.UI.CheckBox.prototype={_clickHandler:null,get_checked:function(){return!!this.get_element().checked},set_checked:function(a){a=!!a;if(a!==this.get_checked()){this.get_element().checked=a;this.raisePropertyChanged("checked")}},initialize:function(){Sys.Preview.UI.CheckBox.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);$addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){if(this._clickHandler)$removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.CheckBox.callBaseMethod(this,"dispose")},add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},_onClick:function(){this.raisePropertyChanged("checked");var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty)}};Sys.Preview.UI.CheckBox.descriptor={properties:[{name:"checked"}],events:[{name:"click"}]};Sys.Preview.UI.CheckBox.registerClass("Sys.Preview.UI.CheckBox",Sys.UI.Control);Sys.Preview.UI.TextBox=function(a){Sys.Preview.UI.TextBox.initializeBase(this,[a])};Sys.Preview.UI.TextBox.prototype={_text:null,_changeHandler:null,_keyPressHandler:null,get_text:function(){return this.get_element().value},set_text:function(a){var b=this.get_element();if(!a)a="";if(b.value!==a){b.value=a;this.raisePropertyChanged("text")}},dispose:function(){if(this._changeHandler){$removeHandler(this.get_element(),"change",this._changeHandler);this._changeHandler=null}if(this._keyPressHandler){$removeHandler(this.get_element(),"keypress",this._keyPressHandler);this._keyPressHandler=null}Sys.Preview.UI.TextBox.callBaseMethod(this,"dispose")},_onChange:function(){var a=this.get_element().value;if(a!==this._text){this._text=a;this.raisePropertyChanged("text")}},_onKeyPress:function(a){var c=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(c===Sys.UI.Key.enter){var b=this.get_element().value;if(b!==this._text){this._text=b;this.raisePropertyChanged("text")}}},initialize:function(){Sys.Preview.UI.TextBox.callBaseMethod(this,"initialize");var a=this.get_element();this._text=a.value;this._changeHandler=Function.createDelegate(this,this._onChange);$addHandler(a,"change",this._changeHandler);this._keyPressHandler=Function.createDelegate(this,this._onKeyPress);$addHandler(a,"keypress",this._keyPressHandler)}};Sys.Preview.UI.TextBox.descriptor={properties:[{name:"text",type:String}],attributes:[{name:Sys.Preview.Attributes.ValueProperty,value:"text"}]};Sys.Preview.UI.TextBox.registerClass("Sys.Preview.UI.TextBox",Sys.Preview.UI.InputControl);Sys.Preview.UI.Selector=function(a){Sys.Preview.UI.Selector.initializeBase(this,[a]);this._dataChangedDelegate=Function.createDelegate(this,this.dataBind)};Sys.Preview.UI.Selector.prototype={_selectionChangedHandler:null,_data:null,_textProperty:null,_valueProperty:null,_firstItemText:null,add_selectionChanged:function(a){this.get_events().addHandler("selectionChanged",a)},remove_selectionChanged:function(a){this.get_events().removeHandler("selectionChanged",a)},_onSelectionChanged:function(){this.raisePropertyChanged("selectedValue");var a=this.get_events().getHandler("selectionChanged");if(a)a(this,Sys.EventArgs.Empty)},get_data:function(){return this._data},set_data:function(a){if(this._data&&Sys.Preview.INotifyCollectionChanged.isImplementedBy(this._data))this._data.remove_collectionChanged(this._dataChangedDelegate);this._data=a;if(this._data){if(!Sys.Preview.Data.DataTable.isInstanceOfType(this._data))this._data=new Sys.Preview.Data.DataTable([],this._data);this._data.add_collectionChanged(this._dataChangedDelegate)}this.dataBind();this.raisePropertyChanged("data")},get_firstItemText:function(){return this._firstItemText},set_firstItemText:function(a){if(this._firstItemText!=a){this._firstItemText=a;this.raisePropertyChanged("firstItemText");this.dataBind()}},get_selectedValue:function(){return this.get_element().value},set_selectedValue:function(a){this.get_element().value=a},get_textProperty:function(){return this._textProperty},set_textProperty:function(a){this._textProperty=a;this.raisePropertyChanged("textProperty")},get_valueProperty:function(){return this._valueProperty},set_valueProperty:function(a){this._valueProperty=a;this.raisePropertyChanged("valueProperty")},dataBind:function(){var b=this.get_element().options,d=[],a;for(a=b.length-1;a>=0;a--){if(b[a].selected)Array.add(d,b[a].value);b[a]=null}var c;if(this._firstItemText&&this._firstItemText.length!=0){c=new Option(this._firstItemText,"");b[this.get_element().length]=c}if(this._data){var f=this._data.get_length();for(a=0;a<f;a++){var e=this._data.getItem(a);c=new Option(Sys.Preview.TypeDescriptor.getProperty(e,this._textProperty),Sys.Preview.TypeDescriptor.getProperty(e,this._valueProperty));c.selected=Array.contains(d,c.value);b[this.get_element().length]=c}}},dispose:function(){if(this._selectionChangedHandler){Sys.UI.DomEvent.removeHandler(this.get_element(),"change",this._selectionChangedHandler);this._selectionChangedHandler=null}Sys.Preview.UI.Selector.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.Selector.callBaseMethod(this,"initialize");this._selectionChangedHandler=Function.createDelegate(this,this._onSelectionChanged);Sys.UI.DomEvent.addHandler(this.get_element(),"change",this._selectionChangedHandler)}};Sys.Preview.UI.Selector.descriptor={properties:[{name:"data",type:Sys.Preview.Data.DataTable},{name:"firstItemText",type:String},{name:"selectedValue",type:String},{name:"textProperty",type:String},{name:"valueProperty",type:String}],events:[{name:"selectionChanged",readOnly:true}]};Sys.Preview.UI.Selector.registerClass("Sys.Preview.UI.Selector",Sys.UI.Control);Sys.Preview.UI.RequiredFieldValidator=function(){Sys.Preview.UI.RequiredFieldValidator.initializeBase(this)};Sys.Preview.UI.RequiredFieldValidator.prototype={validate:function(a){if(!a)return false;if(String.isInstanceOfType(a))if(a.length===0)return false;return true}};Sys.Preview.UI.RequiredFieldValidator.registerClass("Sys.Preview.UI.RequiredFieldValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.TypeValidator=function(){Sys.Preview.UI.TypeValidator.initializeBase(this)};Sys.Preview.UI.TypeValidator.prototype={_type:null,get_type:function(){return this._type},set_type:function(a){this._type=a},validate:function(b){if(typeof this._type!=="function")return false;if(this._type===String)return true;var d=this._type.parseLocale||this._type.parseInvariant||this.type.parse;if(typeof d!=="function")return false;var a=true;if(b&&b.length)try{var c=d(b);if(isNaN(c)||c===null)a=false}catch(e){a=false}return a}};Sys.Preview.UI.TypeValidator.descriptor={properties:[{name:"type",type:Type}]};Sys.Preview.UI.TypeValidator.registerClass("Sys.Preview.UI.TypeValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.RangeValidator=function(){Sys.Preview.UI.RangeValidator.initializeBase(this)};Sys.Preview.UI.RangeValidator.prototype={_lowerBound:null,_upperBound:null,get_lowerBound:function(){return this._lowerBound},set_lowerBound:function(a){this._lowerBound=a},get_upperBound:function(){return this._upperBound},set_upperBound:function(a){this._upperBound=a},validate:function(a){if(a&&a.length)return a<=this._upperBound&&a>=this._lowerBound;return true}};Sys.Preview.UI.RangeValidator.descriptor={properties:[{name:"lowerBound",type:Number},{name:"upperBound",type:Number}]};Sys.Preview.UI.RangeValidator.registerClass("Sys.Preview.UI.RangeValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.RegexValidator=function(){Sys.Preview.UI.RegexValidator.initializeBase(this)};Sys.Preview.UI.RegexValidator.prototype={_regex:null,get_regex:function(){return this._regex},set_regex:function(a){if(typeof a==="string")this._regex=new RegExp(a.replace(/^\/|\/$/g,""));else this._regex=a},validate:function(a){if(this._regex&&a&&a.length){var b=this._regex.exec(a);return b&&b[0]===a}return true}};Sys.Preview.UI.RegexValidator.descriptor={properties:[{name:"regex",type:String}]};Sys.Preview.UI.RegexValidator.registerClass("Sys.Preview.UI.RegexValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.CustomValidationEventArgs=function(a){Sys.Preview.UI.CustomValidationEventArgs.initializeBase(this);this._value=a};Sys.Preview.UI.CustomValidationEventArgs.prototype={_isValid:true,get_value:function(){return this._value},get_isValid:function(){return this._isValid},set_isValid:function(a){this._isValid=a}};Sys.Preview.UI.CustomValidationEventArgs.descriptor={properties:[{name:"isValid",type:Boolean},{name:"value",readOnly:true}]};Sys.Preview.UI.CustomValidationEventArgs.registerClass("Sys.Preview.UI.CustomValidationEventArgs",Sys.EventArgs);Sys.Preview.UI.CustomValidator=function(){Sys.Preview.UI.CustomValidator.initializeBase(this)};Sys.Preview.UI.CustomValidator.prototype={add_validateValue:function(a){this.get_events().addHandler("validateValue",a)},remove_validateValue:function(a){this.get_events().removeHandler("validateValue",a)},validate:function(a){if(a&&a.length){var c=new Sys.Preview.UI.CustomValidationEventArgs(a),b=this.get_events().getHandler("validateValue");if(b)b(this,c);return c.get_isValid()}return true}};Sys.Preview.UI.CustomValidator.descriptor={events:[{name:"validateValue"}]};Sys.Preview.UI.CustomValidator.registerClass("Sys.Preview.UI.CustomValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.ValidationErrorLabel=function(a){Sys.Preview.UI.ValidationErrorLabel.initializeBase(this,[a])};Sys.Preview.UI.ValidationErrorLabel.prototype={_associatedControl:null,_validatedHandler:null,get_associatedControl:function(){return this._associatedControl},set_associatedControl:function(a){if(this._associatedControl&&this._validatedHandler)this._associatedControl.remove_validated(this._validatedHandler);if(Sys.Preview.UI.IValidationTarget.isImplementedBy(a))this._associatedControl=a;if(this._associatedControl){if(!this._validatedHandler)this._validatedHandler=Function.createDelegate(this,this._onControlValidated);this._associatedControl.add_validated(this._validatedHandler)}},dispose:function(){if(this._associatedControl){if(this._validatedHandler){this._associatedControl.remove_validated(this._validatedHandler);this._validatedHandler=null}this._associatedControl=null}Sys.Preview.UI.ValidationErrorLabel.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.ValidationErrorLabel.callBaseMethod(this,"initialize");this.set_visible(false)},_onControlValidated:function(){var a=this._associatedControl.get_isInvalid(),b="";if(a)b=this._associatedControl.get_validationMessage();this.set_visible(a);this.get_element().title=b}};Sys.Preview.UI.ValidationErrorLabel.descriptor={properties:[{name:"associatedControl",type:Object}]};Sys.Preview.UI.ValidationErrorLabel.registerClass("Sys.Preview.UI.ValidationErrorLabel",Sys.Preview.UI.Label);Type.registerNamespace("Sys.Preview.Services.Components");Sys.Preview.Services.Components.Profile=function(){Sys.Preview.Services.Components.Profile.initializeBase(this)};Sys.Preview.Services.Components.Profile.prototype={_isDirty:false,_autoSave:false,get_autoSave:function(){return this._autoSave},set_autoSave:function(a){this._autoSave=a},get_isDirty:function(){return this._isDirty},get_path:function(){return Sys.Services.ProfileService.get_path()},set_path:function(a){Sys.Services.ProfileService.set_path(a)},add_loadComplete:function(a){this.get_events().addHandler("loadComplete",a)},remove_loadComplete:function(a){this.get_events().removeHandler("loadComplete",a)},add_saveComplete:function(a){this.get_events().addHandler("saveComplete",a)},remove_saveComplete:function(a){this.get_events().removeHandler("saveComplete",a)},getProperty:function(c,d){var b=Sys.Services.ProfileService.properties;if(d){var a=b[c];return a?a[d]||null:null}return b[c]||null},initialize:function(){Sys.Preview.Services.Components.Profile.callBaseMethod(this,"initialize");var a=true;for(var b in Sys.Services.ProfileService.properties){a=false;break}if(a)this.load()},invokeMethod:function(a,b){if(a==="save")this.save.apply(this,b);else if(a==="load")this.load.apply(this,b)},load:function(a){if(!this.loadCallback)this.loadCallback=Function.createDelegate(this,this._loadComplete);Sys.Services.ProfileService.load(a,this.loadCallback)},save:function(a){if(!this.saveCallback)this.saveCallback=Function.createDelegate(this,this._saveComplete);Sys.Services.ProfileService.save(a,this.saveCallback)},setProperty:function(g,f,e){var d=Sys.Services.ProfileService.properties,c=null,a=g;if(e){var b=d[a];if(!b){b=new Sys.Services.ProfileGroup;d[a]=b}a=a+"."+e;b[e]=f;c=this._isDirty;this._isDirty=true;this.raisePropertyChanged(a)}else{d[a]=f;c=this._isDirty;this._isDirty=true;this.raisePropertyChanged(a)}if(c===false)this.raisePropertyChanged("isDirty");if(this._autoSave&&this._isDirty)this.save([a])},_loadComplete:function(){this._isDirty=false;var a=this.get_events().getHandler("loadComplete");if(a)a(this,Sys.EventArgs.Empty)},_saveComplete:function(){this._isDirty=false;this.raisePropertyChanged("isDirty");var a=this.get_events().getHandler("saveComplete");if(a)a(this,Sys.EventArgs.Empty)},_saveIfDirty:function(){if(this._isDirty)this.save()}};Sys.Preview.Services.Components.Profile.descriptor={properties:[{name:"autoSave",type:Boolean},{name:"path",type:String},{name:"isDirty",type:Boolean,readOnly:true}],methods:[{name:"load"},{name:"save"}],events:[{name:"loadComplete"},{name:"saveComplete"}]};Sys.Preview.Services.Components.Profile.registerClass("Sys.Preview.Services.Components.Profile",Sys.Component,Sys.Preview.ICustomTypeDescriptor);Sys.Preview.Services.Components.Profile.parseFromMarkup=function(e,a,c){if(!c.get_isGlobal())return null;var b=null,d=a.attributes.getNamedItem("id");if(d){b=d.nodeValue;a.attributes.removeNamedItem("id")}Sys.Preview.MarkupParser.initializeObject(Sys.Preview.Services.Components.Profile.instance,a,c);if(b&&b.length){c._addComponentByID(b,Sys.Preview.Services.Components.Profile.instance,true);a.attributes.setNamedItem(d)}return Sys.Preview.Services.Components.Profile.instance};Sys.Preview.Services.Components.Profile.instance=new Sys.Preview.Services.Components.Profile;Type.registerNamespace("Sys.Preview.UI.Data");Sys.Preview.UI.Data.DataControl=function(a){Sys.Preview.UI.Data.DataControl.initializeBase(this,[a]);this._dataIndex=0};Sys.Preview.UI.Data.DataControl.prototype={_data:null,_suspendChangeNotifications:false,_dataChangedDelegate:null,prepareChange:function(){return{dataIndex:this.get_dataIndex(),canMoveNext:this.get_canMoveNext(),canMovePrevious:this.get_canMovePrevious()}},triggerChangeEvents:function(a){var d=this.get_dataIndex();if(a.dataIndex!==d){this.raisePropertyChanged("dataIndex");this.raisePropertyChanged("dataItem");a.dataIndex=d}var c=this.get_canMoveNext();if(a.canMoveNext!==c){this.raisePropertyChanged("canMoveNext");a.canMoveNext=c}var b=this.get_canMovePrevious();if(a.canMovePrevious!==b){this.raisePropertyChanged("canMovePrevious");a.canMovePrevious=b}},get_canMoveNext:function(){if(!this._data)return false;return this._dataIndex<this.get_length()-1},get_canMovePrevious:function(){if(!this._data)return false;return this._dataIndex>0},get_data:function(){return this._data},set_data:function(b){var a=this.prepareChange();if(this._data&&Sys.Preview.INotifyCollectionChanged.isImplementedBy(this._data)){this._data.remove_collectionChanged(this._dataChangedDelegate);this._dataChangedDelegate=null}this._data=b;if(this._data&&Sys.Preview.INotifyCollectionChanged.isImplementedBy(this._data)){this._dataChangedDelegate=Function.createDelegate(this,this.onDataChanged);this._data.add_collectionChanged(this._dataChangedDelegate)}if(this._dataIndex>=this.get_length())this.set_dataIndex(0);if(!this.get_isUpdating())this.render();this.raisePropertyChanged("data");this.triggerChangeEvents(a)},get_dataContext:function(){return this.get_dataItem()},get_dataIndex:function(){return this._dataIndex},set_dataIndex:function(a){if(this._dataIndex!==a){var b=this.prepareChange();this._dataIndex=a;if(!this._suspendChangeNotifications)this.triggerChangeEvents(b)}},get_dataItem:function(){if(this._data&&this._dataIndex>=0){if(Sys.Preview.Data.IData.isImplementedBy(this._data))return this._data.getItem(this._dataIndex);if(this._data instanceof Array)return this._data[this._dataIndex]}return null},get_length:function(){if(!this._data)return 0;if(Sys.Preview.Data.IData.isImplementedBy(this._data))return this._data.get_length();if(this._data instanceof Array)return this._data.length;return 0},addItem:function(){if(this._data){var a=this.prepareChange();if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.add({});else if(this._data instanceof Array)if(typeof this._data.add==="function")this._data.add({});else Array.add(this._data,{});this.set_dataIndex(this.get_length()-1);this.triggerChangeEvents(a)}},deleteCurrentItem:function(){if(this._data){var b=this.prepareChange();this._suspendChangeNotifications=true;var a=this.get_dataItem();if(this.get_dataIndex()===this.get_length()-1)this.set_dataIndex(Math.max(0,this.get_length()-2));if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.remove(a);else if(this._data instanceof Array)if(typeof this._data.remove==="function")this._data.remove(a);else Array.remove(this._data,a);this._suspendChangeNotifications=false;this.triggerChangeEvents(b)}},getItem:function(a){if(this._data){if(Sys.Preview.Data.IData.isImplementedBy(this._data))return this._data.getItem(a);if(this._data instanceof Array)return this._data[a]}return null},moveNext:function(){if(this._data){var b=this.prepareChange(),a=this.get_dataIndex()+1;if(a<this.get_length())this.set_dataIndex(a);this.triggerChangeEvents(b)}},movePrevious:function(){if(this._data){var b=this.prepareChange(),a=this.get_dataIndex()-1;if(a>=0)this.set_dataIndex(a);this.triggerChangeEvents(b)}},onBubbleEvent:function(d,c){if(c.get_commandName()==="select"){var a=c.get_argument();if(!a&&a!==0){var b=d.get_dataContext();if(b)a=b.get_index()}if(a&&String.isInstanceOfType(a))a=Number.parseInvariant(a);if(a||a===0){this.set_dataIndex(a);return true}}return false},onDataChanged:function(){this.render()}};Sys.Preview.UI.Data.DataControl.descriptor={properties:[{name:"canMoveNext",type:Boolean,readOnly:true},{name:"canMovePrevious",type:Boolean,readOnly:true},{name:"data",type:Sys.Preview.Data.DataTable},{name:"dataIndex",type:Number},{name:"dataItem",type:Object,readOnly:true},{name:"length",type:Number,readOnly:true}],methods:[{name:"addItem"},{name:"deleteCurrentItem"},{name:"moveNext"},{name:"movePrevious"}]};Sys.Preview.UI.Data.DataControl.registerClass("Sys.Preview.UI.Data.DataControl",Sys.UI.Control);Sys.Preview.UI.Data.DataNavigator=function(a){Sys.Preview.UI.Data.DataNavigator.initializeBase(this,[a])};Sys.Preview.UI.Data.DataNavigator.prototype={_data:null,get_dataView:function(){return this._data},set_dataView:function(a){this._data=a;this.raisePropertyChanged("dataView")},get_dataContext:function(){return this.get_dataView()},onBubbleEvent:function(e,b){if(!this._data)return false;var d=b.get_commandName().toLowerCase();switch(d){case"page":var a=b.get_argument();if(a&&String.isInstanceOfType(a))a=Number.parseInvariant(a);if(a||a===0){this._data.set_pageIndex(a);return true}break;case"nextpage":this._data.set_pageIndex(this._data.get_pageIndex()+1);return true;case"previouspage":var c=this._data.get_pageIndex()-1;if(c>=0)this._data.set_pageIndex(c);return true;case"firstpage":this._data.set_pageIndex(0);return true;case"lastpage":this._data.set_pageIndex(this._data.get_pageCount()-1);return true}return false}};Sys.Preview.UI.Data.DataNavigator.descriptor={properties:[{name:"dataView",type:Object}]};Sys.Preview.UI.Data.DataNavigator.registerClass("Sys.Preview.UI.Data.DataNavigator",Sys.UI.Control);Sys.Preview.UI.Data.ItemView=function(a){Sys.Preview.UI.Data.ItemView.initializeBase(this,[a])};Sys.Preview.UI.Data.ItemView.prototype={_itemTemplate:null,_emptyTemplate:null,_keyDownHandler:null,_layoutTemplateElement:null,set_dataIndex:function(a){if(this.get_dataIndex()!==a){Sys.Preview.UI.Data.ItemView.callBaseMethod(this,"set_dataIndex",[a]);if(!this.get_isUpdating())this.render()}},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){if(this._emptyTemplate)this._emptyTemplate.dispose();this._emptyTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("emptyTemplate")},get_itemTemplate:function(){return this._itemTemplate},set_itemTemplate:function(a){if(this._itemTemplate)this._itemTemplate.dispose();this._itemTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("itemTemplate")},dispose:function(){var a=this.get_element();if(a){if(this._keyDownHandler)Sys.UI.DomEvent.removeHandler(a,"keydown",this._keyDownHandler);if(a.childNodes.length){a.markupContext=null;Sys.Preview.UI.ITemplate.disposeInstance(a.firstChild)}}if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null}if(this._emptyTemplate){this._emptyTemplate.dispose();this._emptyTemplate=null}this._layoutTemplateElement=null;Sys.Preview.UI.Data.ItemView.callBaseMethod(this,"dispose")},initialize:function(){this._keyDownHandler=Function.createDelegate(this,this._onKeyDown);Sys.Preview.UI.Data.ItemView.callBaseMethod(this,"initialize");Sys.UI.DomEvent.addHandler(this.get_element(),"keydown",this._keyDownHandler);if(this._itemTemplate)this._itemTemplate.initialize();if(this._emptyTemplate)this._emptyTemplate.initialize();this.render()},_onKeyDown:function(a){if(a.target===this.get_element()){var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b===Sys.UI.Key.up||b===Sys.UI.Key.left){this.movePrevious();a.preventDefault()}else if(b===Sys.UI.Key.down||b===Sys.UI.Key.right){this.moveNext();a.preventDefault()}}},render:function(){var b=this.get_element();if(b.childNodes.length)if(this._layoutTemplateElement)Sys.Preview.UI.ITemplate.disposeInstance(this._layoutTemplateElement);b.innerHTML="";var a,d=this.get_data();if(d&&d.get_length())a=this._itemTemplate;else a=this._emptyTemplate;if(a){var c=a.createInstance(b,this.get_dataContext()).instanceElement;b.markupContext=c.markupContext;this._layoutTemplateElement=c}},findObject:function(b){var a,c=this.get_element();if(c.markupContext)a=c.markupContext.findComponent(b);if(!a){var d=this.get_parent();if(d)a=d.findObject(b);else a=Sys.Application.findComponent(b)}return a}};Sys.Preview.UI.Data.ItemView.descriptor={properties:[{name:"itemTemplate",type:Sys.Preview.UI.ITemplate},{name:"emptyTemplate",type:Sys.Preview.UI.ITemplate}]};Sys.Preview.UI.Data.ItemView.registerClass("Sys.Preview.UI.Data.ItemView",Sys.Preview.UI.Data.DataControl,Sys.IContainer);Sys.Preview.UI.Data.ListViewRenderTask=function(k,l,i,b,d,h,c,j,a,g,f,e){this._listView=k;this._data=l;this._itemTemplate=i;this._itemTemplateParent=b;this._separatorTemplate=d;this._itemElements=h;this._separatorElements=c;this._itemClass=j;this._alternatingItemClass=a;this._separatorClass=g;this._itemFocusHandler=f;this._itemClickHandler=e;this._currentIndex=0};Sys.Preview.UI.Data.ListViewRenderTask.prototype={dispose:function(){this._listView=null;this._data=null;this._itemTemplate=null;this._itemTemplateParent=null;this._separatorTemplate=null;this._itemElements=null;this._separatorElements=null;this._itemClass=null;this._alternatingItemClass=null;this._separatorClass=null;this._itemFocusHandler=null;this._itemClickHandler=null},execute:function(){var c=Array.isInstanceOfType(this._data),b=c?this._data.length:this._data?this._data.get_length?this._data.get_length():0:0,f=b-1,e=Math.min(b,this._currentIndex+5);for(;this._currentIndex<e;this._currentIndex++){var g=c?this._data[this._currentIndex]:this._data.getItem(this._currentIndex);if(this._itemTemplate){var a=this._itemTemplate.createInstance(this._itemTemplateParent,g).instanceElement;if(this._itemClass)if(this._currentIndex%2===1&&this._alternatingItemClass)a.className=this._alternatingItemClass;else a.className=this._itemClass;this._itemElements[this._currentIndex]=a;a.tabIndex=-1;a.dataIndex=this._currentIndex;$addHandler(a,"focus",this._itemFocusHandler);$addHandler(a,"click",this._itemClickHandler)}if(this._separatorTemplate&&this._currentIndex!==f&&this._itemTemplateParent){var d=this._separatorTemplate.createInstance(this._itemTemplateParent).instanceElement;if(this._separatorClass)d.className=this._separatorClass;this._separatorElements[this._currentIndex]=d}}if(this._currentIndex===b){this._listView._renderTaskComplete(this);return true}else return false}};Sys.Preview.UI.Data.ListViewRenderTask.registerClass("Sys.Preview.UI.Data.ListViewRenderTask",null,Sys.Preview.ITask,Sys.IDisposable);Sys.Preview.UI.Data.ListView=function(a){Sys.Preview.UI.Data.ListView.initializeBase(this,[a]);this._itemElements=[];this._separatorElements=[]};Sys.Preview.UI.Data.ListView.prototype={_itemClass:null,_alternatingItemClass:null,_separatorClass:null,_selectedItemClass:null,_focusHandler:null,_keyDownHandler:null,_itemFocusHandler:null,_itemClickHandler:null,_focusIndex:null,_layoutTemplate:null,_itemTemplate:null,_separatorTemplate:null,_emptyTemplate:null,_itemTemplateParentElementId:null,_layoutTemplateElement:null,_pendingTasks:0,get_alternatingItemCssClass:function(){return this._alternatingItemClass},set_alternatingItemCssClass:function(a){if(a!==this._alternatingItemClass){this._alternatingItemClass=a;this.render();this.raisePropertyChanged("alternatingItemCssClass")}},set_dataIndex:function(b){var c=this.get_dataIndex();if(c!==b){var a=this.getItemElement(c);if(a&&this._selectedItemClass)Sys.UI.DomElement.removeCssClass(a,this._selectedItemClass);Sys.Preview.UI.Data.ListView.callBaseMethod(this,"set_dataIndex",[b]);a=this.getItemElement(b);if(a&&this._selectedItemClass)Sys.UI.DomElement.addCssClass(a,this._selectedItemClass)}},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){if(this._emptyTemplate)this._emptyTemplate.dispose();this._emptyTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("emptyTemplate")},get_itemCssClass:function(){return this._itemClass},set_itemCssClass:function(a){if(a!==this._itemClass){this._itemClass=a;this.render();this.raisePropertyChanged("itemCssClass")}},get_itemTemplate:function(){return this._itemTemplate},set_itemTemplate:function(a){if(this._itemTemplate)this._itemTemplate.dispose();this._itemTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("itemTemplate")},get_itemTemplateParentElementId:function(){return this._itemTemplateParentElementId},set_itemTemplateParentElementId:function(a){this._itemTemplateParentElementId=a;this.raisePropertyChanged("itemTemplateParentElementId")},get_layoutTemplate:function(){return this._layoutTemplate},set_layoutTemplate:function(a){if(this._layoutTemplate)this._layoutTemplate.dispose();this._layoutTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("layoutTemplate")},get_selectedItemCssClass:function(){return this._selectedItemClass},set_selectedItemCssClass:function(a){if(a!==this._selectedItemClass){this._selectedItemClass=a;this.render();this.raisePropertyChanged("selectedItemCssClass")}},get_separatorCssClass:function(){return this._separatorClass},set_separatorCssClass:function(a){if(a!==this._separatorClass){this._separatorClass=a;this.render();this.raisePropertyChanged("separatorCssClass")}},get_separatorTemplate:function(){return this._separatorTemplate},set_separatorTemplate:function(a){if(this._separatorTemplate)this._separatorTemplate.dispose();this._separatorTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("separatorTemplate")},getItemElement:function(a){return this._itemElements[a]},add_renderComplete:function(a){this.get_events().addHandler("renderComplete",a)},remove_renderComplete:function(a){this.get_events().removeHandler("renderComplete",a)},initialize:function(){var a=this.get_element();this._focusHandler=Function.createDelegate(this,this._onGotFocus);this._keyDownHandler=Function.createDelegate(this,this._onKeyDown);this._itemFocusHandler=Function.createDelegate(this,this._onItemFocus);this._itemClickHandler=Function.createDelegate(this,this._onItemClick);Sys.Preview.UI.Data.ListView.callBaseMethod(this,"initialize");$addHandler(a,"keydown",this._keyDownHandler);$addHandler(a,"focus",this._focusHandler);if(this._itemTemplate)this._itemTemplate.initialize();if(this._separatorTemplate)this._separatorTemplate.initialize();if(this._emptyTemplate)this._emptyTemplate.initialize();if(this._layoutTemplate)this._layoutTemplate.initialize();if(!a.tabIndex)a.tabIndex=0;this.render()},dispose:function(){if(this._disposed)return;var b=this.get_element();if(b){if(this._focusHandler)$removeHandler(b,"focus",this._focusHandler);if(this._keyDownHandler)$removeHandler(b,"keydown",this._keyDownHandler)}if(this._itemElements)for(var a=this._itemElements.length-1;a>=0;a--){if(this._itemFocusHandler)$removeHandler(this._itemElements[a],"focus",this._itemFocusHandler);if(this._itemClickHandler)$removeHandler(this._itemElements[a],"click",this._itemClickHandler)}if(this._layoutTemplate){this._layoutTemplate.dispose();this._layoutTemplate=null}if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null}if(this._separatorTemplate){this._separatorTemplate.dispose();this._separatorTemplate=null}if(this._emptyTemplate){this._emptyTemplate.dispose();this._emptyTemplate=null}this._itemElements=null;this._separatorElements=null;this._layoutTemplateElement=null;this._disposed=true;Sys.Preview.UI.Data.ListView.callBaseMethod(this,"dispose")},_onGotFocus:function(a){if(a.target===this.get_element())this.setFocus(this,this.getItemElement(this.get_dataIndex()))},_onKeyDown:function(a){if(a.target===this.getItemElement(this._focusIndex)){var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b===Sys.UI.Key.up||b===Sys.UI.Key.left){if(this._focusIndex>0){this.setFocus(this,this.getItemElement(this._focusIndex-1));a.preventDefault()}}else if(b===Sys.UI.Key.down||b===Sys.UI.Key.right){if(this._focusIndex<this.get_length()-1){this.setFocus(this,this.getItemElement(this._focusIndex+1));a.preventDefault()}}else if(b===Sys.UI.Key.enter||b===Sys.UI.Key.space)if(this._focusIndex!==-1){this.set_dataIndex(this._focusIndex);a.preventDefaut()}}},_onItemFocus:function(a){if(typeof a.target.dataIndex!=="undefined")this._focusIndex=a.target.dataIndex},_onItemClick:function(d){var a=d.target,b=a.tagName.toUpperCase();while(a&&typeof a.dataIndex==="undefined")a=a.parentNode;if(a){var c=a.dataIndex;sel=this.getItemElement(c);if(sel){this.set_dataIndex(c);if(b!=="INPUT"&&b!=="TEXTAREA"&&b!=="SELECT"&&b!=="BUTTON"&&b!=="A")this.setFocus(this,sel)}}},render:function(){var d=this.get_element(),a,b;for(a=this._itemElements.length-1;a>=0;a--){b=this._itemElements[a];if(b)Sys.Preview.UI.ITemplate.disposeInstance(b)}this._itemElements=[];for(a=this._separatorElements.length-1;a>=0;a--){b=this._separatorElements[a];if(b)Sys.Preview.UI.ITemplate.disposeInstance(b)}this._separatorElements=[];if(d.childNodes.length)if(this._layoutTemplateElement)Sys.Preview.UI.ITemplate.disposeInstance(this._layoutTemplateElement);d.innerHTML="";var m=false,c=this.get_data(),g=c?c.get_length?c.get_length():c.length:0;if(g&&g>0){var h=this.get_layoutTemplate();if(h){var l=this.get_itemTemplate(),k=this.get_separatorTemplate(),e=h.createInstance(d,null,this.findItemTemplateParentCallback,this._itemTemplateParentElementId),j=e.callbackResult;this._layoutTemplateElement=e.instanceElement;m=true;this._pendingTasks++;var n=new Sys.Preview.UI.Data.ListViewRenderTask(this,c,l,j,k,this._itemElements,this._separatorElements,this._itemClass,this._alternatingItemClass,this._separatorClass,this._itemFocusHandler,this._itemClickHandler);Sys.Preview.TaskManager.addTask(n)}}else{var f=this.get_emptyTemplate();if(f)f.createInstance(d);var i=this.get_events().getHandler("renderComplete");if(i)i(this,Sys.EventArgs.Empty)}},_renderTaskComplete:function(){this._pendingTasks--;if(this._pendingTasks<=0){this._pendingTasks=0;var a=this.get_events().getHandler("renderComplete");if(a)a(this,Sys.EventArgs.Empty)}},findItemTemplateParentCallback:function(c,a,b){return a.findElement(b)},setFocus:function(d,c){if(c.focus){for(var e=d.get_length()-1;e>=0;e--){var f=d.getItemElement(e);if(f)f.tabIndex=-1}var a=d.get_element(),b=a.tabIndex;if(b===-1)b=a.__tabIndex;c.tabIndex=b;setTimeout(Function.createCallback(this.focus,c),0);a.__tabIndex=b;a.tabIndex=-1}},focus:function(a){try{a.focus()}catch(b){}}};Sys.Preview.UI.Data.ListView.descriptor={properties:[{name:"alternatingItemCssClass",type:String},{name:"layoutTemplate",type:Sys.Preview.UI.ITemplate},{name:"itemCssClass",type:String},{name:"itemTemplate",type:Sys.Preview.UI.ITemplate},{name:"itemTemplateParentElementId",type:String},{name:"selectedItemCssClass",type:String},{name:"separatorCssClass",type:String},{name:"separatorTemplate",type:Sys.Preview.UI.ITemplate},{name:"emptyTemplate",type:Sys.Preview.UI.ITemplate}],events:[{name:"renderComplete"}]};Sys.Preview.UI.Data.ListView.registerClass("Sys.Preview.UI.Data.ListView",Sys.Preview.UI.Data.DataControl);Sys.Preview.UI.Data.SortBehavior=function(a){Sys.Preview.UI.Data.SortBehavior.initializeBase(this,[a])};Sys.Preview.UI.Data.SortBehavior.prototype={_clickHandler:null,_sortChangedDelegate:null,_sortColumn:"",_sortAscendingCssClass:"sortAscending",_sortDescendingCssClass:"sortDescending",_dataView:null,get_sortAscendingCssClass:function(){return this._sortAscendingCssClass},set_sortAscendingCssClass:function(a){this._sortAscendingCssClass=a},get_sortColumn:function(){return this._sortColumn},set_sortColumn:function(a){if(a!==this._sortColumn){this._sortColumn=a;this.raisePropertyChanged("sortColumn")}},get_sortDescendingCssClass:function(){return this._sortDescendingCssClass},set_sortDescendingCssClass:function(a){this._sortDescendingCssClass=a},get_dataView:function(){return this._dataView},set_dataView:function(a){if(this._dataView&&this._sortChangedDelegate)this._dataView.remove_propertyChanged(this._sortChangedDelegate);this._dataView=a;if(this.get_isInitialized()){this._dataView.add_propertyChanged(this._sortChangedDelegate);this.update()}},dispose:function(){if(this._dataView&&!this._dataView._disposed&&this._sortChangedDelegate){this._dataView.remove_propertyChanged(this._sortChangedDelegate);this._sortChangedDelegate=null}this._dataView=null;if(this._clickHandler){Sys.UI.DomEvent.removeHandler(this.get_element(),"click",this._clickHandler);this._clickHandler=null}Sys.Preview.UI.Data.SortBehavior.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.Data.SortBehavior.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this.clickHandler);Sys.UI.DomEvent.addHandler(this.get_element(),"click",this._clickHandler);this._sortChangedDelegate=Function.createDelegate(this,this.sortChanged);if(this._dataView){this._dataView.add_propertyChanged(this._sortChangedDelegate);this.update()}},clickHandler:function(){var a=this.get_dataView();if(a)if(a.get_sortColumn()===this._sortColumn)a.set_sortDirection(a.get_sortDirection()===Sys.Preview.Data.SortDirection.Ascending?Sys.Preview.Data.SortDirection.Descending:Sys.Preview.Data.SortDirection.Ascending);else a.sort(this._sortColumn,Sys.Preview.Data.SortDirection.Ascending)},update:function(){var a=this.get_element();if(this._dataView&&this._dataView.get_sortColumn()===this._sortColumn)if(this._dataView.get_sortDirection()===Sys.Preview.Data.SortDirection.Ascending){Sys.UI.DomElement.removeCssClass(a,this._sortDescendingCssClass);Sys.UI.DomElement.addCssClass(a,this._sortAscendingCssClass)}else{Sys.UI.DomElement.removeCssClass(a,this._sortAscendingCssClass);Sys.UI.DomElement.addCssClass(a,this._sortDescendingCssClass)}else{Sys.UI.DomElement.removeCssClass(a,this._sortAscendingCssClass);Sys.UI.DomElement.removeCssClass(a,this._sortDescendingCssClass)}},sortChanged:function(c,b){var a=b.get_propertyName();if(a==="sortColumn"||a==="sortDirection")this.update()}};Sys.Preview.UI.Data.SortBehavior.descriptor={properties:[{name:"dataView",type:Object},{name:"sortAscendingCssClass",type:String},{name:"sortColumn",type:String},{name:"sortDescendingCssClass",type:String}]};Sys.Preview.UI.Data.SortBehavior.registerClass("Sys.Preview.UI.Data.SortBehavior",Sys.UI.Behavior);Sys.Preview.UI.Data.XSLTView=function(a){Sys.Preview.UI.Data.XSLTView.initializeBase(this,[a])};Sys.Preview.UI.Data.XSLTView.prototype={_document:null,_transform:null,_parameters:null,get_document:function(){return this._document},set_document:function(a){this._document=a;if(this.get_isInitialized())this._render()},get_parameters:function(){if(!this._parameters)this._parameters={};return this._parameters},get_transform:function(){return this._transform},set_transform:function(a){this._transform=a;if(this.get_isInitialized())this._render()},dispose:function(){this._document=null;this._transform=null;Sys.Preview.UI.Data.XSLTView.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.Data.XSLTView.callBaseMethod(this,"initialize");this._render()},update:function(){this._render()},_render:function(){var c="";if(this._document&&this._transform){if(this._parameters){if(Sys.Browser.agent===Sys.Browser.InternetExplorer)this._transform.setProperty("SelectionNamespaces",'xmlns:xsl="http://www.w3.org/1999/XSL/Transform"');for(var a in this._parameters){var b=this._transform.selectSingleNode('//xsl:param[@name="'+a+'"]');if(b){b.text=this._parameters[a].toString();b.removeAttribute("select")}}}c=this._document.transformNode(this._transform)}this.get_element().innerHTML=c}};Sys.Preview.UI.Data.XSLTView.descriptor={properties:[{name:"document",type:Object},{name:"parameters",type:Object,readOnly:true},{name:"transform",type:Object}],methods:[{name:"update"}]};Sys.Preview.UI.Data.XSLTView.registerClass("Sys.Preview.UI.Data.XSLTView",Sys.UI.Control);Sys.Component.descriptor={properties:[{name:"dataContext",type:Object},{name:"id",type:String},{name:"isInitialized",type:Boolean,readOnly:true},{name:"isUpdating",type:Boolean,readOnly:true}],events:[{name:"propertyChanged"}]};Sys.UI.Control.descriptor={properties:[{name:"element",type:Object,readOnly:true},{name:"role",type:String,readOnly:true},{name:"parent",type:Object},{name:"visible",type:Boolean},{name:"visibilityMode",type:Sys.UI.VisibilityMode}],methods:[{name:"addCssClass",parameters:[{name:"className",type:String}]},{name:"removeCssClass",parameters:[{name:"className",type:String}]},{name:"toggleCssClass",parameters:[{name:"className",type:String}]}]};Sys.UI.Behavior.descriptor={properties:[{name:"name",type:String}]};Sys.Component.parseFromMarkup=function(g,f,a){var e=new g,d=false,c=a.get_dataContext();if(c)d=a.hideDataContext();var b=Sys.Preview.MarkupParser.initializeObject(e,f,a);if(b){a.addComponent(b);if(c)b.set_dataContext(c)}else e.dispose();if(d)a.restoreDataContext();return b};Sys.Component.createCollection=function(c){var a=[];a._component=c;var b=null;a.get_events=function(){if(!b)b=new Sys.EventHandlerList;return b};a.add_collectionChanged=function(a){this.get_events().addHandler("collectionChanged",a)};a.remove_collectionChanged=function(a){this.get_events().removeHandler("collectionChanged",a)};a._onCollectionChanged=function(b){var a=this.get_events().getHandler("collectionChanged");if(a)a(this,b)};a.add=function(a){Array.add(this,a);if(typeof a.setOwner==="function")a.setOwner(this._component);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Add,a))};a.clear=function(){for(var a=this.length-1;a>=0;a--){this[a].dispose();this[a]=null}Array.clear(this);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Reset,null))};a.dispose=function(){this.clear();delete this._events;this._component=null;this._disposed=true};a.remove=function(a){a.dispose();Array.remove(this,a);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Remove,a))};a.removeAt=function(a){var b=this[a];b.dispose();Array.removeAt(this,a);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Remove,b))};return a};Sys.UI.Control.parseFromMarkup=function(i,f,a){var h=f.attributes.getNamedItem("id"),j=h.nodeValue,g=a.findElement(j),d=false,c=a.get_dataContext();if(c)d=a.hideDataContext();var e=new i(g),b=Sys.Preview.MarkupParser.initializeObject(e,f,a);if(b){a.addComponent(b);if(c)b.set_dataContext(c)}else e.dispose();if(d)a.restoreDataContext();return b};Sys.UI.Behavior.parseFromMarkup=function(j,c,d){var f,e,b=c.attributes.getNamedItem("elementID");if(!b){var a=c.parentNode;if(a){a=a.parentNode;if(a&&a.attributes){var h=a.attributes.getNamedItem("id");if(h){e=h.nodeValue;f=d.findElement(e)}}}}else{if(b.nodeValue.length){e=b.nodeValue;f=d.findElement(e)}c.attributes.removeNamedItem("elementID")}var i=new j(f),g=Sys.Preview.MarkupParser.initializeObject(i,c,d);if(g){if(b)c.attributes.setNamedItem(b);d.addComponent(g)}else i.dispose();return g};Sys.UI.DomElement.getVisible=function(a){return a.style.visibility!=="hidden"};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){a.style.visibility=b?"visible":"hidden";if(b){if(a.style.display==="none")a.style.display=a._display?a._display:"inline"}else{a._display=a.style.display;a.style.display="none"}}};function $object(b,a){return Sys.Application.findComponent(b,a)}Sys._Application.descriptor={events:[{name:"init"},{name:"load"},{name:"unload"}]};Sys._Application.parseFromMarkup=function(e,c,a){if(!a.get_isGlobal())return null;var d=null,b=c.attributes.getNamedItem("id");if(b){d=b.nodeValue;c.attributes.removeNamedItem("id")}Sys.Preview.MarkupParser.initializeObject(Sys.Application,c,a);if(b)c.attributes.setNamedItem(b);if(d&&a.findComponent(d)!==Sys.Application)a._addComponentByID(d,Sys.Application,true);return Sys.Application};Sys.Application.getMarkupContext=function(){return this._markupContext};Sys.Application.__initHandler=function(){var a=Sys.Application;a.remove_init(Sys.Application.__initHandler);Sys.Preview.MarkupParser.processDocument(a._markupContext)};Sys.Application.__unloadHandler=function(){var a=Sys.Application;a.remove_unload(a.__unloadHandler);if(a._markupContext){a._markupContext.dispose();a._markupContext=null}};if(!Sys.Application._markupContext){Sys.Application._markupContext=Sys.Preview.MarkupContext.createGlobalContext();Sys.Application.add_init(Sys.Application.__initHandler);Sys.Application.add_unload(Sys.Application.__unloadHandler)};
/*PreviewDragDrop.js*/
Sys.Preview.UI._DragDropManager=function(){};Sys.Preview.UI._DragDropManager.prototype={_instance:null,_events:null,add_dragStart:function(a){this.get_events().addHandler("dragStart",a)},remove_dragStart:function(a){this.get_events().removeHandler("dragStart",a)},get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_dragStop:function(a){this.get_events().addHandler("dragStop",a)},remove_dragStop:function(a){this.get_events().removeHandler("dragStop",a)},_getInstance:function(){if(!this._instance){if(Sys.Browser.agent===Sys.Browser.InternetExplorer)this._instance=new Sys.Preview.UI.IEDragDropManager;else this._instance=new Sys.Preview.UI.GenericDragDropManager;this._instance.initialize();this._instance.add_dragStart(Function.createDelegate(this,this._raiseDragStart));this._instance.add_dragStop(Function.createDelegate(this,this._raiseDragStop))}return this._instance},startDragDrop:function(a,b,c){this._getInstance().startDragDrop(a,b,c)},registerDropTarget:function(a){this._getInstance().registerDropTarget(a)},unregisterDropTarget:function(a){this._getInstance().unregisterDropTarget(a)},dispose:function(){delete this._events;Sys.Application.unregisterDisposableObject(this);Sys.Application.removeComponent(this)},_raiseDragStart:function(c,b){var a=this.get_events().getHandler("dragStart");if(a)a(this,b)},_raiseDragStop:function(c,b){var a=this.get_events().getHandler("dragStop");if(a)a(this,b)}};Sys.Preview.UI._DragDropManager.registerClass("Sys.Preview.UI._DragDropManager");Sys.Preview.UI.DragDropManager=new Sys.Preview.UI._DragDropManager;Sys.Preview.UI.DragDropEventArgs=function(c,a,b){this._dragMode=c;this._dataType=a;this._data=b};Sys.Preview.UI.DragDropEventArgs.prototype={get_dragMode:function(){return this._dragMode||null},get_dragDataType:function(){return this._dataType||null},get_dragData:function(){return this._data||null}};Sys.Preview.UI.DragDropEventArgs.registerClass("Sys.Preview.UI.DragDropEventArgs");Sys.Preview.UI.IDragSource=function(){};Sys.Preview.UI.IDragSource.prototype={get_dragDataType:function(){throw Error.notImplemented()},getDragData:function(){throw Error.notImplemented()},get_dragMode:function(){throw Error.notImplemented()},onDragStart:function(){throw Error.notImplemented()},onDrag:function(){throw Error.notImplemented()},onDragEnd:function(){throw Error.notImplemented()}};Sys.Preview.UI.IDragSource.registerInterface("Sys.Preview.UI.IDragSource");Sys.Preview.UI.IDropTarget=function(){};Sys.Preview.UI.IDropTarget.prototype={get_dropTargetElement:function(){throw Error.notImplemented()},canDrop:function(){throw Error.notImplemented()},drop:function(){throw Error.notImplemented()},onDragEnterTarget:function(){throw Error.notImplemented()},onDragLeaveTarget:function(){throw Error.notImplemented()},onDragInTarget:function(){throw Error.notImplemented()}};Sys.Preview.UI.IDropTarget.registerInterface("Sys.Preview.UI.IDropTarget");Sys.Preview.UI.DragMode=function(){throw Error.invalidOperation()};Sys.Preview.UI.DragMode.prototype={Copy:0,Move:1};Sys.Preview.UI.DragMode.registerEnum("Sys.Preview.UI.DragMode");Sys.Preview.UI.IEDragDropManager=function(){Sys.Preview.UI.IEDragDropManager.initializeBase(this)};Sys.Preview.UI.IEDragDropManager.prototype={_dropTargets:null,_radius:10,_activeDragVisual:null,_activeContext:null,_activeDragSource:null,_underlyingTarget:null,_oldOffset:null,_potentialTarget:null,_isDragging:false,_mouseUpHandler:null,_documentMouseMoveHandler:null,_documentDragOverHandler:null,_dragStartHandler:null,_mouseMoveHandler:null,_dragEnterHandler:null,_dragLeaveHandler:null,_dragOverHandler:null,_dropHandler:null,add_dragStart:function(a){this.get_events().addHandler("dragStart",a)},remove_dragStart:function(a){this.get_events().removeHandler("dragStart",a)},add_dragStop:function(a){this.get_events().addHandler("dragStop",a)},remove_dragStop:function(a){this.get_events().removeHandler("dragStop",a)},initialize:function(){Sys.Preview.UI.IEDragDropManager.callBaseMethod(this,"initialize");this._mouseUpHandler=Function.createDelegate(this,this.mouseUpHandler);this._documentMouseMoveHandler=Function.createDelegate(this,this.documentMouseMoveHandler);this._documentDragOverHandler=Function.createDelegate(this,this.documentDragOverHandler);this._dragStartHandler=Function.createDelegate(this,this.dragStartHandler);this._mouseMoveHandler=Function.createDelegate(this,this.mouseMoveHandler);this._dragEnterHandler=Function.createDelegate(this,this.dragEnterHandler);this._dragLeaveHandler=Function.createDelegate(this,this.dragLeaveHandler);this._dragOverHandler=Function.createDelegate(this,this.dragOverHandler);this._dropHandler=Function.createDelegate(this,this.dropHandler)},dispose:function(){if(this._dropTargets){for(var a=0;a<this._dropTargets;a++)this.unregisterDropTarget(this._dropTargets[a]);this._dropTargets=null}Sys.Preview.UI.IEDragDropManager.callBaseMethod(this,"dispose")},startDragDrop:function(b,a,f){var h=window._event;if(this._isDragging)return;this._underlyingTarget=null;this._activeDragSource=b;this._activeDragVisual=a;this._activeContext=f;var e={x:h.clientX,y:h.clientY};a.originalPosition=a.style.position;a.style.position="absolute";document._lastPosition=e;a.startingPoint=e;var i=this.getScrollOffset(a,true);a.startingPoint=this.addPoints(a.startingPoint,i);if(a.style.position=="absolute")a.startingPoint=this.subtractPoints(a.startingPoint,Sys.UI.DomElement.getLocation(a));else{var c=parseInt(a.style.left),d=parseInt(a.style.top);if(isNaN(c))c="0";if(isNaN(d))d="0";a.startingPoint=this.subtractPoints(a.startingPoint,{x:c,y:d})}this._prepareForDomChanges();b.onDragStart();var j=new Sys.Preview.UI.DragDropEventArgs(b.get_dragMode(),b.get_dragDataType(),b.getDragData(f)),g=this.get_events().getHandler("dragStart");if(g)g(this,j);this._recoverFromDomChanges();this._wireEvents();this._drag(true)},_stopDragDrop:function(a){var c=window._event;if(this._activeDragSource){this._unwireEvents();if(!a)a=this._underlyingTarget==null;if(!a&&this._underlyingTarget)this._underlyingTarget.drop(this._activeDragSource.get_dragMode(),this._activeDragSource.get_dragDataType(),this._activeDragSource.getDragData(this._activeContext));this._activeDragSource.onDragEnd(a);var b=this.get_events().getHandler("dragStop");if(b)b(this,Sys.EventArgs.Empty);this._activeDragVisual.style.position=this._activeDragVisual.originalPosition;this._activeDragSource=null;this._activeContext=null;this._activeDragVisual=null;this._isDragging=false;this._potentialTarget=null;c.preventDefault()}},_drag:function(e){var d=window._event,c={x:d.clientX,y:d.clientY};document._lastPosition=c;var f=this.getScrollOffset(this._activeDragVisual,true),a=this.addPoints(this.subtractPoints(c,this._activeDragVisual.startingPoint),f);if(!e&&parseInt(this._activeDragVisual.style.left)==a.x&&parseInt(this._activeDragVisual.style.top)==a.y)return;Sys.UI.DomElement.setLocation(this._activeDragVisual,a.x,a.y);this._prepareForDomChanges();this._activeDragSource.onDrag();this._recoverFromDomChanges();this._potentialTarget=this._findPotentialTarget(this._activeDragSource,this._activeDragVisual);var b=this._potentialTarget!=this._underlyingTarget||this._potentialTarget==null;if(b&&this._underlyingTarget!=null)this._leaveTarget(this._activeDragSource,this._underlyingTarget);if(this._potentialTarget!=null)if(b){this._underlyingTarget=this._potentialTarget;this._enterTarget(this._activeDragSource,this._underlyingTarget)}else this._moveInTarget(this._activeDragSource,this._underlyingTarget);else this._underlyingTarget=null},_wireEvents:function(){$addHandler(document,"mouseup",this._mouseUpHandler);$addHandler(document,"mousemove",this._documentMouseMoveHandler);$addHandler(document.body,"dragover",this._documentDragOverHandler);$addHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);$addHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);$addHandler(this._activeDragVisual,"drag",this._mouseMoveHandler)},_unwireEvents:function(){$removeHandler(this._activeDragVisual,"drag",this._mouseMoveHandler);$removeHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);$removeHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);$removeHandler(document.body,"dragover",this._documentDragOverHandler);$removeHandler(document,"mousemove",this._documentMouseMoveHandler);$removeHandler(document,"mouseup",this._mouseUpHandler)},registerDropTarget:function(a){if(!this._dropTargets)this._dropTargets=[];Array.add(this._dropTargets,a);this._wireDropTargetEvents(a)},unregisterDropTarget:function(a){this._unwireDropTargetEvents(a);if(this._dropTargets)Array.remove(this._dropTargets,a)},_wireDropTargetEvents:function(b){var a=b.get_dropTargetElement();a._dropTarget=b;$addHandler(a,"dragenter",this._dragEnterHandler);$addHandler(a,"dragleave",this._dragLeaveHandler);$addHandler(a,"dragover",this._dragOverHandler);$addHandler(a,"drop",this._dropHandler)},_unwireDropTargetEvents:function(b){var a=b.get_dropTargetElement();a._dropTarget=null;$removeHandler(a,"dragenter",this._dragEnterHandler);$removeHandler(a,"dragleave",this._dragLeaveHandler);$removeHandler(a,"dragover",this._dragOverHandler);$removeHandler(a,"drop",this._dropHandler)},dragStartHandler:function(d){window._event=d;document.selection.empty();var c=d.dataTransfer;if(!c)c=d.rawEvent.dataTransfer;var b=this._activeDragSource.get_dragDataType().toLowerCase(),a=this._activeDragSource.getDragData(this._activeContext);if(a){if(b!="text"&&b!="url"){b="text";if(a.innerHTML!=null)a=a.innerHTML}c.effectAllowed="move";c.setData(b,a.toString())}},mouseUpHandler:function(a){window._event=a;this._stopDragDrop(false)},documentMouseMoveHandler:function(a){window._event=a;this._dragDrop()},documentDragOverHandler:function(a){window._event=a;if(this._potentialTarget)a.preventDefault()},mouseMoveHandler:function(a){window._event=a;this._drag()},dragEnterHandler:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragEnterTarget(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}},dragLeaveHandler:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragLeaveTarget(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}},dragOverHandler:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragInTarget(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}},dropHandler:function(c){window._event=c;if(!this._isDragging){var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.drop(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}c.preventDefault()},_getDropTarget:function(a){while(a){if(a._dropTarget!=null)return a._dropTarget;a=a.parentNode}return null},_dragDrop:function(){if(this._isDragging)return;this._isDragging=true;this._activeDragVisual.dragDrop();document.selection.empty()},_moveInTarget:function(a,b){this._prepareForDomChanges();b.onDragInTarget(a.get_dragMode(),a.get_dragDataType(),a.getDragData(this._activeContext));this._recoverFromDomChanges()},_enterTarget:function(a,b){this._prepareForDomChanges();b.onDragEnterTarget(a.get_dragMode(),a.get_dragDataType(),a.getDragData(this._activeContext));this._recoverFromDomChanges()},_leaveTarget:function(a,b){this._prepareForDomChanges();b.onDragLeaveTarget(a.get_dragMode(),a.get_dragDataType(),a.getDragData(this._activeContext));this._recoverFromDomChanges()},_findPotentialTarget:function(a){var f=window._event;if(!this._dropTargets)return null;var m=a.get_dragDataType(),l=a.get_dragMode(),k=a.getDragData(this._activeContext),d=this.getScrollOffset(document.body,true),n=f.clientX+d.x,o=f.clientY+d.y,g={x:n-this._radius,y:o-this._radius,width:this._radius*2,height:this._radius*2};for(var c=0;c<this._dropTargets.length;c++){var b=this._dropTargets[c],j=b.canDrop(l,m,k);if(!j)continue;var e=b.get_dropTargetElement(),h=Sys.UI.DomElement.getBounds(e),i=Sys.UI.Control.overlaps(g,h);if(i||e===document.body)return b}return null},_prepareForDomChanges:function(){this._oldOffset=Sys.UI.DomElement.getLocation(this._activeDragVisual)},_recoverFromDomChanges:function(){var a=Sys.UI.DomElement.getLocation(this._activeDragVisual);if(this._oldOffset.x!=a.x||this._oldOffset.y!=a.y){this._activeDragVisual.startingPoint=this.subtractPoints(this._activeDragVisual.startingPoint,this.subtractPoints(this._oldOffset,a));scrollOffset=this.getScrollOffset(this._activeDragVisual,true);var b=this.addPoints(this.subtractPoints(document._lastPosition,this._activeDragVisual.startingPoint),scrollOffset);Sys.UI.DomElement.setLocation(this._activeDragVisual,b.x,b.y)}},addPoints:function(a,b){return{x:a.x+b.x,y:a.y+b.y}},subtractPoints:function(a,b){return{x:a.x-b.x,y:a.y-b.y}},getScrollOffset:function(b,e){var c=b.scrollLeft,d=b.scrollTop;if(e){var a=b.parentNode;while(a!=null&&a.scrollLeft!=null){c+=a.scrollLeft;d+=a.scrollTop;if(a==document.body&&(c!=0&&d!=0))break;a=a.parentNode}}return{x:c,y:d}},getBrowserRectangle:function(){var b=window.innerWidth,a=window.innerHeight;if(b==null)b=document.body.clientWidth;if(a==null)a=document.body.clientHeight;return{x:0,y:0,width:b,height:a}},getNextSibling:function(a){for(a=a.nextSibling;a!=null;a=a.nextSibling)if(a.innerHTML!=null)return a;return null},hasParent:function(a){return a.parentNode!=null&&a.parentNode.tagName!=null}};Sys.Preview.UI.IEDragDropManager.registerClass("Sys.Preview.UI.IEDragDropManager",Sys.Component);Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget=function(f){if(f==null)return[];var g=window._event,e=[],b=["URL","Text"],c;for(var a=0;a<b.length;a++){var d=g.dataTransfer;if(!d)d=g.rawEvent.dataTransfer;c=d.getData(b[a]);if(f.canDrop(Sys.Preview.UI.DragMode.Copy,b[a],c))if(c)Array.add(e,{type:b[a],value:c})}return e};Sys.Preview.UI.GenericDragDropManager=function(){Sys.Preview.UI.GenericDragDropManager.initializeBase(this)};Sys.Preview.UI.GenericDragDropManager.prototype={_scrollEdgeConst:40,_scrollByConst:10,_scroller:null,_scrollDeltaX:null,_scrollDeltaY:null,_activeDragVisual:null,_activeContext:null,_activeDragSource:null,_mouseUpHandler:null,_mouseMoveHandler:null,_keyPressHandler:null,initialize:function(){Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"initialize");this._mouseUpHandler=Function.createDelegate(this,this.mouseUpHandler);this._mouseMoveHandler=Function.createDelegate(this,this.mouseMoveHandler);this._keyPressHandler=Function.createDelegate(this,this.keyPressHandler);if(Sys.Browser.agent===Sys.Browser.Safari)Sys.Preview.UI.GenericDragDropManager.__loadSafariCompatLayer(this);this._scroller=new Sys.Preview.Timer;this._scroller.set_interval(10);this._scroller.add_tick(Function.createDelegate(this,this.scrollerTickHandler))},startDragDrop:function(a,b,c){this._activeDragSource=a;this._activeDragVisual=b;this._activeContext=c;Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"startDragDrop",[a,b,c])},_stopDragDrop:function(a){this._scroller.set_enabled(false);Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"_stopDragDrop",[a])},_drag:function(a){Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"_drag",[a]);this._autoScroll()},_wireEvents:function(){$addHandler(document,"mouseup",this._mouseUpHandler);$addHandler(document,"mousemove",this._mouseMoveHandler);$addHandler(document,"keypress",this._keyPressHandler)},_unwireEvents:function(){$removeHandler(document,"keypress",this._keyPressHandler);$removeHandler(document,"mousemove",this._mouseMoveHandler);$removeHandler(document,"mouseup",this._mouseUpHandler)},_wireDropTargetEvents:function(){},_unwireDropTargetEvents:function(){},mouseUpHandler:function(a){window._event=a;this._stopDragDrop(false)},mouseMoveHandler:function(a){window._event=a;this._drag()},keyPressHandler:function(a){window._event=a;var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b==27)this._stopDragDrop(true)},_autoScroll:function(){var b=window._event,a=this.getBrowserRectangle();if(a.width>0){this._scrollDeltaX=this._scrollDeltaY=0;if(b.clientX<a.x+this._scrollEdgeConst)this._scrollDeltaX=-this._scrollByConst;else if(b.clientX>a.width-this._scrollEdgeConst)this._scrollDeltaX=this._scrollByConst;if(b.clientY<a.y+this._scrollEdgeConst)this._scrollDeltaY=-this._scrollByConst;else if(b.clientY>a.height-this._scrollEdgeConst)this._scrollDeltaY=this._scrollByConst;if(this._scrollDeltaX!=0||this._scrollDeltaY!=0)this._scroller.set_enabled(true);else this._scroller.set_enabled(false)}},scrollerTickHandler:function(){var d=document.body.scrollLeft,f=document.body.scrollTop;window.scrollBy(this._scrollDeltaX,this._scrollDeltaY);var c=document.body.scrollLeft,e=document.body.scrollTop,a=this._activeDragVisual,b={x:parseInt(a.style.left)+(c-d),y:parseInt(a.style.top)+(e-f)};Sys.UI.DomElement.setLocation(a,b.x,b.y)}};Sys.Preview.UI.GenericDragDropManager.registerClass("Sys.Preview.UI.GenericDragDropManager",Sys.Preview.UI.IEDragDropManager);if(Sys.Browser.agent===Sys.Browser.Safari)Sys.Preview.UI.GenericDragDropManager.__loadSafariCompatLayer=function(a){a._getScrollOffset=a.getScrollOffset;a.getScrollOffset=function(){return{x:0,y:0}};a._getBrowserRectangle=a.getBrowserRectangle;a.getBrowserRectangle=function(){var b=a._getBrowserRectangle(),c=a._getScrollOffset(document.body,true);return{x:b.x+c.x,y:b.y+c.y,width:b.width+c.x,height:b.height+c.y}}};Sys.Preview.UI.RepeatDirection=function(){throw Error.invalidOperation()};Sys.Preview.UI.RepeatDirection.prototype={Horizontal:0,Vertical:1};Sys.Preview.UI.RepeatDirection.registerEnum("Sys.Preview.UI.RepeatDirection");Sys.Preview.UI.DragDropList=function(a){Sys.Preview.UI.DragDropList.initializeBase(this,[a]);this._acceptedDataTypes=[]};Sys.Preview.UI.DragDropList.prototype={_isDragging:null,_dataType:null,_dragMode:null,_dragVisual:null,_direction:Sys.Preview.UI.RepeatDirection.Vertical,_emptyTemplate:null,_emptyTemplateInstance:null,_dropCueTemplate:null,_dropCueTemplateInstance:null,_floatContainerInstance:null,_originalParent:null,_originalNextSibling:null,_originalZIndex:null,_currentContext:null,_data:null,get_data:function(){return this._data},set_data:function(a){this._data=a},initialize:function(){Sys.Preview.UI.DragDropList.callBaseMethod(this,"initialize");this.get_element().__dragDropList=this;Sys.Preview.UI.DragDropManager.registerDropTarget(this)},startDragDrop:function(c,b,a){if(!this._isDragging){this._isDragging=true;this._currentContext=b;if(!a)a=this.createDragVisual(c);else this._dragVisual=a;Sys.Preview.UI.DragDropManager.startDragDrop(this,a,b)}},createDragVisual:function(a){if(this._dragMode===Sys.Preview.UI.DragMode.Copy)this._dragVisual=a.cloneNode(true);else this._dragVisual=a;var e=Sys.Preview.UI.DragDropManager._getInstance().getScrollOffset(a,true);this._dragVisual.style.width=a.offsetWidth+"px";this._dragVisual.style.height=a.offsetHeight+"px";this._dragVisual.style.opacity="0.4";this._dragVisual.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity=0.4);";this._originalZIndex=this._dragVisual.style.zIndex;this._dragVisual.style.zIndex=99999;this._originalParent=this._dragVisual.parentNode;this._originalNextSibling=Sys.Preview.UI.DragDropManager._getInstance().getNextSibling(this._dragVisual);var f=Sys.Preview.UI.DragDropManager._getInstance(),c=Sys.UI.DomElement.getLocation(a),b=this._getFloatContainer();Sys.UI.DomElement.setLocation(b,c.x,c.y);if(Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dragVisual))this._dragVisual.parentNode.removeChild(this._dragVisual);b.appendChild(this._dragVisual);var d=f.getScrollOffset(a,true);if(e.x!==d.x||e.y!==d.y){var h=f.subtractPoints(e,d),g=f.subtractPoints(c,h);Sys.UI.DomElement.setLocation(b,g.x,g.y)}return b},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){this._emptyTemplate=a},get_dragDataType:function(){return this._dataType},set_dragDataType:function(a){this._dataType=a},getDragData:function(a){return a},get_dragMode:function(){return this._dragMode},set_dragMode:function(a){this._dragMode=a},dispose:function(){this.get_element().__dragDropList=null;Sys.Preview.UI.DragDropList.callBaseMethod(this,"dispose")},onDragStart:function(){this._validate()},onDrag:function(){},onDragEnd:function(b){if(this._floatContainerInstance){if(this._dragMode===Sys.Preview.UI.DragMode.Copy)this._floatContainerInstance.removeChild(this._dragVisual);else{this._dragVisual.style.opacity="0.999";this._dragVisual.style.filter="";this._dragVisual.style.zIndex=this._originalZIndex?this._originalZIndex:0;if(b){this._dragVisual.parentNode.removeChild(this._dragVisual);if(this._originalNextSibling!=null)this._originalParent.insertBefore(this._dragVisual,this._originalNextSibling);else this._originalParent.appendChild(this._dragVisual)}else if(this._dragVisual.parentNode===this._floatContainerInstance)this._dragVisual.parentNode.removeChild(this._dragVisual)}document.body.removeChild(this._floatContainerInstance)}else this._dragVisual.parentNode.removeChild(this._dragVisual);if(!b&&this._data&&this._dragMode===Sys.Preview.UI.DragMode.Move){var a=this.getDragData(this._currentContext);if(this._data&&a)if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.remove(a);else if(this._data instanceof Array)if(typeof this._data.remove==="function")this._data.remove(a);else Array.remove(this._data,a)}this._isDragging=false;this._validate()},get_direction:function(){return this._direction},set_direction:function(a){this._direction=a},get_acceptedDataTypes:function(){return this._acceptedDataTypes},set_acceptedDataTypes:function(a){this._acceptedDataTypes=a},get_dropCueTemplate:function(){return this._dropCueTemplate},set_dropCueTemplate:function(a){this._dropCueTemplate=a},get_dropTargetElement:function(){return this.get_element()},canDrop:function(c,b){for(var a=0;a<this._acceptedDataTypes.length;a++)if(this._acceptedDataTypes[a]===b)return true;return false},drop:function(e,d,a){if(d==="HTML"&&e===Sys.Preview.UI.DragMode.Move){dragVisual=a;var c=this._findPotentialNextSibling(dragVisual);this._setDropCueVisible(false,dragVisual);dragVisual.parentNode.removeChild(dragVisual);if(c)this.get_element().insertBefore(dragVisual,c);else this.get_element().appendChild(dragVisual)}else this._setDropCueVisible(false);if(this._data&&a){var b=a;if(Sys.Preview.Data.DataRow.isInstanceOfType(a)&&Sys.Preview.Data.DataTable.isInstanceOfType(this._data)){var f=a.get_table();if(f)b=this._data.createRow(a)}if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.add(b);else if(this._data instanceof Array)if(typeof this._data.add==="function")this._data.add(b);else Array.add(this._data,b)}},onDragEnterTarget:function(c,a,b){if(a==="HTML"){this._setDropCueVisible(true,b);this._validate()}},onDragLeaveTarget:function(b,a){if(a==="HTML"){this._setDropCueVisible(false);this._validate()}},onDragInTarget:function(c,a,b){if(a==="HTML")this._setDropCueVisible(true,b)},_setDropCueVisible:function(d,b){if(this._dropCueTemplate)if(d){if(!this._dropCueTemplateInstance){var c=document.createDocumentFragment();this._dropCueTemplateInstance=this._dropCueTemplate.createInstance(c).instanceElement}var a=this._findPotentialNextSibling(b);if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dropCueTemplateInstance)){if(a)this.get_element().insertBefore(this._dropCueTemplateInstance,a);else this.get_element().appendChild(this._dropCueTemplateInstance);this._dropCueTemplateInstance.style.width=b.offsetWidth+"px";this._dropCueTemplateInstance.style.height=b.offsetHeight+"px"}else if(Sys.Preview.UI.DragDropManager._getInstance().getNextSibling(this._dropCueTemplateInstance)!==a){this.get_element().removeChild(this._dropCueTemplateInstance);if(a)this.get_element().insertBefore(this._dropCueTemplateInstance,a);else this.get_element().appendChild(this._dropCueTemplateInstance)}}else if(this._dropCueTemplateInstance&&Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dropCueTemplateInstance))this.get_element().removeChild(this._dropCueTemplateInstance)},_findPotentialNextSibling:function(e){var c=Sys.UI.DomElement.getBounds(e),d=this._direction===Sys.Preview.UI.RepeatDirection.Vertical,b;for(var a=this.get_element().firstChild;a!==null;a=a.nextSibling)if(a.innerHTML&&a!==this._dropCueTemplateInstance&&a!==this._emptyTemplateInstance){b=Sys.UI.DomElement.getBounds(a);if(!d&&c.x<=b.x||d&&c.y<=b.y)return a}return null},_validate:function(){var b=this._dropCueTemplateInstance==null||!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dropCueTemplateInstance),c=0;for(var a=this.get_element().firstChild;a!==null;a=a.nextSibling)if(a.innerHTML&&a!==this._emptyTemplateInstance&&a!==this._dropCueTemplateInstance)c++;if(c>0)b=false;this._setEmptyTemplateVisible(b)},_setEmptyTemplateVisible:function(a){if(this._emptyTemplate)if(a){if(!this._emptyTemplateInstance)this._emptyTemplateInstance=this._emptyTemplate.createInstance(this.get_element()).instanceElement;else if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._emptyTemplateInstance))this.get_element().appendChild(this._emptyTemplateInstance)}else if(this._emptyTemplateInstance&&Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._emptyTemplateInstance))this.get_element().removeChild(this._emptyTemplateInstance)},_getFloatContainer:function(){if(!this._floatContainerInstance){this._floatContainerInstance=document.createElement(this.get_element().tagName);var a="0px 0px 0px 0px";this._floatContainerInstance.style.position="absolute";this._floatContainerInstance.style.padding=a;this._floatContainerInstance.style.margin=a;document.body.appendChild(this._floatContainerInstance)}else if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._floatContainerInstance))document.body.appendChild(this._floatContainerInstance);return this._floatContainerInstance}};Sys.Preview.UI.DragDropList.descriptor={properties:[{name:"acceptedDataTypes",type:Array},{name:"data",type:Object},{name:"dragDataType",type:String},{name:"emptyTemplate",type:Sys.Preview.UI.ITemplate},{name:"dropCueTemplate",type:Sys.Preview.UI.ITemplate},{name:"dropTargetElement",type:Object,readOnly:true},{name:"direction",type:Sys.Preview.UI.RepeatDirection},{name:"dragMode",type:Sys.Preview.UI.DragMode}]};Sys.Preview.UI.DragDropList.registerClass("Sys.Preview.UI.DragDropList",Sys.UI.Behavior,Sys.Preview.UI.IDragSource,Sys.Preview.UI.IDropTarget,Sys.IDisposable);Sys.Preview.UI.DataSourceDropTarget=function(a){Sys.Preview.UI.DataSourceDropTarget.initializeBase(this,[a])};Sys.Preview.UI.DataSourceDropTarget.prototype={_control:null,_acceptedDataTypes:null,_append:true,_target:null,_property:"data",get_append:function(){return this._append},set_append:function(a){this._append=a},get_target:function(){return this._target},set_target:function(a){this._target=a},get_property:function(){return this._property},set_property:function(a){this._property=a},get_acceptedDataTypes:function(){return this._acceptedDataTypes},set_acceptedDataTypes:function(a){this._acceptedDataTypes=a},initialize:function(){Sys.Preview.UI.DataSourceDropTarget.callBaseMethod(this,"initialize");this._control=$find(this.get_element().id);Sys.Preview.UI.DragDropManager.registerDropTarget(this)},get_dropTargetElement:function(){return this.get_element()},canDrop:function(c,b){for(var a=0;a<this._acceptedDataTypes.length;a++)if(this._acceptedDataTypes[a]===b)return true;return false},drop:function(e,f,d){if(d){var a,c=this._target?this._target:this._control;if(this._append){a=c["get_"+this._property];if(a){var b=a.call(c);if(b){if(Sys.Preview.Data.IData.isImplementedBy(b))b.add(d);else if(b instanceof Array)if(typeof b.add==="function")b.add(d);else Array.add(b,d)}else{a=c["set_"+this._property];if(a)a.call(c,d)}}}else{a=c["set_"+this._property];if(a)a.call(c,d)}}},onDragEnterTarget:function(){},onDragLeaveTarget:function(){},onDragInTarget:function(){}};Sys.Preview.UI.DataSourceDropTarget.descriptor={properties:[{name:"acceptedDataTypes",type:Array},{name:"append",type:Boolean},{name:"dropTargetElement",type:Object,readOnly:true},{name:"target",type:Object},{name:"property",type:String}]};Sys.Preview.UI.DataSourceDropTarget.registerClass("Sys.Preview.UI.DataSourceDropTarget",Sys.UI.Behavior,Sys.Preview.UI.IDropTarget);Sys.Preview.UI.DraggableListItem=function(e){Sys.Preview.UI.DraggableListItem.initializeBase(this,[e]);var d,a,c,b;this.get_data=function(){if(d==null){var a=this._findDragSource();if(a!=null&&a.get_dragDataType()=="HTML")return this.get_element()}return d};this.set_data=function(a){d=a};this.get_handle=function(){return a};this.set_handle=function(b){if(a!=null){$removeHandler(a,"mousedown",this._handleMouseDown);a.__draggableBehavior=null}if(b.element)b=b.element;a=b;a.__draggableBehavior=this;$addHandler(a,"mousedown",this._handleMouseDown);a.__draggableBehavior=this};this.get_dragVisualTemplate=function(){return c};this.set_dragVisualTemplate=function(a){c=a};this._handleMouseDown=function(b){window._event=b;a.__draggableBehavior._handleMouseDownInternal()};this._handleMouseDownInternal=function(){var b=window._event;if(b.button<=1){var a=this._findDragSource();if(a!=null){var c=this._createDragVisual();a.startDragDrop(this.get_element(),this.get_data(),c);b.preventDefault()}}};this._createDragVisual=function(){var d=window._event;if(c!=null){if(b==null)b=c.createInstance(this.get_element()).instanceElement;else if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(b))this.get_element().appendChild(b);var a={x:d.clientX,y:d.clientY};a=Sys.Preview.UI.DragDropManager._getInstance().addPoints(a,Sys.Preview.UI.DragDropManager._getInstance().getScrollOffset(document.body,true));Sys.UI.DomElement.setLocation(b,a.x,a.y)}return b};this._findDragSource=function(){var a=this.get_element();while(a!=null){if(a.__dragDropList!=null)return a.__dragDropList;a=a.parentNode}return null}};Sys.Preview.UI.DraggableListItem.descriptor={properties:[{name:"data",type:Object},{name:"handle",isDomElement:true},{name:"dragVisualTemplate",type:Sys.Preview.UI.ITemplate}]};Sys.Preview.UI.DraggableListItem.registerClass("Sys.Preview.UI.DraggableListItem",Sys.UI.Behavior);Sys.Preview.UI.FloatingBehavior=function(a){Sys.Preview.UI.FloatingBehavior.initializeBase(this,[a]);this._mouseDownHandler=Function.createDelegate(this,this.mouseDownHandler)};Sys.Preview.UI.FloatingBehavior.prototype={_handle:null,_location:null,_dragStartLocation:null,_profileProperty:null,_profileComponent:null,add_move:function(a){this.get_events().addHandler("move",a)},remove_move:function(a){this.get_events().removeHandler("move",a)},get_handle:function(){return this._handle},set_handle:function(a){if(this._handle)$removeHandler(this._handle,"mousedown",this._mouseDownHandler);this._handle=a;$addHandler(this._handle,"mousedown",this._mouseDownHandler)},get_profileProperty:function(){return this._profileProperty},set_profileProperty:function(a){this._profileProperty=a},get_profileComponent:function(){return this._profileComponent},set_profileComponent:function(a){this._profileComponent=a},get_location:function(){return this._location},set_location:function(c){if(this._location!=c){this._location=c;if(this.get_isInitialized()){var b=this._location.split(","),a={x:parseInt(b[0]),y:parseInt(b[1])};Sys.UI.DomElement.setLocation(this.get_element(),a.x,a.y)}this.raisePropertyChanged("location")}},initialize:function(){Sys.Preview.UI.FloatingBehavior.callBaseMethod(this,"initialize");Sys.Preview.UI.DragDropManager.registerDropTarget(this);var a=this.get_element(),d;if(this._location){var f=this._location.split(",");d={x:parseInt(f[0]),y:parseInt(f[1])}}else d=Sys.UI.DomElement.getLocation(a);if(a.offsetWidth)a.style.width=a.offsetWidth+"px";if(a.offsetHeight)a.style.height=a.offsetHeight+"px";a.style.position="absolute";Sys.UI.DomElement.setLocation(a,d.x,d.y);var g=this.get_profileProperty();if(g){var b=new Sys.Preview.Binding;b.beginUpdate();b.set_target(this);b.set_property("location");var e=this.get_profileComponent();if(!e)e=Sys.Preview.Services.Components.Profile.instance;b.set_dataContext(e);b.set_dataPath(g);b.set_direction(Sys.Preview.BindingDirection.InOut);var c=new Sys.Preview.InvokeMethodAction;c.beginUpdate();c.set_eventSource(e);c.set_eventName("loadComplete");c.set_target(b);c.set_method("evaluateIn");c.endUpdate();b.endUpdate();this._binding=b;this._action=c}},dispose:function(){Sys.Preview.UI.DragDropManager.unregisterDropTarget(this);if(this._handle&&this._mouseDownHandler)$removeHandler(this._handle,"mousedown",this._mouseDownHandler);this._mouseDownHandler=null;Sys.Preview.UI.FloatingBehavior.callBaseMethod(this,"dispose")},checkCanDrag:function(a){var c=["input","button","select","textarea","label"],b=a.tagName;if(b.toLowerCase()=="a"&&a.href!=null&&a.href.length>0)return false;if(Array.indexOf(c,b.toLowerCase())>-1)return false;return true},mouseDownHandler:function(a){window._event=a;var b=this.get_element();if(this.checkCanDrag(a.target)){this._dragStartLocation=Sys.UI.DomElement.getLocation(b);a.preventDefault();this.startDragDrop(b)}},get_dragDataType:function(){return"_floatingObject"},getDragData:function(){return null},get_dragMode:function(){return Sys.Preview.UI.DragMode.Move},onDragStart:function(){},onDrag:function(){},onDragEnd:function(a){if(!a){var d=this.get_events().getHandler("move");if(d){var b=new Sys.CancelEventArgs;d(this,b);a=b.get_cancel()}}var e=this.get_element();if(a)Sys.UI.DomElement.setLocation(e,this._dragStartLocation.x,this._dragStartLocation.y);else{var c=Sys.UI.DomElement.getLocation(e);this._location=c.x+","+c.y;this.raisePropertyChanged("location")}},startDragDrop:function(a){Sys.Preview.UI.DragDropManager.startDragDrop(this,a,null)},get_dropTargetElement:function(){return document.body},canDrop:function(b,a){return a==="_floatingObject"},drop:function(){},onDragEnterTarget:function(){},onDragLeaveTarget:function(){},onDragInTarget:function(){}};Sys.Preview.UI.FloatingBehavior.descriptor={properties:[{name:"profileProperty",type:String},{name:"profileComponent",type:Object},{name:"dragData",type:Object,readOnly:true},{name:"dragDataType",type:String,readOnly:true},{name:"dragMode",type:Sys.Preview.UI.DragMode,readOnly:true},{name:"dropTargetElement",type:Object,readOnly:true},{name:"handle",isDomElement:true},{name:"location",type:String}],events:[{name:"move"}]};Sys.Preview.UI.FloatingBehavior.registerClass("Sys.Preview.UI.FloatingBehavior",Sys.UI.Behavior,Sys.Preview.UI.IDragSource,Sys.Preview.UI.IDropTarget,Sys.IDisposable);Sys.UI.Control.overlaps=function(a,b){var g=a.x>=b.x&&a.x<=b.x+b.width,e=a.x+a.width>=b.x&&a.x+a.width<=b.x+b.width,c=a.x<b.x&&a.x+a.height>b.x+b.height,h=a.y>=b.y&&a.y<=b.y+b.height,f=a.y+a.height>=b.y&&a.y+a.height<=b.y+b.height,d=a.y<b.y&&a.y+a.height>b.y+b.height;if((g||e||c)&&(h||f||d))return true;return false};
/*ext-base.js*/
window.undefined=window.undefined;Ext={version:"3.2.2",versionDetail:{major:3,minor:2,patch:2}};Ext.apply=function(d,e,b){if(b){Ext.apply(d,b)}if(d&&e&&typeof e=="object"){for(var a in e){d[a]=e[a]}}return d};(function(){var g=0,s=Object.prototype.toString,t=navigator.userAgent.toLowerCase(),y=function(e){return e.test(t)},i=document,l=i.compatMode=="CSS1Compat",A=y(/opera/),h=y(/\bchrome\b/),u=y(/webkit/),x=!h&&y(/safari/),f=x&&y(/applewebkit\/4/),b=x&&y(/version\/3/),B=x&&y(/version\/4/),r=!A&&y(/msie/),p=r&&y(/msie 7/),o=r&&y(/msie 8/),q=r&&!p&&!o,n=!u&&y(/gecko/),d=n&&y(/rv:1\.8/),a=n&&y(/rv:1\.9/),v=r&&!l,z=y(/windows|win32/),k=y(/macintosh|mac os x/),j=y(/adobeair/),m=y(/linux/),c=/^https/i.test(window.location.protocol);if(q){try{i.execCommand("BackgroundImageCache",false,true)}catch(w){}}Ext.apply(Ext,{SSL_SECURE_URL:c&&r?'javascript:""':"about:blank",isStrict:l,isSecure:c,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,enableNestedListenerRemoval:false,USE_NATIVE_JSON:false,applyIf:function(C,D){if(C){for(var e in D){if(!Ext.isDefined(C[e])){C[e]=D[e]}}}return C},id:function(e,C){e=Ext.getDom(e,true)||{};if(!e.id){e.id=(C||"ext-gen")+(++g)}return e.id},extend:function(){var C=function(E){for(var D in E){this[D]=E[D]}};var e=Object.prototype.constructor;return function(J,G,I){if(typeof G=="object"){I=G;G=J;J=I.constructor!=e?I.constructor:function(){G.apply(this,arguments)}}var E=function(){},H,D=G.prototype;E.prototype=D;H=J.prototype=new E();H.constructor=J;J.superclass=D;if(D.constructor==e){D.constructor=G}J.override=function(F){Ext.override(J,F)};H.superclass=H.supr=(function(){return D});H.override=C;Ext.override(J,I);J.extend=function(F){return Ext.extend(J,F)};return J}}(),override:function(e,D){if(D){var C=e.prototype;Ext.apply(C,D);if(Ext.isIE&&D.hasOwnProperty("toString")){C.toString=D.toString}}},namespace:function(){var C,e;Ext.each(arguments,function(D){e=D.split(".");C=window[e[0]]=window[e[0]]||{};Ext.each(e.slice(1),function(E){C=C[E]=C[E]||{}})});return C},urlEncode:function(G,F){var D,C=[],E=encodeURIComponent;Ext.iterate(G,function(e,H){D=Ext.isEmpty(H);Ext.each(D?e:H,function(I){C.push("&",E(e),"=",(!Ext.isEmpty(I)&&(I!=e||!D))?(Ext.isDate(I)?Ext.encode(I).replace(/"/g,""):E(I)):"")})});if(!F){C.shift();F=""}return F+C.join("")},urlDecode:function(D,C){if(Ext.isEmpty(D)){return{}}var G={},F=D.split("&"),H=decodeURIComponent,e,E;Ext.each(F,function(I){I=I.split("=");e=H(I[0]);E=H(I[1]);G[e]=C||!G[e]?E:[].concat(G[e]).concat(E)});return G},urlAppend:function(e,C){if(!Ext.isEmpty(C)){return e+(e.indexOf("?")===-1?"?":"&")+C}return e},toArray:function(){return r?function(D,G,E,F){F=[];for(var C=0,e=D.length;C<e;C++){F.push(D[C])}return F.slice(G||0,E||F.length)}:function(e,D,C){return Array.prototype.slice.call(e,D||0,C||e.length)}}(),isIterable:function(e){if(Ext.isArray(e)||e.callee){return true}if(/NodeList|HTMLCollection/.test(s.call(e))){return true}return((typeof e.nextNode!="undefined"||e.item)&&Ext.isNumber(e.length))},each:function(F,E,D){if(Ext.isEmpty(F,true)){return}if(!Ext.isIterable(F)||Ext.isPrimitive(F)){F=[F]}for(var C=0,e=F.length;C<e;C++){if(E.call(D||F[C],F[C],C,F)===false){return C}}},iterate:function(D,C,e){if(Ext.isEmpty(D)){return}if(Ext.isIterable(D)){Ext.each(D,C,e);return}else{if(typeof D=="object"){for(var E in D){if(D.hasOwnProperty(E)){if(C.call(e||D,E,D[E],D)===false){return}}}}}},getDom:function(D,C){if(!D||!i){return null}if(D.dom){return D.dom}else{if(typeof D=="string"){var E=i.getElementById(D);if(E&&r&&C){if(D==E.getAttribute("id")){return E}else{return null}}return E}else{return D}}},getBody:function(){return Ext.get(i.body||i.documentElement)},getHead:function(){var e;return function(){if(e==undefined){e=Ext.get(i.getElementsByTagName("head")[0])}return e}}(),removeNode:r&&!o?function(){var e;return function(C){if(C&&C.tagName!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(C,true):Ext.EventManager.removeAll(C);e=e||i.createElement("div");e.appendChild(C);e.innerHTML="";delete Ext.elCache[C.id]}}}():function(e){if(e&&e.parentNode&&e.tagName!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(e,true):Ext.EventManager.removeAll(e);e.parentNode.removeChild(e);delete Ext.elCache[e.id]}},isEmpty:function(C,e){return C===null||C===undefined||((Ext.isArray(C)&&!C.length))||(!e?C==="":false)},isArray:function(e){return s.apply(e)==="[object Array]"},isDate:function(e){return s.apply(e)==="[object Date]"},isObject:function(e){return!!e&&Object.prototype.toString.call(e)==="[object Object]"},isPrimitive:function(e){return Ext.isString(e)||Ext.isNumber(e)||Ext.isBoolean(e)},isFunction:function(e){return s.apply(e)==="[object Function]"},isNumber:function(e){return typeof e==="number"&&isFinite(e)},isString:function(e){return typeof e==="string"},isBoolean:function(e){return typeof e==="boolean"},isElement:function(e){return e?!!e.tagName:false},isDefined:function(e){return typeof e!=="undefined"},isOpera:A,isWebKit:u,isChrome:h,isSafari:x,isSafari3:b,isSafari4:B,isSafari2:f,isIE:r,isIE6:q,isIE7:p,isIE8:o,isGecko:n,isGecko2:d,isGecko3:a,isBorderBox:v,isLinux:m,isWindows:z,isMac:k,isAir:j});Ext.ns=Ext.namespace})();Ext.ns("Ext.util","Ext.lib","Ext.data");Ext.elCache={};Ext.apply(Function.prototype,{createInterceptor:function(b,a){var c=this;return!Ext.isFunction(b)?this:function(){var e=this,d=arguments;b.target=e;b.method=c;return(b.apply(a||e||window,d)!==false)?c.apply(e||window,d):null}},createCallback:function(){var a=arguments,b=this;return function(){return b.apply(window,a)}},createDelegate:function(c,b,a){var d=this;return function(){var f=b||arguments;if(a===true){f=Array.prototype.slice.call(arguments,0);f=f.concat(b)}else{if(Ext.isNumber(a)){f=Array.prototype.slice.call(arguments,0);var e=[a,0].concat(b);Array.prototype.splice.apply(f,e)}}return d.apply(c||window,f)}},defer:function(c,e,b,a){var d=this.createDelegate(e,b,a);if(c>0){return setTimeout(d,c)}d();return 0}});Ext.applyIf(String,{format:function(b){var a=Ext.toArray(arguments,1);return b.replace(/\{(\d+)\}/g,function(c,d){return a[d]})}});Ext.applyIf(Array.prototype,{indexOf:function(b,c){var a=this.length;c=c||0;c+=(c<0)?a:0;for(;c<a;++c){if(this[c]===b){return c}}return-1},remove:function(b){var a=this.indexOf(b);if(a!=-1){this.splice(a,1)}return this}});Ext.ns("Ext.grid","Ext.list","Ext.dd","Ext.tree","Ext.form","Ext.menu","Ext.state","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Ext,function(){var c=Ext,a=0,b=null;return{emptyFn:function(){},BLANK_IMAGE_URL:Ext.isIE6||Ext.isIE7||Ext.isAir?"http://www.extjs.com/s.gif":"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",extendX:function(d,e){return Ext.extend(d,e(d.prototype))},getDoc:function(){return Ext.get(document)},num:function(e,d){e=Number(Ext.isEmpty(e)||Ext.isArray(e)||typeof e=="boolean"||(typeof e=="string"&&e.trim().length==0)?NaN:e);return isNaN(e)?d:e},value:function(f,d,e){return Ext.isEmpty(f,e)?d:f},escapeRe:function(d){return d.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},sequence:function(g,d,f,e){g[d]=g[d].createSequence(f,e)},addBehaviors:function(h){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(h)})}else{var e={},g,d,f;for(d in h){if((g=d.split("@"))[1]){f=g[0];if(!e[f]){e[f]=Ext.select(f)}e[f].on(g[1],h[d])}}e=null}},getScrollBarWidth:function(f){if(!Ext.isReady){return 0}if(f===true||b===null){var h=Ext.getBody().createChild('<div class="x-hide-offsets" style="width:100px;height:50px;overflow:hidden;"><div style="height:200px;"></div></div>'),g=h.child("div",true);var e=g.offsetWidth;h.setStyle("overflow",(Ext.isWebKit||Ext.isGecko)?"auto":"scroll");var d=g.offsetWidth;h.remove();b=e-d+2}return b},combine:function(){var f=arguments,e=f.length,h=[];for(var g=0;g<e;g++){var d=f[g];if(Ext.isArray(d)){h=h.concat(d)}else{if(d.length!==undefined&&!d.substr){h=h.concat(Array.prototype.slice.call(d,0))}else{h.push(d)}}}return h},copyTo:function(d,e,f){if(typeof f=="string"){f=f.split(/[,;\s]/)}Ext.each(f,function(g){if(e.hasOwnProperty(g)){d[g]=e[g]}},this);return d},destroy:function(){Ext.each(arguments,function(d){if(d){if(Ext.isArray(d)){this.destroy.apply(this,d)}else{if(typeof d.destroy=="function"){d.destroy()}else{if(d.dom){d.remove()}}}}},this)},destroyMembers:function(k,h,f,g){for(var j=1,e=arguments,d=e.length;j<d;j++){Ext.destroy(k[e[j]]);delete k[e[j]]}},clean:function(d){var e=[];Ext.each(d,function(f){if(!!f){e.push(f)}});return e},unique:function(d){var e=[],f={};Ext.each(d,function(g){if(!f[g]){e.push(g)}f[g]=true});return e},flatten:function(d){var f=[];function e(g){Ext.each(g,function(h){if(Ext.isArray(h)){e(h)}else{f.push(h)}});return f}return e(d)},min:function(d,e){var f=d[0];e=e||function(h,g){return h<g?-1:1};Ext.each(d,function(g){f=e(f,g)==-1?f:g});return f},max:function(d,e){var f=d[0];e=e||function(h,g){return h>g?1:-1};Ext.each(d,function(g){f=e(f,g)==1?f:g});return f},mean:function(d){return d.length>0?Ext.sum(d)/d.length:undefined},sum:function(d){var e=0;Ext.each(d,function(f){e+=f});return e},partition:function(d,e){var f=[[],[]];Ext.each(d,function(h,j,g){f[(e&&e(h,j,g))||(!e&&h)?0:1].push(h)});return f},invoke:function(d,e){var g=[],f=Array.prototype.slice.call(arguments,2);Ext.each(d,function(h,j){if(h&&typeof h[e]=="function"){g.push(h[e].apply(h,f))}else{g.push(undefined)}});return g},pluck:function(d,f){var e=[];Ext.each(d,function(g){e.push(g[f])});return e},zip:function(){var m=Ext.partition(arguments,function(i){return typeof i!="function"}),h=m[0],l=m[1][0],d=Ext.max(Ext.pluck(h,"length")),g=[];for(var k=0;k<d;k++){g[k]=[];if(l){g[k]=l.apply(l,Ext.pluck(h,k))}else{for(var f=0,e=h.length;f<e;f++){g[k].push(h[f][k])}}}return g},getCmp:function(d){return Ext.ComponentMgr.get(d)},useShims:c.isIE6||(c.isMac&&c.isGecko2),type:function(e){if(e===undefined||e===null){return false}if(e.htmlElement){return"element"}var d=typeof e;if(d=="object"&&e.nodeName){switch(e.nodeType){case 1:return"element";case 3:return(/\S/).test(e.nodeValue)?"textnode":"whitespace"}}if(d=="object"||d=="function"){switch(e.constructor){case Array:return"array";case RegExp:return"regexp";case Date:return"date"}if(typeof e.length=="number"&&typeof e.item=="function"){return"nodelist"}}return d},intercept:function(g,d,f,e){g[d]=g[d].createInterceptor(f,e)},callback:function(d,g,f,e){if(typeof d=="function"){if(e){d.defer(e,g,f||[])}else{d.apply(g,f||[])}}}}}());Ext.apply(Function.prototype,{createSequence:function(b,a){var c=this;return(typeof b!="function")?this:function(){var d=c.apply(this||window,arguments);b.apply(a||this||window,arguments);return d}}});Ext.applyIf(String,{escape:function(a){return a.replace(/('|\\)/g,"\\$1")},leftPad:function(d,b,c){var a=String(d);if(!c){c=" "}while(a.length<b){a=c+a}return a}});String.prototype.toggle=function(b,a){return this==b?a:b};String.prototype.trim=function(){var a=/^\s+|\s+$/g;return function(){return this.replace(a,"")}}();Date.prototype.getElapsed=function(a){return Math.abs((a||new Date()).getTime()-this.getTime())};Ext.applyIf(Number.prototype,{constrain:function(b,a){return Math.min(Math.max(this,b),a)}});Ext.util.TaskRunner=function(e){e=e||10;var f=[],a=[],b=0,g=false,d=function(){g=false;clearInterval(b);b=0},h=function(){if(!g){g=true;b=setInterval(i,e)}},c=function(j){a.push(j);if(j.onStop){j.onStop.apply(j.scope||j)}},i=function(){var l=a.length,n=new Date().getTime();if(l>0){for(var p=0;p<l;p++){f.remove(a[p])}a=[];if(f.length<1){d();return}}for(var p=0,o,k,m,j=f.length;p<j;++p){o=f[p];k=n-o.taskRunTime;if(o.interval<=k){m=o.run.apply(o.scope||o,o.args||[++o.taskRunCount]);o.taskRunTime=n;if(m===false||o.taskRunCount===o.repeat){c(o);return}}if(o.duration&&o.duration<=(n-o.taskStartTime)){c(o)}}};this.start=function(j){f.push(j);j.taskStartTime=new Date().getTime();j.taskRunTime=0;j.taskRunCount=0;h();return j};this.stop=function(j){c(j);return j};this.stopAll=function(){d();for(var k=0,j=f.length;k<j;k++){if(f[k].onStop){f[k].onStop()}}f=[];a=[]}};Ext.TaskMgr=new Ext.util.TaskRunner();(function(){var b;function c(d){if(!b){b=new Ext.Element.Flyweight()}b.dom=d;return b}(function(){var g=document,e=g.compatMode=="CSS1Compat",f=Math.max,d=Math.round,h=parseInt;Ext.lib.Dom={isAncestor:function(j,k){var i=false;j=Ext.getDom(j);k=Ext.getDom(k);if(j&&k){if(j.contains){return j.contains(k)}else{if(j.compareDocumentPosition){return!!(j.compareDocumentPosition(k)&16)}else{while(k=k.parentNode){i=k==j||i}}}}return i},getViewWidth:function(i){return i?this.getDocumentWidth():this.getViewportWidth()},getViewHeight:function(i){return i?this.getDocumentHeight():this.getViewportHeight()},getDocumentHeight:function(){return f(!e?g.body.scrollHeight:g.documentElement.scrollHeight,this.getViewportHeight())},getDocumentWidth:function(){return f(!e?g.body.scrollWidth:g.documentElement.scrollWidth,this.getViewportWidth())},getViewportHeight:function(){return Ext.isIE?(Ext.isStrict?g.documentElement.clientHeight:g.body.clientHeight):self.innerHeight},getViewportWidth:function(){return!Ext.isStrict&&!Ext.isOpera?g.body.clientWidth:Ext.isIE?g.documentElement.clientWidth:self.innerWidth},getY:function(i){return this.getXY(i)[1]},getX:function(i){return this.getXY(i)[0]},getXY:function(k){var j,q,s,v,l,m,u=0,r=0,t,i,n=(g.body||g.documentElement),o=[0,0];k=Ext.getDom(k);if(k!=n){if(k.getBoundingClientRect){s=k.getBoundingClientRect();t=c(document).getScroll();o=[d(s.left+t.left),d(s.top+t.top)]}else{j=k;i=c(k).isStyle("position","absolute");while(j){q=c(j);u+=j.offsetLeft;r+=j.offsetTop;i=i||q.isStyle("position","absolute");if(Ext.isGecko){r+=v=h(q.getStyle("borderTopWidth"),10)||0;u+=l=h(q.getStyle("borderLeftWidth"),10)||0;if(j!=k&&!q.isStyle("overflow","visible")){u+=l;r+=v}}j=j.offsetParent}if(Ext.isSafari&&i){u-=n.offsetLeft;r-=n.offsetTop}if(Ext.isGecko&&!i){m=c(n);u+=h(m.getStyle("borderLeftWidth"),10)||0;r+=h(m.getStyle("borderTopWidth"),10)||0}j=k.parentNode;while(j&&j!=n){if(!Ext.isOpera||(j.tagName!="TR"&&!c(j).isStyle("display","inline"))){u-=j.scrollLeft;r-=j.scrollTop}j=j.parentNode}o=[u,r]}}return o},setXY:function(j,k){(j=Ext.fly(j,"_setXY")).position();var l=j.translatePoints(k),i=j.dom.style,m;for(m in l){if(!isNaN(l[m])){i[m]=l[m]+"px"}}},setX:function(j,i){this.setXY(j,[i,false])},setY:function(i,j){this.setXY(i,[false,j])}}})();Ext.lib.Dom.getRegion=function(d){return Ext.lib.Region.getRegion(d)};Ext.lib.Event=function(){var v=false,f={},z=0,o=[],d,A=false,k=window,E=document,l=200,r=20,p=0,i=1,s=2,w=3,t="scrollLeft",q="scrollTop",g="unload",y="mouseover",D="mouseout",e=function(){var F;if(k.addEventListener){F=function(J,H,I,G){if(H=="mouseenter"){I=I.createInterceptor(n);J.addEventListener(y,I,(G))}else{if(H=="mouseleave"){I=I.createInterceptor(n);J.addEventListener(D,I,(G))}else{J.addEventListener(H,I,(G))}}return I}}else{if(k.attachEvent){F=function(J,H,I,G){J.attachEvent("on"+H,I);return I}}else{F=function(){}}}return F}(),h=function(){var F;if(k.removeEventListener){F=function(J,H,I,G){if(H=="mouseenter"){H=y}else{if(H=="mouseleave"){H=D}}J.removeEventListener(H,I,(G))}}else{if(k.detachEvent){F=function(I,G,H){I.detachEvent("on"+G,H)}}else{F=function(){}}}return F}();function n(F){return!u(F.currentTarget,x.getRelatedTarget(F))}function u(F,G){if(F&&F.firstChild){while(G){if(G===F){return true}G=G.parentNode;if(G&&(G.nodeType!=1)){G=null}}}return false}function B(){var G=false,L=[],J,I,F,H,K=!v||(z>0);if(!A){A=true;for(I=0;I<o.length;++I){F=o[I];if(F&&(J=E.getElementById(F.id))){if(!F.checkReady||v||J.nextSibling||(E&&E.body)){H=F.override;J=H?(H===true?F.obj:H):J;F.fn.call(J,F.obj);o.remove(F);--I}else{L.push(F)}}}z=(L.length===0)?0:z-1;if(K){m()}else{clearInterval(d);d=null}G=!(A=false)}return G}function m(){if(!d){var F=function(){B()};d=setInterval(F,r)}}function C(){var F=E.documentElement,G=E.body;if(F&&(F[q]||F[t])){return[F[t],F[q]]}else{if(G){return[G[t],G[q]]}else{return[0,0]}}}function j(F,G){F=F.browserEvent||F;var H=F["page"+G];if(!H&&H!==0){H=F["client"+G]||0;if(Ext.isIE){H+=C()[G=="X"?0:1]}}return H}var x={extAdapter:true,onAvailable:function(H,F,I,G){o.push({id:H,fn:F,obj:I,override:G,checkReady:false});z=l;m()},addListener:function(H,F,G){H=Ext.getDom(H);if(H&&G){if(F==g){if(f[H.id]===undefined){f[H.id]=[]}f[H.id].push([F,G]);return G}return e(H,F,G,false)}return false},removeListener:function(L,H,K){L=Ext.getDom(L);var J,G,F,I;if(L&&K){if(H==g){if((I=f[L.id])!==undefined){for(J=0,G=I.length;J<G;J++){if((F=I[J])&&F[p]==H&&F[i]==K){f[L.id].splice(J,1)}}}return}h(L,H,K,false)}},getTarget:function(F){F=F.browserEvent||F;return this.resolveTextNode(F.target||F.srcElement)},resolveTextNode:Ext.isGecko?function(G){if(!G){return}var F=HTMLElement.prototype.toString.call(G);if(F=="[xpconnect wrapped native prototype]"||F=="[object XULElement]"){return}return G.nodeType==3?G.parentNode:G}:function(F){return F&&F.nodeType==3?F.parentNode:F},getRelatedTarget:function(F){F=F.browserEvent||F;return this.resolveTextNode(F.relatedTarget||(/(mouseout|mouseleave)/.test(F.type)?F.toElement:/(mouseover|mouseenter)/.test(F.type)?F.fromElement:null))},getPageX:function(F){return j(F,"X")},getPageY:function(F){return j(F,"Y")},getXY:function(F){return[this.getPageX(F),this.getPageY(F)]},stopEvent:function(F){this.stopPropagation(F);this.preventDefault(F)},stopPropagation:function(F){F=F.browserEvent||F;if(F.stopPropagation){F.stopPropagation()}else{F.cancelBubble=true}},preventDefault:function(F){F=F.browserEvent||F;if(F.preventDefault){F.preventDefault()}else{F.returnValue=false}},getEvent:function(F){F=F||k.event;if(!F){var G=this.getEvent.caller;while(G){F=G.arguments[0];if(F&&Event==F.constructor){break}G=G.caller}}return F},getCharCode:function(F){F=F.browserEvent||F;return F.charCode||F.keyCode||0},getListeners:function(G,F){Ext.EventManager.getListeners(G,F)},purgeElement:function(G,H,F){Ext.EventManager.purgeElement(G,H,F)},_load:function(F){v=true;if(Ext.isIE&&F!==true){h(k,"load",arguments.callee)}},_unload:function(J){var G=Ext.lib.Event,H,M,K,F,I,N;for(F in f){K=f[F];for(H=0,I=K.length;H<I;H++){M=K[H];if(M){try{N=M[w]?(M[w]===true?M[s]:M[w]):k;M[i].call(N,G.getEvent(J),M[s])}catch(L){}}}}Ext.EventManager._unload();h(k,g,G._unload)}};x.on=x.addListener;x.un=x.removeListener;if(E&&E.body){x._load(true)}else{e(k,"load",x._load)}e(k,g,x._unload);B();return x}();Ext.lib.Ajax=function(){var g=["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d="Content-Type";function h(s){var r=s.conn,t;function q(u,v){for(t in v){if(v.hasOwnProperty(t)){u.setRequestHeader(t,v[t])}}}if(k.defaultHeaders){q(r,k.defaultHeaders)}if(k.headers){q(r,k.headers);delete k.headers}}function e(t,s,r,q){return{tId:t,status:r?-1:0,statusText:r?"transaction aborted":"communication failure",isAbort:r,isTimeout:q,argument:s}}function j(q,r){(k.headers=k.headers||{})[q]=r}function o(q,w){var A={},v,u=q.conn,y,z,r=u.status==1223;try{v=q.conn.getAllResponseHeaders();Ext.each(v.replace(/\r\n/g,"\n").split("\n"),function(s){y=s.indexOf(":");if(y>=0){z=s.substr(0,y).toLowerCase();if(s.charAt(y+1)==" "){++y}A[z]=s.substr(y+1)}})}catch(x){}return{tId:q.tId,status:r?204:u.status,statusText:r?"No Content":u.statusText,getResponseHeader:function(s){return A[s.toLowerCase()]},getAllResponseHeaders:function(){return v},responseText:u.responseText,responseXML:u.responseXML,argument:w}}function n(q){if(q.tId){k.conn[q.tId]=null}q.conn=null;q=null}function f(v,w,r,q){if(!w){n(v);return}var t,s;try{if(v.conn.status!==undefined&&v.conn.status!=0){t=v.conn.status}else{t=13030}}catch(u){t=13030}if((t>=200&&t<300)||(Ext.isIE&&t==1223)){s=o(v,w.argument);if(w.success){if(!w.scope){w.success(s)}else{w.success.apply(w.scope,[s])}}}else{switch(t){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:s=e(v.tId,w.argument,(r?r:false),q);if(w.failure){if(!w.scope){w.failure(s)}else{w.failure.apply(w.scope,[s])}}break;default:s=o(v,w.argument);if(w.failure){if(!w.scope){w.failure(s)}else{w.failure.apply(w.scope,[s])}}}}n(v);s=null}function m(s,v){v=v||{};var q=s.conn,u=s.tId,r=k.poll,t=v.timeout||null;if(t){k.conn[u]=q;k.timeout[u]=setTimeout(function(){k.abort(s,v,true)},t)}r[u]=setInterval(function(){if(q&&q.readyState==4){clearInterval(r[u]);r[u]=null;if(t){clearTimeout(k.timeout[u]);k.timeout[u]=null}f(s,v)}},k.pollInterval)}function i(u,r,t,q){var s=l()||null;if(s){s.conn.open(u,r,true);if(k.useDefaultXhrHeader){j("X-Requested-With",k.defaultXhrHeader)}if(q&&k.useDefaultHeader&&(!k.headers||!k.headers[d])){j(d,k.defaultPostHeader)}if(k.defaultHeaders||k.headers){h(s)}m(s,t);s.conn.send(q||null)}return s}function l(){var r;try{if(r=p(k.transactionId)){k.transactionId++}}catch(q){}finally{return r}}function p(t){var q;try{q=new XMLHttpRequest()}catch(s){for(var r=0;r<g.length;++r){try{q=new ActiveXObject(g[r]);break}catch(s){}}}finally{return{conn:q,tId:t}}}var k={request:function(q,s,t,u,y){if(y){var v=this,r=y.xmlData,w=y.jsonData,x;Ext.applyIf(v,y);if(r||w){x=v.headers;if(!x||!x[d]){j(d,r?"text/xml":"application/json")}u=r||(!Ext.isPrimitive(w)?Ext.encode(w):w)}}return i(q||y.method||"POST",s,t,u)},serializeForm:function(v){var u=v.elements||(document.forms[v]||Ext.getDom(v)).elements,q=false,t=encodeURIComponent,r,w="",s;Ext.each(u,function(x){r=x.name;s=x.type;if(!x.disabled&&r){if(/select-(one|multiple)/i.test(s)){Ext.each(x.options,function(y){if(y.selected){w+=String.format("{0}={1}&",t(r),t((y.hasAttribute?y.hasAttribute("value"):y.getAttribute("value")!==null)?y.value:y.text))}})}else{if(!(/file|undefined|reset|button/i.test(s))){if(!(/radio|checkbox/i.test(s)&&!x.checked)&&!(s=="submit"&&q)){w+=t(r)+"="+t(x.value)+"&";q=/submit/i.test(s)}}}}});return w.substr(0,w.length-1)},useDefaultHeader:true,defaultPostHeader:"application/x-www-form-urlencoded; charset=UTF-8",useDefaultXhrHeader:true,defaultXhrHeader:"XMLHttpRequest",poll:{},timeout:{},conn:{},pollInterval:50,transactionId:0,abort:function(t,v,q){var s=this,u=t.tId,r=false;if(s.isCallInProgress(t)){t.conn.abort();clearInterval(s.poll[u]);s.poll[u]=null;clearTimeout(k.timeout[u]);s.timeout[u]=null;f(t,v,(r=true),q)}return r},isCallInProgress:function(q){return q.conn&&!{0:true,4:true}[q.conn.readyState]}};return k}();Ext.lib.Region=function(f,h,d,e){var g=this;g.top=f;g[1]=f;g.right=h;g.bottom=d;g.left=e;g[0]=e};Ext.lib.Region.prototype={contains:function(e){var d=this;return(e.left>=d.left&&e.right<=d.right&&e.top>=d.top&&e.bottom<=d.bottom)},getArea:function(){var d=this;return((d.bottom-d.top)*(d.right-d.left))},intersect:function(i){var h=this,f=Math.max(h.top,i.top),g=Math.min(h.right,i.right),d=Math.min(h.bottom,i.bottom),e=Math.max(h.left,i.left);if(d>=f&&g>=e){return new Ext.lib.Region(f,g,d,e)}},union:function(i){var h=this,f=Math.min(h.top,i.top),g=Math.max(h.right,i.right),d=Math.max(h.bottom,i.bottom),e=Math.min(h.left,i.left);return new Ext.lib.Region(f,g,d,e)},constrainTo:function(e){var d=this;d.top=d.top.constrain(e.top,e.bottom);d.bottom=d.bottom.constrain(e.top,e.bottom);d.left=d.left.constrain(e.left,e.right);d.right=d.right.constrain(e.left,e.right);return d},adjust:function(f,e,d,h){var g=this;g.top+=f;g.left+=e;g.right+=h;g.bottom+=d;return g}};Ext.lib.Region.getRegion=function(g){var i=Ext.lib.Dom.getXY(g),f=i[1],h=i[0]+g.offsetWidth,d=i[1]+g.offsetHeight,e=i[0];return new Ext.lib.Region(f,h,d,e)};Ext.lib.Point=function(d,f){if(Ext.isArray(d)){f=d[1];d=d[0]}var e=this;e.x=e.right=e.left=e[0]=d;e.y=e.top=e.bottom=e[1]=f};Ext.lib.Point.prototype=new Ext.lib.Region();(function(){var g=Ext.lib,i=/width|height|opacity|padding/i,f=/^((width|height)|(top|left))$/,d=/width|height|top$|bottom$|left$|right$/i,h=/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i,j=function(k){return typeof k!=="undefined"},e=function(){return new Date()};g.Anim={motion:function(n,l,o,p,k,m){return this.run(n,l,o,p,k,m,Ext.lib.Motion)},run:function(o,l,q,r,k,n,m){m=m||Ext.lib.AnimBase;if(typeof r=="string"){r=Ext.lib.Easing[r]}var p=new m(o,l,q,r);p.animateX(function(){if(Ext.isFunction(k)){k.call(n)}});return p}};g.AnimBase=function(l,k,m,n){if(l){this.init(l,k,m,n)}};g.AnimBase.prototype={doMethod:function(k,n,l){var m=this;return m.method(m.curFrame,n,l-n,m.totalFrames)},setAttr:function(k,m,l){if(i.test(k)&&m<0){m=0}Ext.fly(this.el,"_anim").setStyle(k,m+l)},getAttr:function(k){var m=Ext.fly(this.el),n=m.getStyle(k),l=f.exec(k)||[];if(n!=="auto"&&!h.test(n)){return parseFloat(n)}return(!!(l[2])||(m.getStyle("position")=="absolute"&&!!(l[3])))?m.dom["offset"+l[0].charAt(0).toUpperCase()+l[0].substr(1)]:0},getDefaultUnit:function(k){return d.test(k)?"px":""},animateX:function(n,k){var l=this,m=function(){l.onComplete.removeListener(m);if(Ext.isFunction(n)){n.call(k||l,l)}};l.onComplete.addListener(m,l);l.animate()},setRunAttr:function(p){var r=this,s=this.attributes[p],t=s.to,q=s.by,u=s.from,v=s.unit,l=(this.runAttrs[p]={}),m;if(!j(t)&&!j(q)){return false}var k=j(u)?u:r.getAttr(p);if(j(t)){m=t}else{if(j(q)){if(Ext.isArray(k)){m=[];for(var n=0,o=k.length;n<o;n++){m[n]=k[n]+q[n]}}else{m=k+q}}}Ext.apply(l,{start:k,end:m,unit:j(v)?v:r.getDefaultUnit(p)})},init:function(l,p,o,k){var r=this,n=0,s=g.AnimMgr;Ext.apply(r,{isAnimated:false,startTime:null,el:Ext.getDom(l),attributes:p||{},duration:o||1,method:k||g.Easing.easeNone,useSec:true,curFrame:0,totalFrames:s.fps,runAttrs:{},animate:function(){var u=this,v=u.duration;if(u.isAnimated){return false}u.curFrame=0;u.totalFrames=u.useSec?Math.ceil(s.fps*v):v;s.registerElement(u)},stop:function(u){var v=this;if(u){v.curFrame=v.totalFrames;v._onTween.fire()}s.stop(v)}});var t=function(){var v=this,u;v.onStart.fire();v.runAttrs={};for(u in this.attributes){this.setRunAttr(u)}v.isAnimated=true;v.startTime=e();n=0};var q=function(){var v=this;v.onTween.fire({duration:e()-v.startTime,curFrame:v.curFrame});var w=v.runAttrs;for(var u in w){this.setAttr(u,v.doMethod(u,w[u].start,w[u].end),w[u].unit)}++n};var m=function(){var u=this,w=(e()-u.startTime)/1000,v={duration:w,frames:n,fps:n/w};u.isAnimated=false;n=0;u.onComplete.fire(v)};r.onStart=new Ext.util.Event(r);r.onTween=new Ext.util.Event(r);r.onComplete=new Ext.util.Event(r);(r._onStart=new Ext.util.Event(r)).addListener(t);(r._onTween=new Ext.util.Event(r)).addListener(q);(r._onComplete=new Ext.util.Event(r)).addListener(m)}};Ext.lib.AnimMgr=new function(){var o=this,m=null,l=[],k=0;Ext.apply(o,{fps:1000,delay:1,registerElement:function(q){l.push(q);++k;q._onStart.fire();o.start()},unRegister:function(r,q){r._onComplete.fire();q=q||p(r);if(q!=-1){l.splice(q,1)}if(--k<=0){o.stop()}},start:function(){if(m===null){m=setInterval(o.run,o.delay)}},stop:function(s){if(!s){clearInterval(m);for(var r=0,q=l.length;r<q;++r){if(l[0].isAnimated){o.unRegister(l[0],0)}}l=[];m=null;k=0}else{o.unRegister(s)}},run:function(){var t,s,q,r;for(s=0,q=l.length;s<q;s++){r=l[s];if(r&&r.isAnimated){t=r.totalFrames;if(r.curFrame<t||t===null){++r.curFrame;if(r.useSec){n(r)}r._onTween.fire()}else{o.stop(r)}}}}});var p=function(s){var r,q;for(r=0,q=l.length;r<q;r++){if(l[r]===s){return r}}return-1};var n=function(r){var v=r.totalFrames,u=r.curFrame,t=r.duration,s=(u*t*1000/v),q=(e()-r.startTime),w=0;if(q<t*1000){w=Math.round((q/s-1)*u)}else{w=v-(u+1)}if(w>0&&isFinite(w)){if(r.curFrame+w>=v){w=v-(u+1)}r.curFrame+=w}}};g.Bezier=new function(){this.getPosition=function(p,o){var r=p.length,m=[],q=1-o,l,k;for(l=0;l<r;++l){m[l]=[p[l][0],p[l][1]]}for(k=1;k<r;++k){for(l=0;l<r-k;++l){m[l][0]=q*m[l][0]+o*m[parseInt(l+1,10)][0];m[l][1]=q*m[l][1]+o*m[parseInt(l+1,10)][1]}}return[m[0][0],m[0][1]]}};g.Easing={easeNone:function(l,k,n,m){return n*l/m+k},easeIn:function(l,k,n,m){return n*(l/=m)*l+k},easeOut:function(l,k,n,m){return-n*(l/=m)*(l-2)+k}};(function(){g.Motion=function(o,n,p,q){if(o){g.Motion.superclass.constructor.call(this,o,n,p,q)}};Ext.extend(g.Motion,Ext.lib.AnimBase);var m=g.Motion.superclass,l=/^points$/i;Ext.apply(g.Motion.prototype,{setAttr:function(n,r,q){var p=this,o=m.setAttr;if(l.test(n)){q=q||"px";o.call(p,"left",r[0],q);o.call(p,"top",r[1],q)}else{o.call(p,n,r,q)}},getAttr:function(n){var p=this,o=m.getAttr;return l.test(n)?[o.call(p,"left"),o.call(p,"top")]:o.call(p,n)},doMethod:function(n,q,o){var p=this;return l.test(n)?g.Bezier.getPosition(p.runAttrs[n],p.method(p.curFrame,0,100,p.totalFrames)/100):m.doMethod.call(p,n,q,o)},setRunAttr:function(u){if(l.test(u)){var w=this,p=this.el,z=this.attributes.points,s=z.control||[],x=z.from,y=z.to,v=z.by,A=g.Dom,o,r,q,t,n;if(s.length>0&&!Ext.isArray(s[0])){s=[s]}else{}Ext.fly(p,"_anim").position();A.setXY(p,j(x)?x:A.getXY(p));o=w.getAttr("points");if(j(y)){q=k.call(w,y,o);for(r=0,t=s.length;r<t;++r){s[r]=k.call(w,s[r],o)}}else{if(j(v)){q=[o[0]+v[0],o[1]+v[1]];for(r=0,t=s.length;r<t;++r){s[r]=[o[0]+s[r][0],o[1]+s[r][1]]}}}n=this.runAttrs[u]=[o];if(s.length>0){n=n.concat(s)}n[n.length]=q}else{m.setRunAttr.call(this,u)}}});var k=function(n,p){var o=g.Dom.getXY(this.el);return[n[0]-o[0]+p[0],n[1]-o[1]+p[1]]}})()})();(function(){var d=Math.abs,i=Math.PI,h=Math.asin,g=Math.pow,e=Math.sin,f=Ext.lib;Ext.apply(f.Easing,{easeBoth:function(k,j,m,l){return((k/=l/2)<1)?m/2*k*k+j:-m/2*((--k)*(k-2)-1)+j},easeInStrong:function(k,j,m,l){return m*(k/=l)*k*k*k+j},easeOutStrong:function(k,j,m,l){return-m*((k=k/l-1)*k*k*k-1)+j},easeBothStrong:function(k,j,m,l){return((k/=l/2)<1)?m/2*k*k*k*k+j:-m/2*((k-=2)*k*k*k-2)+j},elasticIn:function(l,j,q,o,k,n){if(l==0||(l/=o)==1){return l==0?j:j+q}n=n||(o*0.3);var m;if(k>=d(q)){m=n/(2*i)*h(q/k)}else{k=q;m=n/4}return-(k*g(2,10*(l-=1))*e((l*o-m)*(2*i)/n))+j},elasticOut:function(l,j,q,o,k,n){if(l==0||(l/=o)==1){return l==0?j:j+q}n=n||(o*0.3);var m;if(k>=d(q)){m=n/(2*i)*h(q/k)}else{k=q;m=n/4}return k*g(2,-10*l)*e((l*o-m)*(2*i)/n)+q+j},elasticBoth:function(l,j,q,o,k,n){if(l==0||(l/=o/2)==2){return l==0?j:j+q}n=n||(o*(0.3*1.5));var m;if(k>=d(q)){m=n/(2*i)*h(q/k)}else{k=q;m=n/4}return l<1?-0.5*(k*g(2,10*(l-=1))*e((l*o-m)*(2*i)/n))+j:k*g(2,-10*(l-=1))*e((l*o-m)*(2*i)/n)*0.5+q+j},backIn:function(k,j,n,m,l){l=l||1.70158;return n*(k/=m)*k*((l+1)*k-l)+j},backOut:function(k,j,n,m,l){if(!l){l=1.70158}return n*((k=k/m-1)*k*((l+1)*k+l)+1)+j},backBoth:function(k,j,n,m,l){l=l||1.70158;return((k/=m/2)<1)?n/2*(k*k*(((l*=(1.525))+1)*k-l))+j:n/2*((k-=2)*k*(((l*=(1.525))+1)*k+l)+2)+j},bounceIn:function(k,j,m,l){return m-f.Easing.bounceOut(l-k,0,m,l)+j},bounceOut:function(k,j,m,l){if((k/=l)<(1/2.75)){return m*(7.5625*k*k)+j}else{if(k<(2/2.75)){return m*(7.5625*(k-=(1.5/2.75))*k+0.75)+j}else{if(k<(2.5/2.75)){return m*(7.5625*(k-=(2.25/2.75))*k+0.9375)+j}}}return m*(7.5625*(k-=(2.625/2.75))*k+0.984375)+j},bounceBoth:function(k,j,m,l){return(k<l/2)?f.Easing.bounceIn(k*2,0,m,l)*0.5+j:f.Easing.bounceOut(k*2-l,0,m,l)*0.5+m*0.5+j}})})();(function(){var h=Ext.lib;h.Anim.color=function(p,n,q,r,m,o){return h.Anim.run(p,n,q,r,m,o,h.ColorAnim)};h.ColorAnim=function(n,m,o,p){h.ColorAnim.superclass.constructor.call(this,n,m,o,p)};Ext.extend(h.ColorAnim,h.AnimBase);var j=h.ColorAnim.superclass,i=/color$/i,f=/^transparent|rgba\(0, 0, 0, 0\)$/,l=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,d=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,e=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i,g=function(m){return typeof m!=="undefined"};function k(n){var p=parseInt,o,m=null,q;if(n.length==3){return n}Ext.each([d,l,e],function(s,r){o=(r%2==0)?16:10;q=s.exec(n);if(q&&q.length==4){m=[p(q[1],o),p(q[2],o),p(q[3],o)];return false}});return m}Ext.apply(h.ColorAnim.prototype,{getAttr:function(m){var o=this,n=o.el,p;if(i.test(m)){while(n&&f.test(p=Ext.fly(n).getStyle(m))){n=n.parentNode;p="fff"}}else{p=j.getAttr.call(o,m)}return p},doMethod:function(s,m,o){var t=this,n,q=Math.floor,p,r,u;if(i.test(s)){n=[];o=o||[];for(p=0,r=m.length;p<r;p++){u=m[p];n[p]=j.doMethod.call(t,s,u,o[p])}n="rgb("+q(n[0])+","+q(n[1])+","+q(n[2])+")"}else{n=j.doMethod.call(t,s,m,o)}return n},setRunAttr:function(r){var t=this,u=t.attributes[r],v=u.to,s=u.by,n;j.setRunAttr.call(t,r);n=t.runAttrs[r];if(i.test(r)){var m=k(n.start),o=k(n.end);if(!g(v)&&g(s)){o=k(s);for(var p=0,q=m.length;p<q;p++){o[p]=m[p]+o[p]}}n.start=m;n.end=o}}})})();(function(){var d=Ext.lib;d.Anim.scroll=function(j,h,k,l,g,i){return d.Anim.run(j,h,k,l,g,i,d.Scroll)};d.Scroll=function(h,g,i,j){if(h){d.Scroll.superclass.constructor.call(this,h,g,i,j)}};Ext.extend(d.Scroll,d.ColorAnim);var f=d.Scroll.superclass,e="scroll";Ext.apply(d.Scroll.prototype,{doMethod:function(g,m,h){var k,j=this,l=j.curFrame,i=j.totalFrames;if(g==e){k=[j.method(l,m[0],h[0]-m[0],i),j.method(l,m[1],h[1]-m[1],i)]}else{k=f.doMethod.call(j,g,m,h)}return k},getAttr:function(g){var h=this;if(g==e){return[h.el.scrollLeft,h.el.scrollTop]}else{return f.getAttr.call(h,g)}},setAttr:function(g,j,i){var h=this;if(g==e){h.el.scrollLeft=j[0];h.el.scrollTop=j[1]}else{f.setAttr.call(h,g,j,i)}}})})();if(Ext.isIE){function a(){var d=Function.prototype;delete d.createSequence;delete d.defer;delete d.createDelegate;delete d.createCallback;delete d.createInterceptor;window.detachEvent("onunload",a)}window.attachEvent("onunload",a)}})();;
/*ext-all.js*/
Ext.DomHelper=function(){var w=null,k=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,m=/^table|tbody|tr|td$/i,d=/tag|children|cn|html$/i,s=/td|tr|tbody/i,o=/([a-z0-9-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,u=/end/i,r,n="afterbegin",p="afterend",c="beforebegin",q="beforeend",a="<table>",i="</table>",b=a+"<tbody>",j="</tbody>"+i,l=b+"<tr>",v="</tr>"+j;function h(A,C,B,D,z,x){var y=r.insertHtml(D,Ext.getDom(A),t(C));return B?Ext.get(y,true):y}function t(C){var y="",x,B,A,D;if(typeof C=="string"){y=C}else{if(Ext.isArray(C)){for(var z=0;z<C.length;z++){if(C[z]){y+=t(C[z])}}}else{y+="<"+(C.tag=C.tag||"div");for(x in C){B=C[x];if(!d.test(x)){if(typeof B=="object"){y+=" "+x+'="';for(A in B){y+=A+":"+B[A]+";"}y+='"'}else{y+=" "+({cls:"class",htmlFor:"for"}[x]||x)+'="'+B+'"'}}}if(k.test(C.tag)){y+="/>"}else{y+=">";if((D=C.children||C.cn)){y+=t(D)}else{if(C.html){y+=C.html}}y+="</"+C.tag+">"}}}return y}function g(E,B,A,C){w.innerHTML=[B,A,C].join("");var x=-1,z=w,y;while(++x<E){z=z.firstChild}if(y=z.nextSibling){var D=document.createDocumentFragment();while(z){y=z.nextSibling;D.appendChild(z);z=y}z=D}return z}function e(x,y,A,z){var B,C;w=w||document.createElement("div");if(x=="td"&&(y==n||y==q)||!s.test(x)&&(y==c||y==p)){return}C=y==c?A:y==p?A.nextSibling:y==n?A.firstChild:null;if(y==c||y==p){A=A.parentNode}if(x=="td"||(x=="tr"&&(y==q||y==n))){B=g(4,l,z,v)}else{if((x=="tbody"&&(y==q||y==n))||(x=="tr"&&(y==c||y==p))){B=g(3,b,z,j)}else{B=g(2,a,z,i)}}A.insertBefore(B,C);return B}r={markup:function(x){return t(x)},applyStyles:function(x,y){if(y){var z;x=Ext.fly(x);if(typeof y=="function"){y=y.call()}if(typeof y=="string"){while((z=o.exec(y))){x.setStyle(z[1],z[2])}}else{if(typeof y=="object"){x.setStyle(y)}}}},insertHtml:function(C,x,D){var B={},z,F,E,G,A,y;C=C.toLowerCase();B[c]=["BeforeBegin","previousSibling"];B[p]=["AfterEnd","nextSibling"];if(x.insertAdjacentHTML){if(m.test(x.tagName)&&(y=e(x.tagName.toLowerCase(),C,x,D))){return y}B[n]=["AfterBegin","firstChild"];B[q]=["BeforeEnd","lastChild"];if((z=B[C])){x.insertAdjacentHTML(z[0],D);return x[z[1]]}}else{E=x.ownerDocument.createRange();F="setStart"+(u.test(C)?"After":"Before");if(B[C]){E[F](x);G=E.createContextualFragment(D);x.parentNode.insertBefore(G,C==c?x:x.nextSibling);return x[(C==c?"previous":"next")+"Sibling"]}else{A=(C==n?"first":"last")+"Child";if(x.firstChild){E[F](x[A]);G=E.createContextualFragment(D);if(C==n){x.insertBefore(G,x.firstChild)}else{x.appendChild(G)}}else{x.innerHTML=D}return x[A]}}throw'Illegal insertion point -> "'+C+'"'},insertBefore:function(x,z,y){return h(x,z,y,c)},insertAfter:function(x,z,y){return h(x,z,y,p,"nextSibling")},insertFirst:function(x,z,y){return h(x,z,y,n,"firstChild")},append:function(x,z,y){return h(x,z,y,q,"",true)},overwrite:function(x,z,y){x=Ext.getDom(x);x.innerHTML=t(z);return y?Ext.get(x.firstChild):x.firstChild},createHtml:t};return r}();Ext.apply(Ext.DomHelper,function(){var e,a="afterbegin",h="afterend",i="beforebegin",d="beforeend",b=/tag|children|cn|html$/i;function g(m,p,n,q,l,j){m=Ext.getDom(m);var k;if(e.useDom){k=c(p,null);if(j){m.appendChild(k)}else{(l=="firstChild"?m:m.parentNode).insertBefore(k,m[l]||m)}}else{k=Ext.DomHelper.insertHtml(q,m,Ext.DomHelper.createHtml(p))}return n?Ext.get(k,true):k}function c(j,r){var k,u=document,p,s,m,t;if(Ext.isArray(j)){k=u.createDocumentFragment();for(var q=0,n=j.length;q<n;q++){c(j[q],k)}}else{if(typeof j=="string"){k=u.createTextNode(j)}else{k=u.createElement(j.tag||"div");p=!!k.setAttribute;for(var s in j){if(!b.test(s)){m=j[s];if(s=="cls"){k.className=m}else{if(p){k.setAttribute(s,m)}else{k[s]=m}}}}Ext.DomHelper.applyStyles(k,j.style);if((t=j.children||j.cn)){c(t,k)}else{if(j.html){k.innerHTML=j.html}}}}if(r){r.appendChild(k)}return k}e={createTemplate:function(k){var j=Ext.DomHelper.createHtml(k);return new Ext.Template(j)},useDom:false,insertBefore:function(j,l,k){return g(j,l,k,i)},insertAfter:function(j,l,k){return g(j,l,k,h,"nextSibling")},insertFirst:function(j,l,k){return g(j,l,k,a,"firstChild")},append:function(j,l,k){return g(j,l,k,d,"",true)},createDom:c};return e}());Ext.Template=function(h){var j=this,c=arguments,e=[],d;if(Ext.isArray(h)){h=h.join("")}else{if(c.length>1){for(var g=0,b=c.length;g<b;g++){d=c[g];if(typeof d=="object"){Ext.apply(j,d)}else{e.push(d)}}h=e.join("")}}j.html=h;if(j.compiled){j.compile()}};Ext.Template.prototype={re:/\{([\w-]+)\}/g,applyTemplate:function(a){var b=this;return b.compiled?b.compiled(a):b.html.replace(b.re,function(c,d){return a[d]!==undefined?a[d]:""})},set:function(a,c){var b=this;b.html=a;b.compiled=null;return c?b.compile():b},compile:function(){var me=this,sep=Ext.isGecko?"+":",";function fn(m,name){name="values['"+name+"']";return"'"+sep+"("+name+" == undefined ? '' : "+name+")"+sep+"'"}eval("this.compiled = function(values){ return "+(Ext.isGecko?"'":"['")+me.html.replace(/\\/g,"\\\\").replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn)+(Ext.isGecko?"';};":"'].join('');};"));return me},insertFirst:function(b,a,c){return this.doInsert("afterBegin",b,a,c)},insertBefore:function(b,a,c){return this.doInsert("beforeBegin",b,a,c)},insertAfter:function(b,a,c){return this.doInsert("afterEnd",b,a,c)},append:function(b,a,c){return this.doInsert("beforeEnd",b,a,c)},doInsert:function(c,e,b,a){e=Ext.getDom(e);var d=Ext.DomHelper.insertHtml(c,e,this.applyTemplate(b));return a?Ext.get(d,true):d},overwrite:function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.applyTemplate(a);return c?Ext.get(b.firstChild,true):b.firstChild}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.Template.from=function(b,a){b=Ext.getDom(b);return new Ext.Template(b.value||b.innerHTML,a||"")};Ext.apply(Ext.Template.prototype,{disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,argsRe:/^\s*['"](.*)["']\s*$/,compileARe:/\\/g,compileBRe:/(\r\n|\n)/g,compileCRe:/'/g,applyTemplate:function(b){var g=this,a=g.disableFormats!==true,e=Ext.util.Format,c=g;if(g.compiled){return g.compiled(b)}function d(j,l,p,k){if(p&&a){if(p.substr(0,5)=="this."){return c.call(p.substr(5),b[l],b)}else{if(k){var o=g.argsRe;k=k.split(",");for(var n=0,h=k.length;n<h;n++){k[n]=k[n].replace(o,"$1")}k=[b[l]].concat(k)}else{k=[b[l]]}return e[p].apply(e,k)}}else{return b[l]!==undefined?b[l]:""}}return g.html.replace(g.re,d)},compile:function(){var me=this,fm=Ext.util.Format,useF=me.disableFormats!==true,sep=Ext.isGecko?"+":",",body;function fn(m,name,format,args){if(format&&useF){args=args?","+args:"";if(format.substr(0,5)!="this."){format="fm."+format+"("}else{format='this.call("'+format.substr(5)+'", ';args=", values"}}else{args="";format="(values['"+name+"'] == undefined ? '' : "}return"'"+sep+format+"values['"+name+"']"+args+")"+sep+"'"}if(Ext.isGecko){body="this.compiled = function(values){ return '"+me.html.replace(me.compileARe,"\\\\").replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn)+"';};"}else{body=["this.compiled = function(values){ return ['"];body.push(me.html.replace(me.compileARe,"\\\\").replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn));body.push("'].join('');};");body=body.join("")}eval(body);return me},call:function(c,b,a){return this[c](b,a)}});Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomQuery=function(){var cache={},simpleCache={},valueCache={},nonSpace=/\S/,trimRe=/^\s+|\s+$/g,tplRe=/\{(\d+)\}/g,modeRe=/^(\s?[\/>+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w-\*]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,isIE=window.ActiveXObject?true:false,key=30803;eval("var batch = 30803;");function child(parent,index){var i=0,n=parent.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(parent){var n=parent.firstChild,nodeIndex=-1,nextNode;while(n){nextNode=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){parent.removeChild(n)}else{n.nodeIndex=++nodeIndex}n=nextNode}return this}function byClassName(nodeSet,cls){if(!cls){return nodeSet}var result=[],ri=-1;for(var i=0,ci;ci=nodeSet[i];i++){if((" "+ci.className+" ").indexOf(cls)!=-1){result[++ri]=ci}}return result}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName=="*"){result[++ri]=n}}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i<l;i++){a[a.length]=b[i]}return a}function byTag(cs,tagName){if(cs.tagName||cs==document){cs=[cs]}if(!tagName){return cs}var result=[],ri=-1;tagName=tagName.toLowerCase();for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&&ci.tagName.toLowerCase()==tagName){result[++ri]=ci}}return result}function byId(cs,id){if(cs.tagName||cs==document){cs=[cs]}if(!id){return cs}var result=[],ri=-1;for(var i=0,ci;ci=cs[i];i++){if(ci&&ci.id==id){result[++ri]=ci;return result}}return result}function byAttribute(cs,attr,value,op,custom){var result=[],ri=-1,useGetStyle=custom=="{",fn=Ext.DomQuery.operators[op],a,xml,hasXml;for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType!=1){continue}if(!hasXml){xml=Ext.DomQuery.isXml(ci);hasXml=true}if(!xml){if(useGetStyle){a=Ext.DomQuery.getStyle(ci,attr)}else{if(attr=="class"||attr=="className"){a=ci.className}else{if(attr=="for"){a=ci.htmlFor}else{if(attr=="href"){a=ci.getAttribute("href",2)}else{a=ci.getAttribute(attr)}}}}}else{a=ci.getAttribute(attr)}if((fn&&fn(a,value))||(!fn&&a)){result[++ri]=ci}}return result}function byPseudo(cs,name,value){return Ext.DomQuery.pseudos[name](cs,value)}function nodupIEXml(cs){var d=++key,r;cs[0].setAttribute("_nodup",d);r=[cs[0]];for(var i=1,len=cs.length;i<len;i++){var c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c}}for(var i=0,len=cs.length;i<len;i++){cs[i].removeAttribute("_nodup")}return r}function nodup(cs){if(!cs){return[]}var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!="undefined"||len==1){return cs}if(isIE&&typeof cs[0].selectSingleNode!="undefined"){return nodupIEXml(cs)}var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d}else{r=[];for(var j=0;j<i;j++){r[++ri]=cs[j]}for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj}}return r}}return r}function quickDiffIEXml(c1,c2){var d=++key,r=[];for(var i=0,len=c1.length;i<len;i++){c1[i].setAttribute("_qdiff",d)}for(var i=0,len=c2.length;i<len;i++){if(c2[i].getAttribute("_qdiff")!=d){r[r.length]=c2[i]}}for(var i=0,len=c1.length;i<len;i++){c1[i].removeAttribute("_qdiff")}return r}function quickDiff(c1,c2){var len1=c1.length,d=++key,r=[];if(!len1){return c2}if(isIE&&typeof c1[0].selectSingleNode!="undefined"){return quickDiffIEXml(c1,c2)}for(var i=0;i<len1;i++){c1[i]._qdiff=d}for(var i=0,len=c2.length;i<len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i]}}return r}function quickId(ns,mode,root,id){if(ns==root){var d=root.ownerDocument||root;return d.getElementById(id)}ns=getNodes(ns,mode,"*");return byId(ns,id)}return{getStyle:function(el,name){return Ext.fly(el).getStyle(name)},compile:function(path,type){type=type||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"],mode,lastPath,matchers=Ext.DomQuery.matchers,matchersLn=matchers.length,modeMatch,lmode=path.match(modeRe);if(lmode&&lmode[1]){fn[fn.length]='mode="'+lmode[1].replace(trimRe,"")+'";';path=path.replace(lmode[1],"")}while(path.substr(0,1)=="/"){path=path.substr(1)}while(path&&lastPath!=path){lastPath=path;var tokenMatch=path.match(tagTokenRe);if(type=="select"){if(tokenMatch){if(tokenMatch[1]=="#"){fn[fn.length]='n = quickId(n, mode, root, "'+tokenMatch[2]+'");'}else{fn[fn.length]='n = getNodes(n, mode, "'+tokenMatch[2]+'");'}path=path.replace(tokenMatch[0],"")}else{if(path.substr(0,1)!="@"){fn[fn.length]='n = getNodes(n, mode, "*");'}}}else{if(tokenMatch){if(tokenMatch[1]=="#"){fn[fn.length]='n = byId(n, "'+tokenMatch[2]+'");'}else{fn[fn.length]='n = byTag(n, "'+tokenMatch[2]+'");'}path=path.replace(tokenMatch[0],"")}}while(!(modeMatch=path.match(modeRe))){var matched=false;for(var j=0;j<matchersLn;j++){var t=matchers[j];var m=path.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i]});path=path.replace(m[0],"");matched=true;break}}if(!matched){throw'Error parsing selector, parsing failed at "'+path+'"'}}if(modeMatch[1]){fn[fn.length]='mode="'+modeMatch[1].replace(trimRe,"")+'";';path=path.replace(modeMatch[1],"")}}fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f},jsSelect:function(path,root,type){root=root||document;if(typeof root=="string"){root=document.getElementById(root)}var paths=path.split(","),results=[];for(var i=0,len=paths.length;i<len;i++){var subPath=paths[i].replace(trimRe,"");if(!cache[subPath]){cache[subPath]=Ext.DomQuery.compile(subPath);if(!cache[subPath]){throw subPath+" is not a valid selector"}}var result=cache[subPath](root);if(result&&result!=document){results=results.concat(result)}}if(paths.length>1){return nodup(results)}return results},isXml:function(el){var docEl=(el?el.ownerDocument||el:0).documentElement;return docEl?docEl.nodeName!=="HTML":false},select:document.querySelectorAll?function(path,root,type){root=root||document;if(!Ext.DomQuery.isXml(root)){try{var cs=root.querySelectorAll(path);return Ext.toArray(cs)}catch(ex){}}return Ext.DomQuery.jsSelect.call(this,path,root,type)}:function(path,root,type){return Ext.DomQuery.jsSelect.call(this,path,root,type)},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize=="function"){n.normalize()}v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:'n = byClassName(n, " {1} ");'},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'},{re:/^#([\w-]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1,m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a),f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},empty:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},contains:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci}}return r},nodeValue:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},checked:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split("|"),r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},odd:function(c){return this["nth-child"](c,"odd")},even:function(c){return this["nth-child"](c,"even")},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select;Ext.util.DelayedTask=function(d,c,a){var e=this,g,b=function(){clearInterval(g);g=null;d.apply(c,a||[])};e.delay=function(i,k,j,h){e.cancel();d=k||d;c=j||c;a=h||a;g=setInterval(b,i)};e.cancel=function(){if(g){clearInterval(g);g=null}}};(function(){var h=Ext.util,j=Ext.each,g=true,i=false;h.Observable=function(){var k=this,l=k.events;if(k.listeners){k.on(k.listeners);delete k.listeners}k.events=l||{}};h.Observable.prototype={filterOptRe:/^(?:scope|delay|buffer|single)$/,fireEvent:function(){var k=Array.prototype.slice.call(arguments,0),m=k[0].toLowerCase(),n=this,l=g,p=n.events[m],s,o,r;if(n.eventsSuspended===g){if(o=n.eventQueue){o.push(k)}}else{if(typeof p=="object"){if(p.bubble){if(p.fire.apply(p,k.slice(1))===i){return i}r=n.getBubbleTarget&&n.getBubbleTarget();if(r&&r.enableBubble){s=r.events[m];if(!s||typeof s!="object"||!s.bubble){r.enableBubble(m)}return r.fireEvent.apply(r,k)}}else{k.shift();l=p.fire.apply(p,k)}}}return l},addListener:function(k,m,l,r){var n=this,q,s,p;if(typeof k=="object"){r=k;for(q in r){s=r[q];if(!n.filterOptRe.test(q)){n.addListener(q,s.fn||s,s.scope||r.scope,s.fn?s:r)}}}else{k=k.toLowerCase();p=n.events[k]||g;if(typeof p=="boolean"){n.events[k]=p=new h.Event(n,k)}p.addListener(m,l,typeof r=="object"?r:{})}},removeListener:function(k,m,l){var n=this.events[k.toLowerCase()];if(typeof n=="object"){n.removeListener(m,l)}},purgeListeners:function(){var m=this.events,k,l;for(l in m){k=m[l];if(typeof k=="object"){k.clearListeners()}}},addEvents:function(n){var m=this;m.events=m.events||{};if(typeof n=="string"){var k=arguments,l=k.length;while(l--){m.events[k[l]]=m.events[k[l]]||g}}else{Ext.applyIf(m.events,n)}},hasListener:function(k){var l=this.events[k.toLowerCase()];return typeof l=="object"&&l.listeners.length>0},suspendEvents:function(k){this.eventsSuspended=g;if(k&&!this.eventQueue){this.eventQueue=[]}},resumeEvents:function(){var k=this,l=k.eventQueue||[];k.eventsSuspended=i;delete k.eventQueue;j(l,function(m){k.fireEvent.apply(k,m)})}};var d=h.Observable.prototype;d.on=d.addListener;d.un=d.removeListener;h.Observable.releaseCapture=function(k){k.fireEvent=d.fireEvent};function e(l,m,k){return function(){if(m.target==arguments[0]){l.apply(k,Array.prototype.slice.call(arguments,0))}}}function b(n,p,k,m){k.task=new h.DelayedTask();return function(){k.task.delay(p.buffer,n,m,Array.prototype.slice.call(arguments,0))}}function c(m,n,l,k){return function(){n.removeListener(l,k);return m.apply(k,arguments)}}function a(n,p,k,m){return function(){var l=new h.DelayedTask();if(!k.tasks){k.tasks=[]}k.tasks.push(l);l.delay(p.delay||10,n,m,Array.prototype.slice.call(arguments,0))}}h.Event=function(l,k){this.name=k;this.obj=l;this.listeners=[]};h.Event.prototype={addListener:function(o,n,m){var p=this,k;n=n||p.obj;if(!p.isListening(o,n)){k=p.createListener(o,n,m);if(p.firing){p.listeners=p.listeners.slice(0)}p.listeners.push(k)}},createListener:function(p,n,q){q=q||{};n=n||this.obj;var k={fn:p,scope:n,options:q},m=p;if(q.target){m=e(m,q,n)}if(q.delay){m=a(m,q,k,n)}if(q.single){m=c(m,this,p,n)}if(q.buffer){m=b(m,q,k,n)}k.fireFn=m;return k},findListener:function(o,n){var p=this.listeners,m=p.length,k;n=n||this.obj;while(m--){k=p[m];if(k){if(k.fn==o&&k.scope==n){return m}}}return-1},isListening:function(l,k){return this.findListener(l,k)!=-1},removeListener:function(r,q){var p,m,n,s=this,o=i;if((p=s.findListener(r,q))!=-1){if(s.firing){s.listeners=s.listeners.slice(0)}m=s.listeners[p];if(m.task){m.task.cancel();delete m.task}n=m.tasks&&m.tasks.length;if(n){while(n--){m.tasks[n].cancel()}delete m.tasks}s.listeners.splice(p,1);o=g}return o},clearListeners:function(){var n=this,k=n.listeners,m=k.length;while(m--){n.removeListener(k[m].fn,k[m].scope)}},fire:function(){var q=this,p=q.listeners,k=p.length,o=0,m;if(k>0){q.firing=g;var n=Array.prototype.slice.call(arguments,0);for(;o<k;o++){m=p[o];if(m&&m.fireFn.apply(m.scope||q.obj||window,n)===i){return(q.firing=i)}}}q.firing=i;return g}}})();Ext.apply(Ext.util.Observable.prototype,function(){function a(j){var i=(this.methodEvents=this.methodEvents||{})[j],d,c,g,h=this;if(!i){this.methodEvents[j]=i={};i.originalFn=this[j];i.methodName=j;i.before=[];i.after=[];var b=function(l,k,e){if((c=l.apply(k||h,e))!==undefined){if(typeof c=="object"){if(c.returnValue!==undefined){d=c.returnValue}else{d=c}g=!!c.cancel}else{if(c===false){g=true}else{d=c}}}};this[j]=function(){var l=Array.prototype.slice.call(arguments,0),k;d=c=undefined;g=false;for(var m=0,e=i.before.length;m<e;m++){k=i.before[m];b(k.fn,k.scope,l);if(g){return d}}if((c=i.originalFn.apply(h,l))!==undefined){d=c}for(var m=0,e=i.after.length;m<e;m++){k=i.after[m];b(k.fn,k.scope,l);if(g){return d}}return d}}return i}return{beforeMethod:function(d,c,b){a.call(this,d).before.push({fn:c,scope:b})},afterMethod:function(d,c,b){a.call(this,d).after.push({fn:c,scope:b})},removeMethodListener:function(j,g,d){var h=this.getMethodEvent(j);for(var c=0,b=h.before.length;c<b;c++){if(h.before[c].fn==g&&h.before[c].scope==d){h.before.splice(c,1);return}}for(var c=0,b=h.after.length;c<b;c++){if(h.after[c].fn==g&&h.after[c].scope==d){h.after.splice(c,1);return}}},relayEvents:function(j,e){var h=this;function g(i){return function(){return h.fireEvent.apply(h,[i].concat(Array.prototype.slice.call(arguments,0)))}}for(var d=0,b=e.length;d<b;d++){var c=e[d];h.events[c]=h.events[c]||true;j.on(c,g(c),h)}},enableBubble:function(e){var g=this;if(!Ext.isEmpty(e)){e=Ext.isArray(e)?e:Array.prototype.slice.call(arguments,0);for(var d=0,b=e.length;d<b;d++){var c=e[d];c=c.toLowerCase();var h=g.events[c]||true;if(typeof h=="boolean"){h=new Ext.util.Event(g,c);g.events[c]=h}h.bubble=true}}}}}());Ext.util.Observable.capture=function(c,b,a){c.fireEvent=c.fireEvent.createInterceptor(b,a)};Ext.util.Observable.observeClass=function(b,a){if(b){if(!b.fireEvent){Ext.apply(b,new Ext.util.Observable());Ext.util.Observable.capture(b.prototype,b.fireEvent,b)}if(typeof a=="object"){b.on(a)}return b}};Ext.EventManager=function(){var z,p,j=false,l=Ext.isGecko||Ext.isWebKit||Ext.isSafari,o=Ext.lib.Event,q=Ext.lib.Dom,c=document,A=window,r="DOMContentLoaded",t="complete",g=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,u=[];function n(E){var H=false,D=0,C=u.length,H=false,F=false,G;if(E){if(E.getElementById||E.navigator){for(;D<C;++D){G=u[D];if(G.el===E){H=G.id;break}}if(!H){H=Ext.id(E);u.push({id:H,el:E});F=true}}else{H=Ext.id(E)}if(!Ext.elCache[H]){Ext.Element.addToCache(new Ext.Element(E),H);if(F){Ext.elCache[H].skipGC=true}}}return H}function m(E,G,J,F,D,L){E=Ext.getDom(E);var C=n(E),K=Ext.elCache[C].events,H;H=o.on(E,G,D);K[G]=K[G]||[];K[G].push([J,D,L,H,F]);if(E.addEventListener&&G=="mousewheel"){var I=["DOMMouseScroll",D,false];E.addEventListener.apply(E,I);Ext.EventManager.addListener(A,"unload",function(){E.removeEventListener.apply(E,I)})}if(E==c&&G=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.addListener(D)}}function d(){if(window!=top){return false}try{c.documentElement.doScroll("left")}catch(C){return false}b();return true}function B(C){if(Ext.isIE&&d()){return true}if(c.readyState==t){b();return true}j||(p=setTimeout(arguments.callee,2));return false}var k;function i(C){k||(k=Ext.query("style, link[rel=stylesheet]"));if(k.length==c.styleSheets.length){b();return true}j||(p=setTimeout(arguments.callee,2));return false}function y(C){c.removeEventListener(r,arguments.callee,false);i()}function b(C){if(!j){j=true;if(p){clearTimeout(p)}if(l){c.removeEventListener(r,b,false)}if(Ext.isIE&&B.bindIE){c.detachEvent("onreadystatechange",B)}o.un(A,"load",arguments.callee)}if(z&&!Ext.isReady){Ext.isReady=true;z.fire();z.listeners=[]}}function a(){z||(z=new Ext.util.Event());if(l){c.addEventListener(r,b,false)}if(Ext.isIE){if(!B()){B.bindIE=true;c.attachEvent("onreadystatechange",B)}}else{if(Ext.isOpera){(c.readyState==t&&i())||c.addEventListener(r,y,false)}else{if(Ext.isWebKit){B()}}}o.on(A,"load",b)}function x(C,D){return function(){var E=Ext.toArray(arguments);if(D.target==Ext.EventObject.setEvent(E[0]).target){C.apply(this,E)}}}function w(D,E,C){return function(F){C.delay(E.buffer,D,null,[new Ext.EventObjectImpl(F)])}}function s(G,F,C,E,D){return function(H){Ext.EventManager.removeListener(F,C,E,D);G(H)}}function e(D,E,C){return function(G){var F=new Ext.util.DelayedTask(D);if(!C.tasks){C.tasks=[]}C.tasks.push(F);F.delay(E.delay||10,D,null,[new Ext.EventObjectImpl(G)])}}function h(H,G,C,J,K){var D=(!C||typeof C=="boolean")?{}:C,E=Ext.getDom(H),F;J=J||D.fn;K=K||D.scope;if(!E){throw'Error listening for "'+G+'". Element "'+H+"\" doesn't exist."}function I(M){if(!Ext){return}M=Ext.EventObject.setEvent(M);var L;if(D.delegate){if(!(L=M.getTarget(D.delegate,E))){return}}else{L=M.target}if(D.stopEvent){M.stopEvent()}if(D.preventDefault){M.preventDefault()}if(D.stopPropagation){M.stopPropagation()}if(D.normalized){M=M.browserEvent}J.call(K||E,M,L,D)}if(D.target){I=x(I,D)}if(D.delay){I=e(I,D,J)}if(D.single){I=s(I,E,G,J,K)}if(D.buffer){F=new Ext.util.DelayedTask(I);I=w(I,D,F)}m(E,G,J,F,I,K);return I}var v={addListener:function(E,C,G,F,D){if(typeof C=="object"){var J=C,H,I;for(H in J){I=J[H];if(!g.test(H)){if(Ext.isFunction(I)){h(E,H,J,I,J.scope)}else{h(E,H,I)}}}}else{h(E,C,D,G,F)}},removeListener:function(E,I,M,N){E=Ext.getDom(E);var C=n(E),K=E&&(Ext.elCache[C].events)[I]||[],D,H,F,G,J,L;for(H=0,J=K.length;H<J;H++){if(Ext.isArray(L=K[H])&&L[0]==M&&(!N||L[2]==N)){if(L[4]){L[4].cancel()}G=M.tasks&&M.tasks.length;if(G){while(G--){M.tasks[G].cancel()}delete M.tasks}D=L[1];o.un(E,I,o.extAdapter?L[3]:D);if(D&&E.addEventListener&&I=="mousewheel"){E.removeEventListener("DOMMouseScroll",D,false)}if(D&&E==c&&I=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.removeListener(D)}K.splice(H,1);if(K.length===0){delete Ext.elCache[C].events[I]}for(G in Ext.elCache[C].events){return false}Ext.elCache[C].events={};return false}}},removeAll:function(E){E=Ext.getDom(E);var D=n(E),J=Ext.elCache[D]||{},M=J.events||{},I,H,K,F,L,G,C;for(F in M){if(M.hasOwnProperty(F)){I=M[F];for(H=0,K=I.length;H<K;H++){L=I[H];if(L[4]){L[4].cancel()}if(L[0].tasks&&(G=L[0].tasks.length)){while(G--){L[0].tasks[G].cancel()}delete L.tasks}C=L[1];o.un(E,F,o.extAdapter?L[3]:C);if(E.addEventListener&&C&&F=="mousewheel"){E.removeEventListener("DOMMouseScroll",C,false)}if(C&&E==c&&F=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.removeListener(C)}}}}if(Ext.elCache[D]){Ext.elCache[D].events={}}},getListeners:function(F,C){F=Ext.getDom(F);var H=n(F),D=Ext.elCache[H]||{},G=D.events||{},E=[];if(G&&G[C]){return G[C]}else{return null}},purgeElement:function(E,C,G){E=Ext.getDom(E);var D=n(E),J=Ext.elCache[D]||{},K=J.events||{},F,I,H;if(G){if(K&&K.hasOwnProperty(G)){I=K[G];for(F=0,H=I.length;F<H;F++){Ext.EventManager.removeListener(E,G,I[F][0])}}}else{Ext.EventManager.removeAll(E)}if(C&&E&&E.childNodes){for(F=0,H=E.childNodes.length;F<H;F++){Ext.EventManager.purgeElement(E.childNodes[F],C,G)}}},_unload:function(){var C;for(C in Ext.elCache){Ext.EventManager.removeAll(C)}delete Ext.elCache;delete Ext.Element._flyweights;var G,D,F,E=Ext.lib.Ajax;(typeof E.conn=="object")?D=E.conn:D={};for(F in D){G=D[F];if(G){E.abort({conn:G,tId:F})}}},onDocumentReady:function(E,D,C){if(Ext.isReady){z||(z=new Ext.util.Event());z.addListener(E,D,C);z.fire();z.listeners=[]}else{if(!z){a()}C=C||{};C.delay=C.delay||1;z.addListener(E,D,C)}},fireDocReady:b};v.on=v.addListener;v.un=v.removeListener;v.stoppedMouseDownEvent=new Ext.util.Event();return v}();Ext.onReady=Ext.EventManager.onDocumentReady;(function(){var a=function(){var c=document.body||document.getElementsByTagName("body")[0];if(!c){return false}var b=[" ",Ext.isIE?"ext-ie "+(Ext.isIE6?"ext-ie6":(Ext.isIE7?"ext-ie7":"ext-ie8")):Ext.isGecko?"ext-gecko "+(Ext.isGecko2?"ext-gecko2":"ext-gecko3"):Ext.isOpera?"ext-opera":Ext.isWebKit?"ext-webkit":""];if(Ext.isSafari){b.push("ext-safari "+(Ext.isSafari2?"ext-safari2":(Ext.isSafari3?"ext-safari3":"ext-safari4")))}else{if(Ext.isChrome){b.push("ext-chrome")}}if(Ext.isMac){b.push("ext-mac")}if(Ext.isLinux){b.push("ext-linux")}if(Ext.isStrict||Ext.isBorderBox){var d=c.parentNode;if(d){d.className+=Ext.isStrict?" ext-strict":" ext-border-box"}}c.className+=b.join(" ");return true};if(!a()){Ext.onReady(a)}})();Ext.EventObject=function(){var b=Ext.lib.Event,c=/(dbl)?click/,a={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},d=Ext.isIE?{1:0,4:1,2:2}:(Ext.isWebKit?{1:0,2:1,3:2}:{0:0,1:1,2:2});Ext.EventObjectImpl=function(g){if(g){this.setEvent(g.browserEvent||g)}};Ext.EventObjectImpl.prototype={setEvent:function(h){var g=this;if(h==g||(h&&h.browserEvent)){return h}g.browserEvent=h;if(h){g.button=h.button?d[h.button]:(h.which?h.which-1:-1);if(c.test(h.type)&&g.button==-1){g.button=0}g.type=h.type;g.shiftKey=h.shiftKey;g.ctrlKey=h.ctrlKey||h.metaKey||false;g.altKey=h.altKey;g.keyCode=h.keyCode;g.charCode=h.charCode;g.target=b.getTarget(h);g.xy=b.getXY(h)}else{g.button=-1;g.shiftKey=false;g.ctrlKey=false;g.altKey=false;g.keyCode=0;g.charCode=0;g.target=null;g.xy=[0,0]}return g},stopEvent:function(){var e=this;if(e.browserEvent){if(e.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(e)}b.stopEvent(e.browserEvent)}},preventDefault:function(){if(this.browserEvent){b.preventDefault(this.browserEvent)}},stopPropagation:function(){var e=this;if(e.browserEvent){if(e.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(e)}b.stopPropagation(e.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(e){return Ext.isSafari?(a[e]||e):e},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getXY:function(){return this.xy},getTarget:function(g,h,e){return g?Ext.fly(this.target).findParent(g,h,e):(e?Ext.get(this.target):this.target)},getRelatedTarget:function(){return this.browserEvent?b.getRelatedTarget(this.browserEvent):null},getWheelDelta:function(){var g=this.browserEvent;var h=0;if(g.wheelDelta){h=g.wheelDelta/120}else{if(g.detail){h=-g.detail/3}}return h},within:function(h,i,e){if(h){var g=this[i?"getRelatedTarget":"getTarget"]();return g&&((e?(g==Ext.getDom(h)):false)||Ext.fly(h).contains(g))}return false}};return new Ext.EventObjectImpl()}();Ext.apply(Ext.EventManager,function(){var c,j,e,b,a=Ext.lib.Dom,i=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,h=0,g=0,d=Ext.isWebKit?Ext.num(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1])>=525:!((Ext.isGecko&&!Ext.isWindows)||Ext.isOpera);return{doResizeEvent:function(){var l=a.getViewHeight(),k=a.getViewWidth();if(g!=l||h!=k){c.fire(h=k,g=l)}},onWindowResize:function(m,l,k){if(!c){c=new Ext.util.Event();j=new Ext.util.DelayedTask(this.doResizeEvent);Ext.EventManager.on(window,"resize",this.fireWindowResize,this)}c.addListener(m,l,k)},fireWindowResize:function(){if(c){j.delay(100)}},onTextResize:function(n,m,k){if(!e){e=new Ext.util.Event();var l=new Ext.Element(document.createElement("div"));l.dom.className="x-text-resize";l.dom.innerHTML="X";l.appendTo(document.body);b=l.dom.offsetHeight;setInterval(function(){if(l.dom.offsetHeight!=b){e.fire(b,b=l.dom.offsetHeight)}},this.textResizeInterval)}e.addListener(n,m,k)},removeResizeListener:function(l,k){if(c){c.removeListener(l,k)}},fireResize:function(){if(c){c.fire(a.getViewWidth(),a.getViewHeight())}},textResizeInterval:50,ieDeferSrc:false,useKeydown:d}}());Ext.EventManager.on=Ext.EventManager.addListener;Ext.apply(Ext.EventObjectImpl.prototype,{BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,CONTROL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGEUP:33,PAGE_DOWN:34,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,isNavKeyPress:function(){var b=this,a=this.normalizeKey(b.keyCode);return(a>=33&&a<=40)||a==b.RETURN||a==b.TAB||a==b.ESC},isSpecialKey:function(){var a=this.normalizeKey(this.keyCode);return(this.type=="keypress"&&this.ctrlKey)||this.isNavKeyPress()||(a==this.BACKSPACE)||(a>=16&&a<=20)||(a>=44&&a<=46)},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1])},hasModifier:function(){return((this.ctrlKey||this.altKey)||this.shiftKey)}});(function(){var h=document;Ext.Element=function(l,m){var n=typeof l=="string"?h.getElementById(l):l,o;if(!n){return null}o=n.id;if(!m&&o&&Ext.elCache[o]){return Ext.elCache[o].el}this.dom=n;this.id=o||Ext.id(n)};var d=Ext.DomHelper,e=Ext.Element,a=Ext.elCache;e.prototype={set:function(q,m){var n=this.dom,l,p,m=(m!==false)&&!!n.setAttribute;for(l in q){if(q.hasOwnProperty(l)){p=q[l];if(l=="style"){d.applyStyles(n,p)}else{if(l=="cls"){n.className=p}else{if(m){n.setAttribute(l,p)}else{n[l]=p}}}}}return this},defaultUnit:"px",is:function(l){return Ext.DomQuery.is(this.dom,l)},focus:function(o,n){var l=this,n=n||l.dom;try{if(Number(o)){l.focus.defer(o,null,[null,n])}else{n.focus()}}catch(m){}return l},blur:function(){try{this.dom.blur()}catch(l){}return this},getValue:function(l){var m=this.dom.value;return l?parseInt(m,10):m},addListener:function(l,o,n,m){Ext.EventManager.on(this.dom,l,o,n||this,m);return this},removeListener:function(l,n,m){Ext.EventManager.removeListener(this.dom,l,n,m||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this},purgeAllListeners:function(){Ext.EventManager.purgeElement(this,true);return this},addUnits:function(l){if(l===""||l=="auto"||l===undefined){l=l||""}else{if(!isNaN(l)||!i.test(l)){l=l+(this.defaultUnit||"px")}}return l},load:function(m,n,l){Ext.Ajax.request(Ext.apply({params:n,url:m.url||m,callback:l,el:this.dom,indicatorText:m.indicatorText||""},Ext.isObject(m)?m:{}));return this},isBorderBox:function(){return g[(this.dom.tagName||"").toLowerCase()]||Ext.isBorderBox},remove:function(){var l=this,m=l.dom;if(m){delete l.dom;Ext.removeNode(m)}},hover:function(m,l,o,n){var p=this;p.on("mouseenter",m,o||p.dom,n);p.on("mouseleave",l,o||p.dom,n);return p},contains:function(l){return!l?false:Ext.lib.Dom.isAncestor(this.dom,l.dom?l.dom:l)},getAttributeNS:function(m,l){return this.getAttribute(l,m)},getAttribute:Ext.isIE?function(l,n){var o=this.dom,m=typeof o[n+":"+l];if(["undefined","unknown"].indexOf(m)==-1){return o[n+":"+l]}return o[l]}:function(l,m){var n=this.dom;return n.getAttributeNS(m,l)||n.getAttribute(m+":"+l)||n.getAttribute(l)||n[l]},update:function(l){if(this.dom){this.dom.innerHTML=l}return this}};var k=e.prototype;e.addMethods=function(l){Ext.apply(k,l)};k.on=k.addListener;k.un=k.removeListener;k.autoBoxAdjust=true;var i=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,c;e.get=function(m){var l,p,o;if(!m){return null}if(typeof m=="string"){if(!(p=h.getElementById(m))){return null}if(a[m]&&a[m].el){l=a[m].el;l.dom=p}else{l=e.addToCache(new e(p))}return l}else{if(m.tagName){if(!(o=m.id)){o=Ext.id(m)}if(a[o]&&a[o].el){l=a[o].el;l.dom=m}else{l=e.addToCache(new e(m))}return l}else{if(m instanceof e){if(m!=c){if(Ext.isIE&&(m.id==undefined||m.id=="")){m.dom=m.dom}else{m.dom=h.getElementById(m.id)||m.dom}}return m}else{if(m.isComposite){return m}else{if(Ext.isArray(m)){return e.select(m)}else{if(m==h){if(!c){var n=function(){};n.prototype=e.prototype;c=new n();c.dom=h}return c}}}}}}return null};e.addToCache=function(l,m){m=m||l.id;a[m]={el:l,data:{},events:{}};return l};e.data=function(m,l,n){m=e.get(m);if(!m){return null}var o=a[m.id].data;if(arguments.length==2){return o[l]}else{return(o[l]=n)}};function j(){if(!Ext.enableGarbageCollector){clearInterval(e.collectorThreadId)}else{var l,n,q,p;for(l in a){p=a[l];if(p.skipGC){continue}n=p.el;q=n.dom;if(!q||!q.parentNode||(!q.offsetParent&&!h.getElementById(l))){if(Ext.enableListenerCollection){Ext.EventManager.removeAll(q)}delete a[l]}}if(Ext.isIE){var m={};for(l in a){m[l]=a[l]}a=Ext.elCache=m}}}e.collectorThreadId=setInterval(j,30000);var b=function(){};b.prototype=e.prototype;e.Flyweight=function(l){this.dom=l};e.Flyweight.prototype=new b();e.Flyweight.prototype.isFlyweight=true;e._flyweights={};e.fly=function(n,l){var m=null;l=l||"_global";if(n=Ext.getDom(n)){(e._flyweights[l]=e._flyweights[l]||new e.Flyweight()).dom=n;m=e._flyweights[l]}return m};Ext.get=e.get;Ext.fly=e.fly;var g=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){g.button=1}})();Ext.Element.addMethods({swallowEvent:function(a,b){var d=this;function c(g){g.stopPropagation();if(b){g.preventDefault()}}if(Ext.isArray(a)){Ext.each(a,function(g){d.on(g,c)});return d}d.on(a,c);return d},relayEvent:function(a,b){this.on(a,function(c){b.fireEvent(a,c)})},clean:function(b){var d=this,e=d.dom,g=e.firstChild,c=-1;if(Ext.Element.data(e,"isCleaned")&&b!==true){return d}while(g){var a=g.nextSibling;if(g.nodeType==3&&!/\S/.test(g.nodeValue)){e.removeChild(g)}else{g.nodeIndex=++c}g=a}Ext.Element.data(e,"isCleaned",true);return d},load:function(){var a=this.getUpdater();a.update.apply(a,arguments);return this},getUpdater:function(){return this.updateManager||(this.updateManager=new Ext.Updater(this))},update:function(html,loadScripts,callback){if(!this.dom){return this}html=html||"";if(loadScripts!==true){this.dom.innerHTML=html;if(typeof callback=="function"){callback()}return this}var id=Ext.id(),dom=this.dom;html+='<span id="'+id+'"></span>';Ext.lib.Event.onAvailable(id,function(){var DOC=document,hd=DOC.getElementsByTagName("head")[0],re=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig,srcRe=/\ssrc=([\'\"])(.*?)\1/i,typeRe=/\stype=([\'\"])(.*?)\1/i,match,attrs,srcMatch,typeMatch,el,s;while((match=re.exec(html))){attrs=match[1];srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){s=DOC.createElement("script");s.src=srcMatch[2];typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}el=DOC.getElementById(id);if(el){Ext.removeNode(el)}if(typeof callback=="function"){callback()}});dom.innerHTML=html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this},removeAllListeners:function(){this.removeAnchor();Ext.EventManager.removeAll(this.dom);return this},createProxy:function(a,e,d){a=(typeof a=="object")?a:{tag:"div",cls:a};var c=this,b=e?Ext.DomHelper.append(e,a,true):Ext.DomHelper.insertBefore(c.dom,a,true);if(d&&c.setBox&&c.getBox){b.setBox(c.getBox())}return b}});Ext.Element.prototype.getUpdateManager=Ext.Element.prototype.getUpdater;Ext.Element.addMethods({getAnchorXY:function(e,l,q){e=(e||"tl").toLowerCase();q=q||{};var k=this,b=k.dom==document.body||k.dom==document,n=q.width||b?Ext.lib.Dom.getViewWidth():k.getWidth(),i=q.height||b?Ext.lib.Dom.getViewHeight():k.getHeight(),p,a=Math.round,c=k.getXY(),m=k.getScroll(),j=b?m.left:!l?c[0]:0,g=b?m.top:!l?c[1]:0,d={c:[a(n*0.5),a(i*0.5)],t:[a(n*0.5),0],l:[0,a(i*0.5)],r:[n,a(i*0.5)],b:[a(n*0.5),i],tl:[0,0],bl:[0,i],br:[n,i],tr:[n,0]};p=d[e];return[p[0]+j,p[1]+g]},anchorTo:function(b,h,c,a,k,l){var i=this,e=i.dom,j=!Ext.isEmpty(k),d=function(){Ext.fly(e).alignTo(b,h,c,a);Ext.callback(l,Ext.fly(e))},g=this.getAnchor();this.removeAnchor();Ext.apply(g,{fn:d,scroll:j});Ext.EventManager.onWindowResize(d,null);if(j){Ext.EventManager.on(window,"scroll",d,null,{buffer:!isNaN(k)?k:50})}d.call(i);return i},removeAnchor:function(){var b=this,a=this.getAnchor();if(a&&a.fn){Ext.EventManager.removeResizeListener(a.fn);if(a.scroll){Ext.EventManager.un(window,"scroll",a.fn)}delete a.fn}return b},getAnchor:function(){var b=Ext.Element.data,c=this.dom;if(!c){return}var a=b(c,"_anchor");if(!a){a=b(c,"_anchor",{})}return a},getAlignToXY:function(g,A,B){g=Ext.get(g);if(!g||!g.dom){throw"Element.alignToXY with an element that doesn't exist"}B=B||[0,0];A=(!A||A=="?"?"tl-bl?":(!/-/.test(A)&&A!==""?"tl-"+A:A||"tl-bl")).toLowerCase();var K=this,H=K.dom,M,L,n,l,s,F,v,t=Ext.lib.Dom.getViewWidth()-10,G=Ext.lib.Dom.getViewHeight()-10,b,i,j,k,u,z,N=document,J=N.documentElement,q=N.body,E=(J.scrollLeft||q.scrollLeft||0)+5,D=(J.scrollTop||q.scrollTop||0)+5,I=false,e="",a="",C=A.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!C){throw"Element.alignTo with an invalid alignment "+A}e=C[1];a=C[2];I=!!C[3];M=K.getAnchorXY(e,true);L=g.getAnchorXY(a,false);n=L[0]-M[0]+B[0];l=L[1]-M[1]+B[1];if(I){s=K.getWidth();F=K.getHeight();v=g.getRegion();b=e.charAt(0);i=e.charAt(e.length-1);j=a.charAt(0);k=a.charAt(a.length-1);u=((b=="t"&&j=="b")||(b=="b"&&j=="t"));z=((i=="r"&&k=="l")||(i=="l"&&k=="r"));if(n+s>t+E){n=z?v.left-s:t+E-s}if(n<E){n=z?v.right:E}if(l+F>G+D){l=u?v.top-F:G+D-F}if(l<D){l=u?v.bottom:D}}return[n,l]},alignTo:function(c,a,e,b){var d=this;return d.setXY(d.getAlignToXY(c,a,e),d.preanim&&!!b?d.preanim(arguments,3):false)},adjustForConstraints:function(c,a,b){return this.getConstrainToXY(a||document,false,b,c)||c},getConstrainToXY:function(b,a,c,e){var d={top:0,left:0,bottom:0,right:0};return function(i,A,l,n){i=Ext.get(i);l=l?Ext.applyIf(l,d):d;var z,D,v=0,u=0;if(i.dom==document.body||i.dom==document){z=Ext.lib.Dom.getViewWidth();D=Ext.lib.Dom.getViewHeight()}else{z=i.dom.clientWidth;D=i.dom.clientHeight;if(!A){var t=i.getXY();v=t[0];u=t[1]}}var r=i.getScroll();v+=l.left+r.left;u+=l.top+r.top;z-=l.right;D-=l.bottom;var B=v+z,g=u+D,j=n||(!A?this.getXY():[this.getLeft(true),this.getTop(true)]),p=j[0],o=j[1],k=this.getConstrainOffset(),q=this.dom.offsetWidth+k,C=this.dom.offsetHeight+k;var m=false;if((p+q)>B){p=B-q;m=true}if((o+C)>g){o=g-C;m=true}if(p<v){p=v;m=true}if(o<u){o=u;m=true}return m?[p,o]:false}}(),getConstrainOffset:function(){return 0},getCenterXY:function(){return this.getAlignToXY(document,"c-c")},center:function(a){return this.alignTo(a||document,"c-c")}});Ext.Element.addMethods(function(){var d="parentNode",b="nextSibling",c="previousSibling",e=Ext.DomQuery,a=Ext.get;return{findParent:function(m,l,h){var j=this.dom,g=document.body,k=0,i;if(Ext.isGecko&&Object.prototype.toString.call(j)=="[object XULElement]"){return null}l=l||50;if(isNaN(l)){i=Ext.getDom(l);l=Number.MAX_VALUE}while(j&&j.nodeType==1&&k<l&&j!=g&&j!=i){if(e.is(j,m)){return h?a(j):j}k++;j=j.parentNode}return null},findParentNode:function(j,i,g){var h=Ext.fly(this.dom.parentNode,"_internal");return h?h.findParent(j,i,g):null},up:function(h,g){return this.findParentNode(h,g,true)},select:function(g){return Ext.Element.select(g,this.dom)},query:function(g){return e.select(g,this.dom)},child:function(g,h){var i=e.selectNode(g,this.dom);return h?i:a(i)},down:function(g,h){var i=e.selectNode(" > "+g,this.dom);return h?i:a(i)},parent:function(g,h){return this.matchNode(d,d,g,h)},next:function(g,h){return this.matchNode(b,b,g,h)},prev:function(g,h){return this.matchNode(c,c,g,h)},first:function(g,h){return this.matchNode(b,"firstChild",g,h)},last:function(g,h){return this.matchNode(c,"lastChild",g,h)},matchNode:function(h,k,g,i){var j=this.dom[k];while(j){if(j.nodeType==1&&(!g||e.is(j,g))){return!i?a(j):j}j=j[h]}return null}}}());Ext.Element.addMethods({select:function(a,b){return Ext.Element.select(a,b,this.dom)}});Ext.Element.addMethods(function(){var c=Ext.getDom,a=Ext.get,b=Ext.DomHelper;return{appendChild:function(d){return a(d).appendTo(this)},appendTo:function(d){c(d).appendChild(this.dom);return this},insertBefore:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d);return this},insertAfter:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d.nextSibling);return this},insertFirst:function(e,d){e=e||{};if(e.nodeType||e.dom||typeof e=="string"){e=c(e);this.dom.insertBefore(e,this.dom.firstChild);return!d?a(e):e}else{return this.createChild(e,this.dom.firstChild,d)}},replace:function(d){d=a(d);this.insertBefore(d);d.remove();return this},replaceWith:function(d){var e=this;if(d.nodeType||d.dom||typeof d=="string"){d=c(d);e.dom.parentNode.insertBefore(d,e.dom)}else{d=b.insertBefore(e.dom,d)}delete Ext.elCache[e.id];Ext.removeNode(e.dom);e.id=Ext.id(e.dom=d);Ext.Element.addToCache(e.isFlyweight?new Ext.Element(e.dom):e);return e},createChild:function(e,d,g){e=e||{tag:"div"};return d?b.insertBefore(d,e,g!==true):b[!this.dom.firstChild?"overwrite":"append"](this.dom,e,g!==true)},wrap:function(d,e){var g=b.insertBefore(this.dom,d||{tag:"div"},!e);g.dom?g.dom.appendChild(this.dom):g.appendChild(this.dom);return g},insertHtml:function(e,g,d){var h=b.insertHtml(e,this.dom,g);return d?Ext.get(h):h}}}());Ext.apply(Ext.Element.prototype,function(){var c=Ext.getDom,a=Ext.get,b=Ext.DomHelper;return{insertSibling:function(i,g,h){var j=this,e,d=(g||"before").toLowerCase()=="after",k;if(Ext.isArray(i)){k=j;Ext.each(i,function(l){e=Ext.fly(k,"_internal").insertSibling(l,g,h);if(d){k=e}});return e}i=i||{};if(i.nodeType||i.dom){e=j.dom.parentNode.insertBefore(c(i),d?j.dom.nextSibling:j.dom);if(!h){e=a(e)}}else{if(d&&!j.dom.nextSibling){e=b.append(j.dom.parentNode,i,!h)}else{e=b[d?"insertAfter":"insertBefore"](j.dom,i,!h)}}return e}}}());Ext.Element.addMethods(function(){var h={},y=/(-[a-z])/gi,s=document.defaultView,v=Ext.isIE?"styleFloat":"cssFloat",C=/alpha\(opacity=(.*)\)/i,l=/^\s+|\s+$/g,u=/\s+/,b=/\w/g,d="padding",c="margin",z="border",t="-left",q="-right",x="-top",o="-bottom",j="-width",r=Math,A="hidden",e="isClipped",k="overflow",n="overflow-x",m="overflow-y",B="originalClip",i={l:z+t+j,r:z+q+j,t:z+x+j,b:z+o+j},g={l:d+t,r:d+q,t:d+x,b:d+o},a={l:c+t,r:c+q,t:c+x,b:c+o},D=Ext.Element.data;function p(E,F){return F.charAt(1).toUpperCase()}function w(E){return h[E]||(h[E]=E=="float"?v:E.replace(y,p))}return{adjustWidth:function(E){var F=this;var G=(typeof E=="number");if(G&&F.autoBoxAdjust&&!F.isBorderBox()){E-=(F.getBorderWidth("lr")+F.getPadding("lr"))}return(G&&E<0)?0:E},adjustHeight:function(E){var F=this;var G=(typeof E=="number");if(G&&F.autoBoxAdjust&&!F.isBorderBox()){E-=(F.getBorderWidth("tb")+F.getPadding("tb"))}return(G&&E<0)?0:E},addClass:function(I){var J=this,H,E,G,F=[];if(!Ext.isArray(I)){if(typeof I=="string"&&!this.hasClass(I)){J.dom.className+=" "+I}}else{for(H=0,E=I.length;H<E;H++){G=I[H];if(typeof G=="string"&&(" "+J.dom.className+" ").indexOf(" "+G+" ")==-1){F.push(G)}}if(F.length){J.dom.className+=" "+F.join(" ")}}return J},removeClass:function(J){var K=this,I,F,E,H,G;if(!Ext.isArray(J)){J=[J]}if(K.dom&&K.dom.className){G=K.dom.className.replace(l,"").split(u);for(I=0,E=J.length;I<E;I++){H=J[I];if(typeof H=="string"){H=H.replace(l,"");F=G.indexOf(H);if(F!=-1){G.splice(F,1)}}}K.dom.className=G.join(" ")}return K},radioClass:function(H){var I=this.dom.parentNode.childNodes,F,G,E;H=Ext.isArray(H)?H:[H];for(G=0,E=I.length;G<E;G++){F=I[G];if(F&&F.nodeType==1){Ext.fly(F,"_internal").removeClass(H)}}return this.addClass(H)},toggleClass:function(E){return this.hasClass(E)?this.removeClass(E):this.addClass(E)},hasClass:function(E){return E&&(" "+this.dom.className+" ").indexOf(" "+E+" ")!=-1},replaceClass:function(F,E){return this.removeClass(F).addClass(E)},isStyle:function(E,F){return this.getStyle(E)==F},getStyle:function(){return s&&s.getComputedStyle?function(K){var H=this.dom,E,G,F,I,J=Ext.isWebKit,I;if(H==document){return null}K=w(K);if(J&&(/marginRight/.test(K))){I=this.getStyle("display");H.style.display="inline-block"}F=(E=H.style[K])?E:(G=s.getComputedStyle(H,""))?G[K]:null;if(J){if(F=="rgba(0, 0, 0, 0)"){F="transparent"}else{if(I){H.style.display=I}}}return F}:function(I){var G=this.dom,E,F;if(G==document){return null}if(I=="opacity"){if(G.style.filter.match){if(E=G.style.filter.match(C)){var H=parseFloat(E[1]);if(!isNaN(H)){return H?H/100:0}}}return 1}I=w(I);return G.style[I]||((F=G.currentStyle)?F[I]:null)}}(),getColor:function(E,F,J){var H=this.getStyle(E),G=(typeof J!="undefined")?J:"#",I;if(!H||(/transparent|inherit/.test(H))){return F}if(/^r/.test(H)){Ext.each(H.slice(4,H.length-1).split(","),function(K){I=parseInt(K,10);G+=(I<16?"0":"")+I.toString(16)})}else{H=H.replace("#","");G+=H.length==3?H.replace(/^(\w)(\w)(\w)$/,"$1$1$2$2$3$3"):H}return(G.length>5?G.toLowerCase():F)},setStyle:function(H,G){var E,F;if(typeof H!="object"){E={};E[H]=G;H=E}for(F in H){G=H[F];F=="opacity"?this.setOpacity(G):this.dom.style[w(F)]=G}return this},setOpacity:function(F,E){var I=this,G=I.dom.style;if(!E||!I.anim){if(Ext.isIE){var H=F<1?"alpha(opacity="+F*100+")":"",J=G.filter.replace(C,"").replace(l,"");G.zoom=1;G.filter=J+(J.length>0?" ":"")+H}else{G.opacity=F}}else{I.anim({opacity:{to:F}},I.preanim(arguments,1),null,0.35,"easeIn")}return I},clearOpacity:function(){var E=this.dom.style;if(Ext.isIE){if(!Ext.isEmpty(E.filter)){E.filter=E.filter.replace(C,"").replace(l,"")}}else{E.opacity=E["-moz-opacity"]=E["-khtml-opacity"]=""}return this},getHeight:function(G){var F=this,I=F.dom,H=Ext.isIE&&F.isStyle("display","none"),E=r.max(I.offsetHeight,H?0:I.clientHeight)||0;E=!G?E:E-F.getBorderWidth("tb")-F.getPadding("tb");return E<0?0:E},getWidth:function(F){var G=this,I=G.dom,H=Ext.isIE&&G.isStyle("display","none"),E=r.max(I.offsetWidth,H?0:I.clientWidth)||0;E=!F?E:E-G.getBorderWidth("lr")-G.getPadding("lr");return E<0?0:E},setWidth:function(F,E){var G=this;F=G.adjustWidth(F);!E||!G.anim?G.dom.style.width=G.addUnits(F):G.anim({width:{to:F}},G.preanim(arguments,1));return G},setHeight:function(E,F){var G=this;E=G.adjustHeight(E);!F||!G.anim?G.dom.style.height=G.addUnits(E):G.anim({height:{to:E}},G.preanim(arguments,1));return G},getBorderWidth:function(E){return this.addStyles(E,i)},getPadding:function(E){return this.addStyles(E,g)},clip:function(){var E=this,F=E.dom;if(!D(F,e)){D(F,e,true);D(F,B,{o:E.getStyle(k),x:E.getStyle(n),y:E.getStyle(m)});E.setStyle(k,A);E.setStyle(n,A);E.setStyle(m,A)}return E},unclip:function(){var E=this,G=E.dom;if(D(G,e)){D(G,e,false);var F=D(G,B);if(F.o){E.setStyle(k,F.o)}if(F.x){E.setStyle(n,F.x)}if(F.y){E.setStyle(m,F.y)}}return E},addStyles:function(L,K){var I=0,J=L.match(b),H,G,F,E=J.length;for(F=0;F<E;F++){H=J[F];G=H&&parseInt(this.getStyle(K[H]),10);if(G){I+=r.abs(G)}}return I},margins:a}}());Ext.Element.boxMarkup='<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';Ext.Element.addMethods(function(){var a="_internal",b=/(\d+\.?\d+)px/;return{applyStyles:function(c){Ext.DomHelper.applyStyles(this.dom,c);return this},getStyles:function(){var c={};Ext.each(arguments,function(d){c[d]=this.getStyle(d)},this);return c},setOverflow:function(c){var d=this.dom;if(c=="auto"&&Ext.isMac&&Ext.isGecko2){d.style.overflow="hidden";(function(){d.style.overflow="auto"}).defer(1)}else{d.style.overflow=c}},boxWrap:function(c){c=c||"x-box";var d=Ext.get(this.insertHtml("beforeBegin","<div class='"+c+"'>"+String.format(Ext.Element.boxMarkup,c)+"</div>"));Ext.DomQuery.selectNode("."+c+"-mc",d.dom).appendChild(this.dom);return d},setSize:function(e,c,d){var g=this;if(typeof e=="object"){c=e.height;e=e.width}e=g.adjustWidth(e);c=g.adjustHeight(c);if(!d||!g.anim){g.dom.style.width=g.addUnits(e);g.dom.style.height=g.addUnits(c)}else{g.anim({width:{to:e},height:{to:c}},g.preanim(arguments,2))}return g},getComputedHeight:function(){var d=this,c=Math.max(d.dom.offsetHeight,d.dom.clientHeight);if(!c){c=parseFloat(d.getStyle("height"))||0;if(!d.isBorderBox()){c+=d.getFrameWidth("tb")}}return c},getComputedWidth:function(){var c=Math.max(this.dom.offsetWidth,this.dom.clientWidth);if(!c){c=parseFloat(this.getStyle("width"))||0;if(!this.isBorderBox()){c+=this.getFrameWidth("lr")}}return c},getFrameWidth:function(d,c){return c&&this.isBorderBox()?0:(this.getPadding(d)+this.getBorderWidth(d))},addClassOnOver:function(c){this.hover(function(){Ext.fly(this,a).addClass(c)},function(){Ext.fly(this,a).removeClass(c)});return this},addClassOnFocus:function(c){this.on("focus",function(){Ext.fly(this,a).addClass(c)},this.dom);this.on("blur",function(){Ext.fly(this,a).removeClass(c)},this.dom);return this},addClassOnClick:function(c){var d=this.dom;this.on("mousedown",function(){Ext.fly(d,a).addClass(c);var g=Ext.getDoc(),e=function(){Ext.fly(d,a).removeClass(c);g.removeListener("mouseup",e)};g.on("mouseup",e)});return this},getViewSize:function(){var g=document,h=this.dom,c=(h==g||h==g.body);if(c){var e=Ext.lib.Dom;return{width:e.getViewWidth(),height:e.getViewHeight()}}else{return{width:h.clientWidth,height:h.clientHeight}}},getStyleSize:function(){var j=this,c,i,l=document,m=this.dom,e=(m==l||m==l.body),g=m.style;if(e){var k=Ext.lib.Dom;return{width:k.getViewWidth(),height:k.getViewHeight()}}if(g.width&&g.width!="auto"){c=parseFloat(g.width);if(j.isBorderBox()){c-=j.getFrameWidth("lr")}}if(g.height&&g.height!="auto"){i=parseFloat(g.height);if(j.isBorderBox()){i-=j.getFrameWidth("tb")}}return{width:c||j.getWidth(true),height:i||j.getHeight(true)}},getSize:function(c){return{width:this.getWidth(c),height:this.getHeight(c)}},repaint:function(){var c=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.fly(c).removeClass("x-repaint")},1);return this},unselectable:function(){this.dom.unselectable="on";return this.swallowEvent("selectstart",true).applyStyles("-moz-user-select:none;-khtml-user-select:none;").addClass("x-unselectable")},getMargins:function(d){var e=this,c,g={t:"top",l:"left",r:"right",b:"bottom"},h={};if(!d){for(c in e.margins){h[g[c]]=parseFloat(e.getStyle(e.margins[c]))||0}return h}else{return e.addStyles.call(e,d,e.margins)}}}}());(function(){var a=Ext.lib.Dom,b="left",g="right",d="top",i="bottom",h="position",c="static",e="relative",j="auto",k="z-index";Ext.Element.addMethods({getX:function(){return a.getX(this.dom)},getY:function(){return a.getY(this.dom)},getXY:function(){return a.getXY(this.dom)},getOffsetsTo:function(l){var n=this.getXY(),m=Ext.fly(l,"_internal").getXY();return[n[0]-m[0],n[1]-m[1]]},setX:function(l,m){return this.setXY([l,this.getY()],this.animTest(arguments,m,1))},setY:function(m,l){return this.setXY([this.getX(),m],this.animTest(arguments,l,1))},setLeft:function(l){this.setStyle(b,this.addUnits(l));return this},setTop:function(l){this.setStyle(d,this.addUnits(l));return this},setRight:function(l){this.setStyle(g,this.addUnits(l));return this},setBottom:function(l){this.setStyle(i,this.addUnits(l));return this},setXY:function(n,l){var m=this;if(!l||!m.anim){a.setXY(m.dom,n)}else{m.anim({points:{to:n}},m.preanim(arguments,1),"motion")}return m},setLocation:function(l,n,m){return this.setXY([l,n],this.animTest(arguments,m,2))},moveTo:function(l,n,m){return this.setXY([l,n],this.animTest(arguments,m,2))},getLeft:function(l){return!l?this.getX():parseInt(this.getStyle(b),10)||0},getRight:function(l){var m=this;return!l?m.getX()+m.getWidth():(m.getLeft(true)+m.getWidth())||0},getTop:function(l){return!l?this.getY():parseInt(this.getStyle(d),10)||0},getBottom:function(l){var m=this;return!l?m.getY()+m.getHeight():(m.getTop(true)+m.getHeight())||0},position:function(p,o,l,n){var m=this;if(!p&&m.isStyle(h,c)){m.setStyle(h,e)}else{if(p){m.setStyle(h,p)}}if(o){m.setStyle(k,o)}if(l||n){m.setXY([l||false,n||false])}},clearPositioning:function(l){l=l||"";this.setStyle({left:l,right:l,top:l,bottom:l,"z-index":"",position:c});return this},getPositioning:function(){var m=this.getStyle(b);var n=this.getStyle(d);return{position:this.getStyle(h),left:m,right:m?"":this.getStyle(g),top:n,bottom:n?"":this.getStyle(i),"z-index":this.getStyle(k)}},setPositioning:function(l){var n=this,m=n.dom.style;n.setStyle(l);if(l.right==j){m.right=""}if(l.bottom==j){m.bottom=""}return n},translatePoints:function(m,u){u=isNaN(m[1])?u:m[1];m=isNaN(m[0])?m:m[0];var q=this,r=q.isStyle(h,e),s=q.getXY(),n=parseInt(q.getStyle(b),10),p=parseInt(q.getStyle(d),10);n=!isNaN(n)?n:(r?0:q.dom.offsetLeft);p=!isNaN(p)?p:(r?0:q.dom.offsetTop);return{left:(m-s[0]+n),top:(u-s[1]+p)}},animTest:function(m,l,n){return!!l&&this.preanim?this.preanim(m,n):false}})})();Ext.Element.addMethods({setBox:function(e,g,b){var d=this,a=e.width,c=e.height;if((g&&!d.autoBoxAdjust)&&!d.isBorderBox()){a-=(d.getBorderWidth("lr")+d.getPadding("lr"));c-=(d.getBorderWidth("tb")+d.getPadding("tb"))}d.setBounds(e.x,e.y,a,c,d.animTest.call(d,arguments,b,2));return d},getBox:function(j,p){var m=this,v,e,o,d=m.getBorderWidth,q=m.getPadding,g,a,u,n;if(!p){v=m.getXY()}else{e=parseInt(m.getStyle("left"),10)||0;o=parseInt(m.getStyle("top"),10)||0;v=[e,o]}var c=m.dom,s=c.offsetWidth,i=c.offsetHeight,k;if(!j){k={x:v[0],y:v[1],0:v[0],1:v[1],width:s,height:i}}else{g=d.call(m,"l")+q.call(m,"l");a=d.call(m,"r")+q.call(m,"r");u=d.call(m,"t")+q.call(m,"t");n=d.call(m,"b")+q.call(m,"b");k={x:v[0]+g,y:v[1]+u,0:v[0]+g,1:v[1]+u,width:s-(g+a),height:i-(u+n)}}k.right=k.x+k.width;k.bottom=k.y+k.height;return k},move:function(j,b,c){var g=this,m=g.getXY(),k=m[0],i=m[1],d=[k-b,i],l=[k+b,i],h=[k,i-b],a=[k,i+b],e={l:d,left:d,r:l,right:l,t:h,top:h,up:h,b:a,bottom:a,down:a};j=j.toLowerCase();g.moveTo(e[j][0],e[j][1],g.animTest.call(g,arguments,c,2))},setLeftTop:function(d,c){var b=this,a=b.dom.style;a.left=b.addUnits(d);a.top=b.addUnits(c);return b},getRegion:function(){return Ext.lib.Dom.getRegion(this.dom)},setBounds:function(b,g,d,a,c){var e=this;if(!c||!e.anim){e.setSize(d,a);e.setLocation(b,g)}else{e.anim({points:{to:[b,g]},width:{to:e.adjustWidth(d)},height:{to:e.adjustHeight(a)}},e.preanim(arguments,4),"motion")}return e},setRegion:function(b,a){return this.setBounds(b.left,b.top,b.right-b.left,b.bottom-b.top,this.animTest.call(this,arguments,a,1))}});Ext.Element.addMethods({isScrollable:function(){var a=this.dom;return a.scrollHeight>a.clientHeight||a.scrollWidth>a.clientWidth},scrollTo:function(a,b){this.dom["scroll"+(/top/i.test(a)?"Top":"Left")]=b;return this},getScroll:function(){var i=this.dom,h=document,a=h.body,c=h.documentElement,b,g,e;if(i==h||i==a){if(Ext.isIE&&Ext.isStrict){b=c.scrollLeft;g=c.scrollTop}else{b=window.pageXOffset;g=window.pageYOffset}e={left:b||(a?a.scrollLeft:0),top:g||(a?a.scrollTop:0)}}else{e={left:i.scrollLeft,top:i.scrollTop}}return e}});Ext.Element.addMethods({scrollTo:function(b,d,a){var e=/top/i.test(b),c=this,g=c.dom,h;if(!a||!c.anim){h="scroll"+(e?"Top":"Left");g[h]=d}else{h="scroll"+(e?"Left":"Top");c.anim({scroll:{to:e?[g[h],d]:[d,g[h]]}},c.preanim(arguments,2),"scroll")}return c},scrollIntoView:function(e,i){var p=Ext.getDom(e)||Ext.getBody().dom,h=this.dom,g=this.getOffsetsTo(p),k=g[0]+p.scrollLeft,u=g[1]+p.scrollTop,q=u+h.offsetHeight,d=k+h.offsetWidth,a=p.clientHeight,m=parseInt(p.scrollTop,10),s=parseInt(p.scrollLeft,10),j=m+a,n=s+p.clientWidth;if(h.offsetHeight>a||u<m){p.scrollTop=u}else{if(q>j){p.scrollTop=q-a}}p.scrollTop=p.scrollTop;if(i!==false){if(h.offsetWidth>p.clientWidth||k<s){p.scrollLeft=k}else{if(d>n){p.scrollLeft=d-p.clientWidth}}p.scrollLeft=p.scrollLeft}return this},scrollChildIntoView:function(b,a){Ext.fly(b,"_scrollChildIntoView").scrollIntoView(this,a)},scroll:function(m,b,d){if(!this.isScrollable()){return false}var e=this.dom,g=e.scrollLeft,p=e.scrollTop,n=e.scrollWidth,k=e.scrollHeight,i=e.clientWidth,a=e.clientHeight,c=false,o,j={l:Math.min(g+b,n-i),r:o=Math.max(g-b,0),t:Math.max(p-b,0),b:Math.min(p+b,k-a)};j.d=j.b;j.u=j.t;m=m.substr(0,1);if((o=j[m])>-1){c=true;this.scrollTo(m=="l"||m=="r"?"left":"top",o,this.preanim(arguments,2))}return c}});Ext.Element.VISIBILITY=1;Ext.Element.DISPLAY=2;Ext.Element.addMethods(function(){var h="visibility",d="display",b="hidden",k="offsets",j="none",a="originalDisplay",c="visibilityMode",e=Ext.Element.DISPLAY,g=Ext.Element.data,i=function(n){var m=g(n,a);if(m===undefined){g(n,a,m="")}return m},l=function(o){var n=g(o,c);if(n===undefined){g(o,c,n=1)}return n};return{originalDisplay:"",visibilityMode:1,setVisibilityMode:function(m){g(this.dom,c,m);return this},animate:function(n,p,o,q,m){this.anim(n,{duration:p,callback:o,easing:q},m);return this},anim:function(p,q,n,s,o,m){n=n||"run";q=q||{};var r=this,t=Ext.lib.Anim[n](r.dom,p,(q.duration||s)||0.35,(q.easing||o)||"easeOut",function(){if(m){m.call(r)}if(q.callback){q.callback.call(q.scope||r,r,q)}},r);q.anim=t;return t},preanim:function(m,n){return!m[n]?false:(typeof m[n]=="object"?m[n]:{duration:m[n+1],callback:m[n+2],easing:m[n+3]})},isVisible:function(){return!this.isStyle(h,b)&&!this.isStyle(d,j)},setVisible:function(r,o){var p=this,n,m,s,q=p.dom;if(typeof o=="string"){n=o==d;m=o==h;s=o==k;o=false}else{n=l(this.dom)==e;m=!n}if(!o||!p.anim){if(n){p.setDisplayed(r)}else{if(s){if(!r){p.hideModeStyles={position:p.getStyle("position"),top:p.getStyle("top"),left:p.getStyle("left")};p.applyStyles({position:"absolute",top:"-10000px",left:"-10000px"})}else{p.applyStyles(p.hideModeStyles||{position:"",top:"",left:""})}}else{p.fixDisplay();q.style.visibility=r?"visible":b}}}else{if(r){p.setOpacity(0.01);p.setVisible(true)}p.anim({opacity:{to:(r?1:0)}},p.preanim(arguments,1),null,0.35,"easeIn",function(){if(!r){q.style[n?d:h]=(n)?j:b;Ext.fly(q).setOpacity(1)}})}return p},toggle:function(m){var n=this;n.setVisible(!n.isVisible(),n.preanim(arguments,0));return n},setDisplayed:function(m){if(typeof m=="boolean"){m=m?i(this.dom):j}this.setStyle(d,m);return this},fixDisplay:function(){var m=this;if(m.isStyle(d,j)){m.setStyle(h,b);m.setStyle(d,i(this.dom));if(m.isStyle(d,j)){m.setStyle(d,"block")}}},hide:function(m){if(typeof m=="string"){this.setVisible(false,m);return this}this.setVisible(false,this.preanim(arguments,0));return this},show:function(m){if(typeof m=="string"){this.setVisible(true,m);return this}this.setVisible(true,this.preanim(arguments,0));return this}}}());Ext.Element.addMethods(function(){var d="visibility",b="display",a="hidden",h="none",c="x-masked",g="x-masked-relative",e=Ext.Element.data;return{isVisible:function(i){var j=!this.isStyle(d,a)&&!this.isStyle(b,h),k=this.dom.parentNode;if(i!==true||!j){return j}while(k&&!/^body/i.test(k.tagName)){if(!Ext.fly(k,"_isVisible").isVisible()){return false}k=k.parentNode}return true},isDisplayed:function(){return!this.isStyle(b,h)},enableDisplayMode:function(i){this.setVisibilityMode(Ext.Element.DISPLAY);if(!Ext.isEmpty(i)){e(this.dom,"originalDisplay",i)}return this},mask:function(j,n){var p=this,l=p.dom,o=Ext.DomHelper,m="ext-el-mask-msg",i,q;if(!/^body/i.test(l.tagName)&&p.getStyle("position")=="static"){p.addClass(g)}if((i=e(l,"maskMsg"))){i.remove()}if((i=e(l,"mask"))){i.remove()}q=o.append(l,{cls:"ext-el-mask"},true);e(l,"mask",q);p.addClass(c);q.setDisplayed(true);if(typeof j=="string"){var k=o.append(l,{cls:m,cn:{tag:"div"}},true);e(l,"maskMsg",k);k.dom.className=n?m+" "+n:m;k.dom.firstChild.innerHTML=j;k.setDisplayed(true);k.center(p)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&p.getStyle("height")=="auto"){q.setSize(undefined,p.getHeight())}return q},unmask:function(){var k=this,l=k.dom,i=e(l,"mask"),j=e(l,"maskMsg");if(i){if(j){j.remove();e(l,"maskMsg",undefined)}i.remove();e(l,"mask",undefined)}if(k.isMasked()){k.removeClass([c,g])}},isMasked:function(){var i=e(this.dom,"mask");return i&&i.isVisible()},createShim:function(){var i=document.createElement("iframe"),j;i.frameBorder="0";i.className="ext-shim";i.src=Ext.SSL_SECURE_URL;j=Ext.get(this.dom.parentNode.insertBefore(i,this.dom));j.autoBoxAdjust=false;return j}}}());Ext.Element.addMethods({addKeyListener:function(b,d,c){var a;if(typeof b!="object"||Ext.isArray(b)){a={key:b,fn:d,scope:c}}else{a={key:b.key,shift:b.shift,ctrl:b.ctrl,alt:b.alt,fn:d,scope:c}}return new Ext.KeyMap(this,a)},addKeyMap:function(a){return new Ext.KeyMap(this,a)}});(function(){var y=null,A=undefined,k=true,t=false,j="setX",h="setY",a="setXY",n="left",l="bottom",s="top",m="right",q="height",g="width",i="points",w="hidden",z="absolute",u="visible",e="motion",o="position",r="easeOut",d=new Ext.Element.Flyweight(),v={},x=function(B){return B||{}},p=function(B){d.dom=B;d.id=Ext.id(B);return d},c=function(B){if(!v[B]){v[B]=[]}return v[B]},b=function(C,B){v[C]=B};Ext.enableFx=k;Ext.Fx={switchStatements:function(C,D,B){return D.apply(this,B[C])},slideIn:function(H,E){E=x(E);var J=this,G=J.dom,M=G.style,O,B,L,D,C,M,I,N,K,F;H=H||"t";J.queueFx(E,function(){O=p(G).getXY();p(G).fixDisplay();B=p(G).getFxRestore();L={x:O[0],y:O[1],0:O[0],1:O[1],width:G.offsetWidth,height:G.offsetHeight};L.right=L.x+L.width;L.bottom=L.y+L.height;p(G).setWidth(L.width).setHeight(L.height);D=p(G).fxWrap(B.pos,E,w);M.visibility=u;M.position=z;function P(){p(G).fxUnwrap(D,B.pos,E);M.width=B.width;M.height=B.height;p(G).afterFx(E)}N={to:[L.x,L.y]};K={to:L.width};F={to:L.height};function Q(U,R,V,S,X,Z,ac,ab,aa,W,T){var Y={};p(U).setWidth(V).setHeight(S);if(p(U)[X]){p(U)[X](Z)}R[ac]=R[ab]="0";if(aa){Y.width=aa}if(W){Y.height=W}if(T){Y.points=T}return Y}I=p(G).switchStatements(H.toLowerCase(),Q,{t:[D,M,L.width,0,y,y,n,l,y,F,y],l:[D,M,0,L.height,y,y,m,s,K,y,y],r:[D,M,L.width,L.height,j,L.right,n,s,y,y,N],b:[D,M,L.width,L.height,h,L.bottom,n,s,y,F,N],tl:[D,M,0,0,y,y,m,l,K,F,N],bl:[D,M,0,0,h,L.y+L.height,m,s,K,F,N],br:[D,M,0,0,a,[L.right,L.bottom],n,s,K,F,N],tr:[D,M,0,0,j,L.x+L.width,n,l,K,F,N]});M.visibility=u;p(D).show();arguments.callee.anim=p(D).fxanim(I,E,e,0.5,r,P)});return J},slideOut:function(F,D){D=x(D);var H=this,E=H.dom,K=E.style,L=H.getXY(),C,B,I,J,G={to:0};F=F||"t";H.queueFx(D,function(){B=p(E).getFxRestore();I={x:L[0],y:L[1],0:L[0],1:L[1],width:E.offsetWidth,height:E.offsetHeight};I.right=I.x+I.width;I.bottom=I.y+I.height;p(E).setWidth(I.width).setHeight(I.height);C=p(E).fxWrap(B.pos,D,u);K.visibility=u;K.position=z;p(C).setWidth(I.width).setHeight(I.height);function M(){D.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).fxUnwrap(C,B.pos,D);K.width=B.width;K.height=B.height;p(E).afterFx(D)}function N(O,W,U,X,S,V,R,T,Q){var P={};O[W]=O[U]="0";P[X]=S;if(V){P[V]=R}if(T){P[T]=Q}return P}J=p(E).switchStatements(F.toLowerCase(),N,{t:[K,n,l,q,G],l:[K,m,s,g,G],r:[K,n,s,g,G,i,{to:[I.right,I.y]}],b:[K,n,s,q,G,i,{to:[I.x,I.bottom]}],tl:[K,m,l,g,G,q,G],bl:[K,m,s,g,G,q,G,i,{to:[I.x,I.bottom]}],br:[K,n,s,g,G,q,G,i,{to:[I.x+I.width,I.bottom]}],tr:[K,n,l,g,G,q,G,i,{to:[I.right,I.y]}]});arguments.callee.anim=p(C).fxanim(J,D,e,0.5,r,M)});return H},puff:function(H){H=x(H);var F=this,G=F.dom,C=G.style,D,B,E;F.queueFx(H,function(){D=p(G).getWidth();B=p(G).getHeight();p(G).clearOpacity();p(G).show();E=p(G).getFxRestore();function I(){H.useDisplay?p(G).setDisplayed(t):p(G).hide();p(G).clearOpacity();p(G).setPositioning(E.pos);C.width=E.width;C.height=E.height;C.fontSize="";p(G).afterFx(H)}arguments.callee.anim=p(G).fxanim({width:{to:p(G).adjustWidth(D*2)},height:{to:p(G).adjustHeight(B*2)},points:{by:[-D*0.5,-B*0.5]},opacity:{to:0},fontSize:{to:200,unit:"%"}},H,e,0.5,r,I)});return F},switchOff:function(F){F=x(F);var D=this,E=D.dom,B=E.style,C;D.queueFx(F,function(){p(E).clearOpacity();p(E).clip();C=p(E).getFxRestore();function G(){F.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).clearOpacity();p(E).setPositioning(C.pos);B.width=C.width;B.height=C.height;p(E).afterFx(F)}p(E).fxanim({opacity:{to:0.3}},y,y,0.1,y,function(){p(E).clearOpacity();(function(){p(E).fxanim({height:{to:1},points:{by:[0,p(E).getHeight()*0.5]}},F,e,0.3,"easeIn",G)}).defer(100)})});return D},highlight:function(D,H){H=x(H);var F=this,G=F.dom,B=H.attr||"backgroundColor",C={},E;F.queueFx(H,function(){p(G).clearOpacity();p(G).show();function I(){G.style[B]=E;p(G).afterFx(H)}E=G.style[B];C[B]={from:D||"ffff9c",to:H.endColor||p(G).getColor(B)||"ffffff"};arguments.callee.anim=p(G).fxanim(C,H,"color",1,"easeIn",I)});return F},frame:function(B,E,H){H=x(H);var D=this,G=D.dom,C,F;D.queueFx(H,function(){B=B||"#C3DAF9";if(B.length==6){B="#"+B}E=E||1;p(G).show();var L=p(G).getXY(),J={x:L[0],y:L[1],0:L[0],1:L[1],width:G.offsetWidth,height:G.offsetHeight},I=function(){C=p(document.body||document.documentElement).createChild({style:{position:z,"z-index":35000,border:"0px solid "+B}});return C.queueFx({},K)};arguments.callee.anim={isAnimated:true,stop:function(){E=0;C.stopFx()}};function K(){var M=Ext.isBorderBox?2:1;F=C.anim({top:{from:J.y,to:J.y-20},left:{from:J.x,to:J.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:J.height,to:J.height+20*M},width:{from:J.width,to:J.width+20*M}},{duration:H.duration||1,callback:function(){C.remove();--E>0?I():p(G).afterFx(H)}});arguments.callee.anim={isAnimated:true,stop:function(){F.stop()}}}I()});return D},pause:function(D){var C=this.dom,B;this.queueFx({},function(){B=setTimeout(function(){p(C).afterFx({})},D*1000);arguments.callee.anim={isAnimated:true,stop:function(){clearTimeout(B);p(C).afterFx({})}}});return this},fadeIn:function(D){D=x(D);var B=this,C=B.dom,E=D.endOpacity||1;B.queueFx(D,function(){p(C).setOpacity(0);p(C).fixDisplay();C.style.visibility=u;arguments.callee.anim=p(C).fxanim({opacity:{to:E}},D,y,0.5,r,function(){if(E==1){p(C).clearOpacity()}p(C).afterFx(D)})});return B},fadeOut:function(E){E=x(E);var C=this,D=C.dom,B=D.style,F=E.endOpacity||0;C.queueFx(E,function(){arguments.callee.anim=p(D).fxanim({opacity:{to:F}},E,y,0.5,r,function(){if(F==0){Ext.Element.data(D,"visibilityMode")==Ext.Element.DISPLAY||E.useDisplay?B.display="none":B.visibility=w;p(D).clearOpacity()}p(D).afterFx(E)})});return C},scale:function(B,C,D){this.shift(Ext.apply({},D,{width:B,height:C}));return this},shift:function(D){D=x(D);var C=this.dom,B={};this.queueFx(D,function(){for(var E in D){if(D[E]!=A){B[E]={to:D[E]}}}B.width?B.width.to=p(C).adjustWidth(D.width):B;B.height?B.height.to=p(C).adjustWidth(D.height):B;if(B.x||B.y||B.xy){B.points=B.xy||{to:[B.x?B.x.to:p(C).getX(),B.y?B.y.to:p(C).getY()]}}arguments.callee.anim=p(C).fxanim(B,D,e,0.35,r,function(){p(C).afterFx(D)})});return this},ghost:function(E,C){C=x(C);var G=this,D=G.dom,J=D.style,H={opacity:{to:0},points:{}},K=H.points,B,I,F;E=E||"b";G.queueFx(C,function(){B=p(D).getFxRestore();I=p(D).getWidth();F=p(D).getHeight();function L(){C.useDisplay?p(D).setDisplayed(t):p(D).hide();p(D).clearOpacity();p(D).setPositioning(B.pos);J.width=B.width;J.height=B.height;p(D).afterFx(C)}K.by=p(D).switchStatements(E.toLowerCase(),function(N,M){return[N,M]},{t:[0,-F],l:[-I,0],r:[I,0],b:[0,F],tl:[-I,-F],bl:[-I,F],br:[I,F],tr:[I,-F]});arguments.callee.anim=p(D).fxanim(H,C,e,0.5,r,L)});return G},syncFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:k,stopFx:t});return B},sequenceFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:t,stopFx:t});return B},nextFx:function(){var B=c(this.dom.id)[0];if(B){B.call(this)}},hasActiveFx:function(){return c(this.dom.id)[0]},stopFx:function(B){var C=this,E=C.dom.id;if(C.hasActiveFx()){var D=c(E)[0];if(D&&D.anim){if(D.anim.isAnimated){b(E,[D]);D.anim.stop(B!==undefined?B:k)}else{b(E,[])}}}return C},beforeFx:function(B){if(this.hasActiveFx()&&!B.concurrent){if(B.stopFx){this.stopFx();return k}return t}return k},hasFxBlock:function(){var B=c(this.dom.id);return B&&B[0]&&B[0].block},queueFx:function(E,B){var C=p(this.dom);if(!C.hasFxBlock()){Ext.applyIf(E,C.fxDefaults);if(!E.concurrent){var D=C.beforeFx(E);B.block=E.block;c(C.dom.id).push(B);if(D){C.nextFx()}}else{B.call(C)}}return C},fxWrap:function(H,F,D){var E=this.dom,C,B;if(!F.wrap||!(C=Ext.getDom(F.wrap))){if(F.fixPosition){B=p(E).getXY()}var G=document.createElement("div");G.style.visibility=D;C=E.parentNode.insertBefore(G,E);p(C).setPositioning(H);if(p(C).isStyle(o,"static")){p(C).position("relative")}p(E).clearPositioning("auto");p(C).clip();C.appendChild(E);if(B){p(C).setXY(B)}}return C},fxUnwrap:function(C,F,E){var D=this.dom;p(D).clearPositioning();p(D).setPositioning(F);if(!E.wrap){var B=p(C).dom.parentNode;B.insertBefore(D,C);p(C).remove()}},getFxRestore:function(){var B=this.dom.style;return{pos:this.getPositioning(),width:B.width,height:B.height}},afterFx:function(C){var B=this.dom,D=B.id;if(C.afterStyle){p(B).setStyle(C.afterStyle)}if(C.afterCls){p(B).addClass(C.afterCls)}if(C.remove==k){p(B).remove()}if(C.callback){C.callback.call(C.scope,p(B))}if(!C.concurrent){c(D).shift();p(B).nextFx()}},fxanim:function(E,F,C,G,D,B){C=C||"run";F=F||{};var H=Ext.lib.Anim[C](this.dom,E,(F.duration||G)||0.35,(F.easing||D)||r,B,this);F.anim=H;return H}};Ext.Fx.resize=Ext.Fx.scale;Ext.Element.addMethods(Ext.Fx)})();Ext.CompositeElementLite=function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.Element.Flyweight()};Ext.CompositeElementLite.prototype={isComposite:true,getElement:function(a){var b=this.el;b.dom=a;b.id=a.id;return b},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(d,b){var e=this,g=e.elements;if(!d){return this}if(typeof d=="string"){d=Ext.Element.selectorFunction(d,b)}else{if(d.isComposite){d=d.elements}else{if(!Ext.isIterable(d)){d=[d]}}}for(var c=0,a=d.length;c<a;++c){g.push(e.transformElement(d[c]))}return e},invoke:function(g,b){var h=this,d=h.elements,a=d.length,j,c;for(c=0;c<a;c++){j=d[c];if(j){Ext.Element.prototype[g].apply(h.getElement(j),b)}}return h},item:function(b){var d=this,c=d.elements[b],a=null;if(c){a=d.getElement(c)}return a},addListener:function(b,j,h,g){var d=this.elements,a=d.length,c,k;for(c=0;c<a;c++){k=d[c];if(k){Ext.EventManager.on(k,b,j,h||k,g)}}return this},each:function(g,d){var h=this,c=h.elements,a=c.length,b,j;for(b=0;b<a;b++){j=c[b];if(j){j=this.getElement(j);if(g.call(d||j,j,h,b)===false){break}}}return h},fill:function(a){var b=this;b.elements=[];b.add(a);return b},filter:function(a){var b=[],d=this,c=Ext.isFunction(a)?a:function(e){return e.is(a)};d.each(function(h,e,g){if(c(h,g)!==false){b[b.length]=d.transformElement(h)}});d.elements=b;return d},indexOf:function(a){return this.elements.indexOf(this.transformElement(a))},replaceElement:function(e,c,a){var b=!isNaN(e)?e:this.indexOf(e),g;if(b>-1){c=Ext.getDom(c);if(a){g=this.elements[b];g.parentNode.insertBefore(c,g);Ext.removeNode(g)}this.elements.splice(b,1,c)}return this},clear:function(){this.elements=[]}};Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;(function(){var c,b=Ext.Element.prototype,a=Ext.CompositeElementLite.prototype;for(c in b){if(Ext.isFunction(b[c])){(function(d){a[d]=a[d]||function(){return this.invoke(d,arguments)}}).call(a,c)}}})();if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select}Ext.Element.select=function(a,b){var c;if(typeof a=="string"){c=Ext.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{throw"Invalid selector"}}return new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;Ext.apply(Ext.CompositeElementLite.prototype,{addElements:function(c,a){if(!c){return this}if(typeof c=="string"){c=Ext.Element.selectorFunction(c,a)}var b=this.elements;Ext.each(c,function(d){b.push(Ext.get(d))});return this},first:function(){return this.item(0)},last:function(){return this.item(this.getCount()-1)},contains:function(a){return this.indexOf(a)!=-1},removeElement:function(d,e){var c=this,a=this.elements,b;Ext.each(d,function(g){if((b=(a[g]||a[g=c.indexOf(g)]))){if(e){if(b.dom){b.remove()}else{Ext.removeNode(b)}}a.splice(g,1)}});return this}});Ext.CompositeElement=Ext.extend(Ext.CompositeElementLite,{constructor:function(b,a){this.elements=[];this.add(b,a)},getElement:function(a){return a},transformElement:function(a){return Ext.get(a)}});Ext.Element.select=function(a,d,b){var c;if(typeof a=="string"){c=Ext.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{throw"Invalid selector"}}return(d===true)?new Ext.CompositeElement(c):new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;(function(){var b="beforerequest",e="requestcomplete",d="requestexception",h=undefined,c="load",i="POST",a="GET",g=window;Ext.data.Connection=function(j){Ext.apply(this,j);this.addEvents(b,e,d);Ext.data.Connection.superclass.constructor.call(this)};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:30000,autoAbort:false,disableCaching:true,disableCachingParam:"_dc",request:function(n){var s=this;if(s.fireEvent(b,s,n)){if(n.el){if(!Ext.isEmpty(n.indicatorText)){s.indicatorText='<div class="loading-indicator">'+n.indicatorText+"</div>"}if(s.indicatorText){Ext.getDom(n.el).innerHTML=s.indicatorText}n.success=(Ext.isFunction(n.success)?n.success:function(){}).createInterceptor(function(o){Ext.getDom(n.el).innerHTML=o.responseText})}var l=n.params,k=n.url||s.url,j,q={success:s.handleResponse,failure:s.handleFailure,scope:s,argument:{options:n},timeout:n.timeout||s.timeout},m,t;if(Ext.isFunction(l)){l=l.call(n.scope||g,n)}l=Ext.urlEncode(s.extraParams,Ext.isObject(l)?Ext.urlEncode(l):l);if(Ext.isFunction(k)){k=k.call(n.scope||g,n)}if((m=Ext.getDom(n.form))){k=k||m.action;if(n.isUpload||/multipart\/form-data/i.test(m.getAttribute("enctype"))){return s.doFormUpload.call(s,n,l,k)}t=Ext.lib.Ajax.serializeForm(m);l=l?(l+"&"+t):t}j=n.method||s.method||((l||n.xmlData||n.jsonData)?i:a);if(j===a&&(s.disableCaching&&n.disableCaching!==false)||n.disableCaching===true){var r=n.disableCachingParam||s.disableCachingParam;k=Ext.urlAppend(k,r+"="+(new Date().getTime()))}n.headers=Ext.apply(n.headers||{},s.defaultHeaders||{});if(n.autoAbort===true||s.autoAbort){s.abort()}if((j==a||n.xmlData||n.jsonData)&&l){k=Ext.urlAppend(k,l);l=""}return(s.transId=Ext.lib.Ajax.request(j,k,q,l,n))}else{return n.callback?n.callback.apply(n.scope,[n,h,h]):null}},isLoading:function(j){return j?Ext.lib.Ajax.isCallInProgress(j):!!this.transId},abort:function(j){if(j||this.isLoading()){Ext.lib.Ajax.abort(j||this.transId)}},handleResponse:function(j){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(e,this,j,k);if(k.success){k.success.call(k.scope,j,k)}if(k.callback){k.callback.call(k.scope,k,true,j)}},handleFailure:function(j,l){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(d,this,j,k,l);if(k.failure){k.failure.call(k.scope,j,k)}if(k.callback){k.callback.call(k.scope,k,false,j)}},doFormUpload:function(q,j,k){var l=Ext.id(),v=document,r=v.createElement("iframe"),m=Ext.getDom(q.form),u=[],t,p="multipart/form-data",n={target:m.target,method:m.method,encoding:m.encoding,enctype:m.enctype,action:m.action};Ext.fly(r).set({id:l,name:l,cls:"x-hidden",src:Ext.SSL_SECURE_URL});v.body.appendChild(r);if(Ext.isIE){document.frames[l].name=l}Ext.fly(m).set({target:l,method:i,enctype:p,encoding:p,action:k||n.action});Ext.iterate(Ext.urlDecode(j,false),function(w,o){t=v.createElement("input");Ext.fly(t).set({type:"hidden",value:o,name:w});m.appendChild(t);u.push(t)});function s(){var x=this,w={responseText:"",responseXML:null,argument:q.argument},A,z;try{A=r.contentWindow.document||r.contentDocument||g.frames[l].document;if(A){if(A.body){if(/textarea/i.test((z=A.body.firstChild||{}).tagName)){w.responseText=z.value}else{w.responseText=A.body.innerHTML}}w.responseXML=A.XMLDocument||A}}catch(y){}Ext.EventManager.removeListener(r,c,s,x);x.fireEvent(e,x,w,q);function o(D,C,B){if(Ext.isFunction(D)){D.apply(C,B)}}o(q.success,q.scope,[w,q]);o(q.callback,q.scope,[q,true,w]);if(!x.debugUploads){setTimeout(function(){Ext.removeNode(r)},100)}}Ext.EventManager.on(r,c,s,this);m.submit();Ext.fly(m).set(n);Ext.each(u,function(o){Ext.removeNode(o)})}})})();Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(a){return Ext.lib.Ajax.serializeForm(a)}});Ext.UpdateManager=Ext.Updater=Ext.extend(Ext.util.Observable,function(){var b="beforeupdate",d="update",c="failure";function a(h){var i=this;i.transaction=null;if(h.argument.form&&h.argument.reset){try{h.argument.form.reset()}catch(j){}}if(i.loadScripts){i.renderer.render(i.el,h,i,g.createDelegate(i,[h]))}else{i.renderer.render(i.el,h,i);g.call(i,h)}}function g(h,i,j){this.fireEvent(i||d,this.el,h);if(Ext.isFunction(h.argument.callback)){h.argument.callback.call(h.argument.scope,this.el,Ext.isEmpty(j)?true:false,h,h.argument.options)}}function e(h){g.call(this,h,c,!!(this.transaction=null))}return{constructor:function(i,h){var j=this;i=Ext.get(i);if(!h&&i.updateManager){return i.updateManager}j.el=i;j.defaultUrl=null;j.addEvents(b,d,c);Ext.apply(j,Ext.Updater.defaults);j.transaction=null;j.refreshDelegate=j.refresh.createDelegate(j);j.updateDelegate=j.update.createDelegate(j);j.formUpdateDelegate=(j.formUpdate||function(){}).createDelegate(j);j.renderer=j.renderer||j.getDefaultRenderer();Ext.Updater.superclass.constructor.call(j)},setRenderer:function(h){this.renderer=h},getRenderer:function(){return this.renderer},getDefaultRenderer:function(){return new Ext.Updater.BasicRenderer()},setDefaultUrl:function(h){this.defaultUrl=h},getEl:function(){return this.el},update:function(i,n,p,l){var k=this,h,j;if(k.fireEvent(b,k.el,i,n)!==false){if(Ext.isObject(i)){h=i;i=h.url;n=n||h.params;p=p||h.callback;l=l||h.discardUrl;j=h.scope;if(!Ext.isEmpty(h.nocache)){k.disableCaching=h.nocache}if(!Ext.isEmpty(h.text)){k.indicatorText='<div class="loading-indicator">'+h.text+"</div>"}if(!Ext.isEmpty(h.scripts)){k.loadScripts=h.scripts}if(!Ext.isEmpty(h.timeout)){k.timeout=h.timeout}}k.showLoading();if(!l){k.defaultUrl=i}if(Ext.isFunction(i)){i=i.call(k)}var m=Ext.apply({},{url:i,params:(Ext.isFunction(n)&&j)?n.createDelegate(j):n,success:a,failure:e,scope:k,callback:undefined,timeout:(k.timeout*1000),disableCaching:k.disableCaching,argument:{options:h,url:i,form:null,callback:p,scope:j||window,params:n}},h);k.transaction=Ext.Ajax.request(m)}},formUpdate:function(k,h,j,l){var i=this;if(i.fireEvent(b,i.el,k,h)!==false){if(Ext.isFunction(h)){h=h.call(i)}k=Ext.getDom(k);i.transaction=Ext.Ajax.request({form:k,url:h,success:a,failure:e,scope:i,timeout:(i.timeout*1000),argument:{url:h,form:k,callback:l,reset:j}});i.showLoading.defer(1,i)}},startAutoRefresh:function(i,j,l,m,h){var k=this;if(h){k.update(j||k.defaultUrl,l,m,true)}if(k.autoRefreshProcId){clearInterval(k.autoRefreshProcId)}k.autoRefreshProcId=setInterval(k.update.createDelegate(k,[j||k.defaultUrl,l,m,true]),i*1000)},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId}},isAutoRefreshing:function(){return!!this.autoRefreshProcId},showLoading:function(){if(this.showLoadIndicator){this.el.dom.innerHTML=this.indicatorText}},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction)}},isUpdating:function(){return this.transaction?Ext.Ajax.isLoading(this.transaction):false},refresh:function(h){if(this.defaultUrl){this.update(this.defaultUrl,null,h,true)}}}}());Ext.Updater.defaults={timeout:30,disableCaching:false,showLoadIndicator:true,indicatorText:'<div class="loading-indicator">Loading...</div>',loadScripts:false,sslBlankUrl:Ext.SSL_SECURE_URL};Ext.Updater.updateElement=function(d,c,e,b){var a=Ext.get(d).getUpdater();Ext.apply(a,b);a.update(c,e,b?b.callback:null)};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(c,a,b,d){c.update(a.responseText,b.loadScripts,d)}};(function(){Date.useStrict=false;function b(d){var c=Array.prototype.slice.call(arguments,1);return d.replace(/\{(\d+)\}/g,function(e,g){return c[g]})}Date.formatCodeToRegex=function(d,c){var e=Date.parseCodes[d];if(e){e=typeof e=="function"?e():e;Date.parseCodes[d]=e}return e?Ext.applyIf({c:e.c?b(e.c,c||"{0}"):e.c},e):{g:0,c:null,s:Ext.escapeRe(d)}};var a=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{"M$":function(d,c){var e=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/");var g=(d||"").match(e);return g?new Date(((g[1]||"")+g[2])*1):null}},parseRegexes:[],formatFunctions:{"M$":function(){return"\\/Date("+this.getTime()+")\\/"}},y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",defaults:{},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(c){return Date.monthNames[c].substring(0,3)},getShortDayName:function(c){return Date.dayNames[c].substring(0,3)},getMonthNumber:function(c){return Date.monthNumbers[c.substring(0,1).toUpperCase()+c.substring(1,3).toLowerCase()]},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var k="Y-m-dTH:i:sP",h=[],g=0,d=k.length;g<d;++g){var j=k.charAt(g);h.push(j=="T"?"'T'":Date.getFormatCode(j))}return h.join(" + ")},U:"Math.round(this.getTime() / 1000)"},isValid:function(o,c,n,k,g,j,e){k=k||0;g=g||0;j=j||0;e=e||0;var l=new Date(o,c-1,n,k,g,j,e);return o==l.getFullYear()&&c==l.getMonth()+1&&n==l.getDate()&&k==l.getHours()&&g==l.getMinutes()&&j==l.getSeconds()&&e==l.getMilliseconds()},parseDate:function(d,g,c){var e=Date.parseFunctions;if(e[g]==null){Date.createParser(g)}return e[g](d,Ext.isDefined(c)?c:Date.useStrict)},getFormatCode:function(d){var c=Date.formatCodes[d];if(c){c=typeof c=="function"?c():c;Date.formatCodes[d]=c}return c||("'"+String.escape(d)+"'")},createFormat:function(h){var g=[],c=false,e="";for(var d=0;d<h.length;++d){e=h.charAt(d);if(!c&&e=="\\"){c=true}else{if(c){c=false;g.push("'"+String.escape(e)+"'")}else{g.push(Date.getFormatCode(e))}}}Date.formatFunctions[h]=new Function("return "+g.join("+"))},createParser:function(){var c=["var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,","def = Date.defaults,","results = String(input).match(Date.parseRegexes[{0}]);","if(results){","{1}","if(u != null){","v = new Date(u * 1000);","}else{","dt = (new Date()).clearTime();","y = Ext.num(y, Ext.num(def.y, dt.getFullYear()));","m = Ext.num(m, Ext.num(def.m - 1, dt.getMonth()));","d = Ext.num(d, Ext.num(def.d, dt.getDate()));","h  = Ext.num(h, Ext.num(def.h, dt.getHours()));","i  = Ext.num(i, Ext.num(def.i, dt.getMinutes()));","s  = Ext.num(s, Ext.num(def.s, dt.getSeconds()));","ms = Ext.num(ms, Ext.num(def.ms, dt.getMilliseconds()));","if(z >= 0 && y >= 0){","v = new Date(y, 0, 1, h, i, s, ms);","v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);","}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = new Date(y, m, d, h, i, s, ms);","}","}","}","if(v){","if(zz != null){","v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n");return function(m){var e=Date.parseRegexes.length,n=1,g=[],l=[],k=false,d="";for(var j=0;j<m.length;++j){d=m.charAt(j);if(!k&&d=="\\"){k=true}else{if(k){k=false;l.push(String.escape(d))}else{var h=a(d,n);n+=h.g;l.push(h.s);if(h.g&&h.c){g.push(h.c)}}}}Date.parseRegexes[e]=new RegExp("^"+l.join("")+"$");Date.parseFunctions[m]=new Function("input","strict",b(c,e,g.join("")))}}(),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var c=[],d=0;d<7;c.push(Date.getShortDayName(d)),++d){}return{g:0,c:null,s:"(?:"+c.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:1,c:"z = parseInt(results[{0}], 10);\n",s:"(\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var c=[],d=0;d<12;c.push(Date.getShortMonthName(d)),++d){}return Ext.applyIf({s:"("+c.join("|")+")"},a("F"))},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return a("Y")},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM)"},g:function(){return a("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return a("H")},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var e=[],c=[a("Y",1),a("m",2),a("d",3),a("h",4),a("i",5),a("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",a("P",8).c,"}else{",a("O",8).c,"}","}"].join("\n")}];for(var g=0,d=c.length;g<d;++g){e.push(c[g].c)}return{g:1,c:e.join(""),s:[c[0].s,"(?:","-",c[1].s,"(?:","-",c[2].s,"(?:","(?:T| )?",c[3].s,":",c[4].s,"(?::",c[5].s,")?","(?:(?:\\.|,)(\\d+))?","(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?",")?",")?",")?"].join("")}},U:{g:1,c:"u = parseInt(results[{0}], 10);\n",s:"(-?\\d+)"}}})}());Ext.apply(Date.prototype,{dateFormat:function(a){if(Date.formatFunctions[a]==null){Date.createFormat(a)}return Date.formatFunctions[a].call(this)},getTimezone:function(){return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"")},getGMTOffset:function(a){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+(a?":":"")+String.leftPad(Math.abs(this.getTimezoneOffset()%60),2,"0")},getDayOfYear:function(){var b=0,e=this.clone(),a=this.getMonth(),c;for(c=0,e.setDate(1),e.setMonth(0);c<a;e.setMonth(++c)){b+=e.getDaysInMonth()}return b+this.getDate()-1},getWeekOfYear:function(){var a=86400000,b=7*a;return function(){var d=Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+3)/a,c=Math.floor(d/7),e=new Date(c*b).getUTCFullYear();return c-Math.floor(Date.UTC(e,0,7)/b)+1}}(),isLeapYear:function(){var a=this.getFullYear();return!!((a&3)==0&&(a%100||(a%400==0&&a)))},getFirstDayOfMonth:function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a},getLastDayOfMonth:function(){return this.getLastDateOfMonth().getDay()},getFirstDateOfMonth:function(){return new Date(this.getFullYear(),this.getMonth(),1)},getLastDateOfMonth:function(){return new Date(this.getFullYear(),this.getMonth(),this.getDaysInMonth())},getDaysInMonth:function(){var a=[31,28,31,30,31,30,31,31,30,31,30,31];return function(){var b=this.getMonth();return b==1&&this.isLeapYear()?29:a[b]}}(),getSuffix:function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},clone:function(){return new Date(this.getTime())},isDST:function(){return new Date(this.getFullYear(),0,1).getTimezoneOffset()!=this.getTimezoneOffset()},clearTime:function(g){if(g){return this.clone().clearTime()}var b=this.getDate();this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);if(this.getDate()!=b){for(var a=1,e=this.add(Date.HOUR,a);e.getDate()!=b;a++,e=this.add(Date.HOUR,a)){}this.setDate(b);this.setHours(e.getHours())}return this},add:function(b,c){var e=this.clone();if(!b||c===0){return e}switch(b.toLowerCase()){case Date.MILLI:e.setMilliseconds(this.getMilliseconds()+c);break;case Date.SECOND:e.setSeconds(this.getSeconds()+c);break;case Date.MINUTE:e.setMinutes(this.getMinutes()+c);break;case Date.HOUR:e.setHours(this.getHours()+c);break;case Date.DAY:e.setDate(this.getDate()+c);break;case Date.MONTH:var a=this.getDate();if(a>28){a=Math.min(a,this.getFirstDateOfMonth().add("mo",c).getLastDateOfMonth().getDate())}e.setDate(a);e.setMonth(this.getMonth()+c);break;case Date.YEAR:e.setFullYear(this.getFullYear()+c);break}return e},between:function(c,a){var b=this.getTime();return c.getTime()<=b&&b<=a.getTime()}});Date.prototype.format=Date.prototype.dateFormat;if(Ext.isSafari&&(navigator.userAgent.match(/WebKit\/(\d+)/)[1]||NaN)<420){Ext.apply(Date.prototype,{_xMonth:Date.prototype.setMonth,_xDate:Date.prototype.setDate,setMonth:function(a){if(a<=-1){var d=Math.ceil(-a),c=Math.ceil(d/12),b=(d%12)?12-d%12:0;this.setFullYear(this.getFullYear()-c);return this._xMonth(b)}else{return this._xMonth(a)}},setDate:function(a){return this.setTime(this.getTime()-(this.getDate()-a)*86400000)}})}Ext.util.MixedCollection=function(b,a){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents("clear","add","replace","remove","sort");this.allowFunctions=b===true;if(a){this.getKey=a}Ext.util.MixedCollection.superclass.constructor.call(this)};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(b,c){if(arguments.length==1){c=arguments[0];b=this.getKey(c)}if(typeof b!="undefined"&&b!==null){var a=this.map[b];if(typeof a!="undefined"){return this.replace(b,c)}this.map[b]=c}this.length++;this.items.push(c);this.keys.push(b);this.fireEvent("add",this.length-1,c,b);return c},getKey:function(a){return a.id},replace:function(c,d){if(arguments.length==1){d=arguments[0];c=this.getKey(d)}var a=this.map[c];if(typeof c=="undefined"||c===null||typeof a=="undefined"){return this.add(c,d)}var b=this.indexOfKey(c);this.items[b]=d;this.map[c]=d;this.fireEvent("replace",c,a,d);return d},addAll:function(e){if(arguments.length>1||Ext.isArray(e)){var b=arguments.length>1?arguments:e;for(var d=0,a=b.length;d<a;d++){this.add(b[d])}}else{for(var c in e){if(this.allowFunctions||typeof e[c]!="function"){this.add(c,e[c])}}}},each:function(e,d){var b=[].concat(this.items);for(var c=0,a=b.length;c<a;c++){if(e.call(d||b[c],b[c],c,a)===false){break}}},eachKey:function(d,c){for(var b=0,a=this.keys.length;b<a;b++){d.call(c||window,this.keys[b],this.items[b],b,a)}},find:function(d,c){for(var b=0,a=this.items.length;b<a;b++){if(d.call(c||window,this.items[b],this.keys[b])){return this.items[b]}}return null},insert:function(a,b,c){if(arguments.length==2){c=arguments[1];b=this.getKey(c)}if(this.containsKey(b)){this.suspendEvents();this.removeKey(b);this.resumeEvents()}if(a>=this.length){return this.add(b,c)}this.length++;this.items.splice(a,0,c);if(typeof b!="undefined"&&b!==null){this.map[b]=c}this.keys.splice(a,0,b);this.fireEvent("add",a,c,b);return c},remove:function(a){return this.removeAt(this.indexOf(a))},removeAt:function(a){if(a<this.length&&a>=0){this.length--;var c=this.items[a];this.items.splice(a,1);var b=this.keys[a];if(typeof b!="undefined"){delete this.map[b]}this.keys.splice(a,1);this.fireEvent("remove",c,b);return c}return false},removeKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(a){return this.items.indexOf(a)},indexOfKey:function(a){return this.keys.indexOf(a)},item:function(b){var a=this.map[b],c=a!==undefined?a:(typeof b=="number")?this.items[b]:undefined;return typeof c!="function"||this.allowFunctions?c:null},itemAt:function(a){return this.items[a]},key:function(a){return this.map[a]},contains:function(a){return this.indexOf(a)!=-1},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},_sort:function(k,a,j){var d,e,b=String(a).toUpperCase()=="DESC"?-1:1,h=[],l=this.keys,g=this.items;j=j||function(i,c){return i-c};for(d=0,e=g.length;d<e;d++){h[h.length]={key:l[d],value:g[d],index:d}}h.sort(function(i,c){var m=j(i[k],c[k])*b;if(m===0){m=(i.index<c.index?-1:1)}return m});for(d=0,e=h.length;d<e;d++){g[d]=h[d].value;l[d]=h[d].key}this.fireEvent("sort",this)},sort:function(a,b){this._sort("value",a,b)},reorder:function(d){this.suspendEvents();var b=this.items,c=0,g=b.length,a=[],e=[],h;for(h in d){a[d[h]]=b[h]}for(c=0;c<g;c++){if(d[c]==undefined){e.push(b[c])}}for(c=0;c<g;c++){if(a[c]==undefined){a[c]=e.shift()}}this.clear();this.addAll(a);this.resumeEvents();this.fireEvent("sort",this)},keySort:function(a,b){this._sort("key",a,b||function(d,c){var g=String(d).toUpperCase(),e=String(c).toUpperCase();return g>e?1:(g<e?-1:0)})},getRange:function(e,a){var b=this.items;if(b.length<1){return[]}e=e||0;a=Math.min(typeof a=="undefined"?this.length-1:a,this.length-1);var c,d=[];if(e<=a){for(c=e;c<=a;c++){d[d.length]=b[c]}}else{for(c=e;c>=a;c--){d[d.length]=b[c]}}return d},filter:function(c,b,d,a){if(Ext.isEmpty(b,false)){return this.clone()}b=this.createValueMatcher(b,d,a);return this.filterBy(function(e){return e&&b.test(e[c])})},filterBy:function(g,e){var h=new Ext.util.MixedCollection();h.getKey=this.getKey;var b=this.keys,d=this.items;for(var c=0,a=d.length;c<a;c++){if(g.call(e||this,d[c],b[c])){h.add(b[c],d[c])}}return h},findIndex:function(c,b,e,d,a){if(Ext.isEmpty(b,false)){return-1}b=this.createValueMatcher(b,d,a);return this.findIndexBy(function(g){return g&&b.test(g[c])},null,e)},findIndexBy:function(g,e,h){var b=this.keys,d=this.items;for(var c=(h||0),a=d.length;c<a;c++){if(g.call(e||this,d[c],b[c])){return c}}return-1},createValueMatcher:function(c,e,a,b){if(!c.exec){var d=Ext.escapeRe;c=String(c);if(e===true){c=d(c)}else{c="^"+d(c);if(b===true){c+="$"}}c=new RegExp(c,a?"":"i")}return c},clone:function(){var e=new Ext.util.MixedCollection();var b=this.keys,d=this.items;for(var c=0,a=d.length;c<a;c++){e.add(b[c],d[c])}e.getKey=this.getKey;return e}});Ext.util.MixedCollection.prototype.get=Ext.util.MixedCollection.prototype.item;Ext.util.JSON=new(function(){var useHasOwn=!!{}.hasOwnProperty,isNative=function(){var useNative=null;return function(){if(useNative===null){useNative=Ext.USE_NATIVE_JSON&&window.JSON&&JSON.toString()=="[object JSON]"}return useNative}}(),pad=function(n){return n<10?"0"+n:n},doDecode=function(json){return eval("("+json+")")},doEncode=function(o){if(!Ext.isDefined(o)||o===null){return"null"}else{if(Ext.isArray(o)){return encodeArray(o)}else{if(Ext.isDate(o)){return Ext.util.JSON.encodeDate(o)}else{if(Ext.isString(o)){return encodeString(o)}else{if(typeof o=="number"){return isFinite(o)?String(o):"null"}else{if(Ext.isBoolean(o)){return String(o)}else{var a=["{"],b,i,v;for(i in o){if(!o.getElementsByTagName){if(!useHasOwn||o.hasOwnProperty(i)){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(",")}a.push(doEncode(i),":",v===null?"null":doEncode(v));b=true}}}}a.push("}");return a.join("")}}}}}}},m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},encodeString=function(s){if(/["\\\x00-\x1f]/.test(s)){return'"'+s.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"'}return'"'+s+'"'},encodeArray=function(o){var a=["["],b,i,l=o.length,v;for(i=0;i<l;i+=1){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(",")}a.push(v===null?"null":Ext.util.JSON.encode(v));b=true}}a.push("]");return a.join("")};this.encodeDate=function(o){return'"'+o.getFullYear()+"-"+pad(o.getMonth()+1)+"-"+pad(o.getDate())+"T"+pad(o.getHours())+":"+pad(o.getMinutes())+":"+pad(o.getSeconds())+'"'};this.encode=function(){var ec;return function(o){if(!ec){ec=isNative()?JSON.stringify:doEncode}return ec(o)}}();this.decode=function(){var dc;return function(json){if(!dc){dc=isNative()?JSON.parse:doDecode}return dc(json)}}()})();Ext.encode=Ext.util.JSON.encode;Ext.decode=Ext.util.JSON.decode;Ext.util.Format=function(){var trimRe=/^\s+|\s+$/g,stripTagsRE=/<\/?[^>]+>/gi,stripScriptsRe=/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,nl2brRe=/\r?\n/g;return{ellipsis:function(value,len,word){if(value&&value.length>len){if(word){var vs=value.substr(0,len-2),index=Math.max(vs.lastIndexOf(" "),vs.lastIndexOf("."),vs.lastIndexOf("!"),vs.lastIndexOf("?"));if(index==-1||index<(len-15)){return value.substr(0,len-3)+"..."}else{return vs.substr(0,index)+"..."}}else{return value.substr(0,len-3)+"..."}}return value},undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){return value!==undefined&&value!==""?value:defaultValue},htmlEncode:function(value){return!value?value:String(value).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;")},htmlDecode:function(value){return!value?value:String(value).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&")},trim:function(value){return String(value).replace(trimRe,"")},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},capitalize:function(value){return!value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase()},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args)}else{return eval(fn).call(window,value)}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split("."),whole=ps[0],sub=ps[1]?"."+ps[1]:".00",r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,"$1,$2")}v=whole+sub;if(v.charAt(0)=="-"){return"-$"+v.substr(1)}return"$"+v},date:function(v,format){if(!v){return""}if(!Ext.isDate(v)){v=new Date(Date.parse(v))}return v.dateFormat(format||"m/d/Y")},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format)}},stripTags:function(v){return!v?v:String(v).replace(stripTagsRE,"")},stripScripts:function(v){return!v?v:String(v).replace(stripScriptsRe,"")},fileSize:function(size){if(size<1024){return size+" bytes"}else{if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB"}else{return(Math.round(((size*10)/1048576))/10)+" MB"}}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=new Function("v","return v "+a+";")}return fns[a](v)}}(),round:function(value,precision){var result=Number(value);if(typeof precision=="number"){precision=Math.pow(10,precision);result=Math.round(value*precision)/precision}return result},number:function(v,format){if(!format){return v}v=Ext.num(v,NaN);if(isNaN(v)){return""}var comma=",",dec=".",i18n=false,neg=v<0;v=Math.abs(v);if(format.substr(format.length-2)=="/i"){format=format.substr(0,format.length-2);i18n=true;comma=".";dec=","}var hasComma=format.indexOf(comma)!=-1,psplit=(i18n?format.replace(/[^\d\,]/g,""):format.replace(/[^\d\.]/g,"")).split(dec);if(1<psplit.length){v=v.toFixed(psplit[1].length)}else{if(2<psplit.length){throw("NumberFormatException: invalid format, formats should have no more than 1 period: "+format)}else{v=v.toFixed(0)}}var fnum=v.toString();psplit=fnum.split(".");if(hasComma){var cnum=psplit[0],parr=[],j=cnum.length,m=Math.floor(j/3),n=cnum.length%3||3;for(var i=0;i<j;i+=n){if(i!=0){n=3}parr[parr.length]=cnum.substr(i,n);m-=1}fnum=parr.join(comma);if(psplit[1]){fnum+=dec+psplit[1]}}else{if(psplit[1]){fnum=psplit[0]+dec+psplit[1]}}return(neg?"-":"")+format.replace(/[\d,?\.?]+/,fnum)},numberRenderer:function(format){return function(v){return Ext.util.Format.number(v,format)}},plural:function(v,s,p){return v+" "+(v==1?s:(p?p:s+"s"))},nl2br:function(v){return Ext.isEmpty(v)?"":v.replace(nl2brRe,"<br/>")}}}();Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var y=this,j=y.html,q=/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,d=/^<tpl\b[^>]*?for="(.*?)"/,v=/^<tpl\b[^>]*?if="(.*?)"/,x=/^<tpl\b[^>]*?exec="(.*?)"/,r,p=0,k=[],o="values",w="parent",l="xindex",n="xcount",e="return ",c="with(values){ ";j=["<tpl>",j,"</tpl>"].join("");while((r=j.match(q))){var b=r[0].match(d),a=r[0].match(v),A=r[0].match(x),g=null,h=null,t=null,z=b&&b[1]?b[1]:"";if(a){g=a&&a[1]?a[1]:null;if(g){h=new Function(o,w,l,n,c+e+(Ext.util.Format.htmlDecode(g))+"; }")}}if(A){g=A&&A[1]?A[1]:null;if(g){t=new Function(o,w,l,n,c+(Ext.util.Format.htmlDecode(g))+"; }")}}if(z){switch(z){case".":z=new Function(o,w,c+e+o+"; }");break;case"..":z=new Function(o,w,c+e+w+"; }");break;default:z=new Function(o,w,c+e+z+"; }")}}k.push({id:p,target:z,exec:t,test:h,body:r[1]||""});j=j.replace(r[0],"{xtpl"+p+"}");++p}for(var u=k.length-1;u>=0;--u){y.compileTpl(k[u])}y.master=k[k.length-1];y.tpls=k};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(a,k,j,d,c){var h=this,g,m=h.tpls[a],l,b=[];if((m.test&&!m.test.call(h,k,j,d,c))||(m.exec&&m.exec.call(h,k,j,d,c))){return""}l=m.target?m.target.call(h,k,j):k;g=l.length;j=m.target?k:j;if(m.target&&Ext.isArray(l)){for(var e=0,g=l.length;e<g;e++){b[b.length]=m.compiled.call(h,l[e],j,e+1,g)}return b.join("")}return m.compiled.call(h,l,j,d,c)},compileTpl:function(tpl){var fm=Ext.util.Format,useF=this.disableFormats!==true,sep=Ext.isGecko?"+":",",body;function fn(m,name,format,args,math){if(name.substr(0,4)=="xtpl"){return"'"+sep+"this.applySubTemplate("+name.substr(4)+", values, parent, xindex, xcount)"+sep+"'"}var v;if(name==="."){v="values"}else{if(name==="#"){v="xindex"}else{if(name.indexOf(".")!=-1){v=name}else{v="values['"+name+"']"}}}if(math){v="("+v+math+")"}if(format&&useF){args=args?","+args:"";if(format.substr(0,5)!="this."){format="fm."+format+"("}else{format='this.call("'+format.substr(5)+'", ';args=", values"}}else{args="";format="("+v+" === undefined ? '' : "}return"'"+sep+format+v+args+")"+sep+"'"}function codeFn(m,code){return"'"+sep+"("+code.replace(/\\'/g,"'")+")"+sep+"'"}if(Ext.isGecko){body="tpl.compiled = function(values, parent, xindex, xcount){ return '"+tpl.body.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn)+"';};"}else{body=["tpl.compiled = function(values, parent, xindex, xcount){ return ['"];body.push(tpl.body.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn));body.push("'].join('');};");body=body.join("")}eval(body);return this},applyTemplate:function(a){return this.master.compiled.call(this,a,{},1,1)},compile:function(){return this}});Ext.XTemplate.prototype.apply=Ext.XTemplate.prototype.applyTemplate;Ext.XTemplate.from=function(a){a=Ext.getDom(a);return new Ext.XTemplate(a.value||a.innerHTML)};Ext.util.CSS=function(){var d=null;var c=document;var b=/(-[a-z])/gi;var a=function(e,g){return g.charAt(1).toUpperCase()};return{createStyleSheet:function(i,l){var h;var g=c.getElementsByTagName("head")[0];var k=c.createElement("style");k.setAttribute("type","text/css");if(l){k.setAttribute("id",l)}if(Ext.isIE){g.appendChild(k);h=k.styleSheet;h.cssText=i}else{try{k.appendChild(c.createTextNode(i))}catch(j){k.cssText=i}g.appendChild(k);h=k.styleSheet?k.styleSheet:(k.sheet||c.styleSheets[c.styleSheets.length-1])}this.cacheStyleSheet(h);return h},removeStyleSheet:function(g){var e=c.getElementById(g);if(e){e.parentNode.removeChild(e)}},swapStyleSheet:function(h,e){this.removeStyleSheet(h);var g=c.createElement("link");g.setAttribute("rel","stylesheet");g.setAttribute("type","text/css");g.setAttribute("id",h);g.setAttribute("href",e);c.getElementsByTagName("head")[0].appendChild(g)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(h){if(!d){d={}}try{var k=h.cssRules||h.rules;for(var g=k.length-1;g>=0;--g){d[k[g].selectorText.toLowerCase()]=k[g]}}catch(i){}},getRules:function(h){if(d===null||h){d={};var k=c.styleSheets;for(var j=0,g=k.length;j<g;j++){try{this.cacheStyleSheet(k[j])}catch(l){}}}return d},getRule:function(e,h){var g=this.getRules(h);if(!Ext.isArray(e)){return g[e.toLowerCase()]}for(var j=0;j<e.length;j++){if(g[e[j]]){return g[e[j].toLowerCase()]}}return null},updateRule:function(e,j,h){if(!Ext.isArray(e)){var k=this.getRule(e);if(k){k.style[j.replace(b,a)]=h;return true}}else{for(var g=0;g<e.length;g++){if(this.updateRule(e[g],j,h)){return true}}}return false}}}();Ext.util.ClickRepeater=Ext.extend(Ext.util.Observable,{constructor:function(b,a){this.el=Ext.get(b);this.el.unselectable();Ext.apply(this,a);this.addEvents("mousedown","click","mouseup");if(!this.disabled){this.disabled=true;this.enable()}if(this.handler){this.on("click",this.handler,this.scope||this)}Ext.util.ClickRepeater.superclass.constructor.call(this)},interval:20,delay:250,preventDefault:true,stopDefault:false,timer:0,enable:function(){if(this.disabled){this.el.on("mousedown",this.handleMouseDown,this);if(Ext.isIE){this.el.on("dblclick",this.handleDblClick,this)}if(this.preventDefault||this.stopDefault){this.el.on("click",this.eventOptions,this)}}this.disabled=false},disable:function(a){if(a||!this.disabled){clearTimeout(this.timer);if(this.pressClass){this.el.removeClass(this.pressClass)}Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeAllListeners()}this.disabled=true},setDisabled:function(a){this[a?"disable":"enable"]()},eventOptions:function(a){if(this.preventDefault){a.preventDefault()}if(this.stopDefault){a.stopEvent()}},destroy:function(){this.disable(true);Ext.destroy(this.el);this.purgeListeners()},handleDblClick:function(a){clearTimeout(this.timer);this.el.blur();this.fireEvent("mousedown",this,a);this.fireEvent("click",this,a)},handleMouseDown:function(a){clearTimeout(this.timer);this.el.blur();if(this.pressClass){this.el.addClass(this.pressClass)}this.mousedownTime=new Date();Ext.getDoc().on("mouseup",this.handleMouseUp,this);this.el.on("mouseout",this.handleMouseOut,this);this.fireEvent("mousedown",this,a);this.fireEvent("click",this,a);if(this.accelerate){this.delay=400}this.timer=this.click.defer(this.delay||this.interval,this,[a])},click:function(a){this.fireEvent("click",this,a);this.timer=this.click.defer(this.accelerate?this.easeOutExpo(this.mousedownTime.getElapsed(),400,-390,12000):this.interval,this,[a])},easeOutExpo:function(e,a,h,g){return(e==g)?a+h:h*(-Math.pow(2,-10*e/g)+1)+a},handleMouseOut:function(){clearTimeout(this.timer);if(this.pressClass){this.el.removeClass(this.pressClass)}this.el.on("mouseover",this.handleMouseReturn,this)},handleMouseReturn:function(){this.el.un("mouseover",this.handleMouseReturn,this);if(this.pressClass){this.el.addClass(this.pressClass)}this.click()},handleMouseUp:function(a){clearTimeout(this.timer);this.el.un("mouseover",this.handleMouseReturn,this);this.el.un("mouseout",this.handleMouseOut,this);Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeClass(this.pressClass);this.fireEvent("mouseup",this,a)}});Ext.KeyNav=function(b,a){this.el=Ext.get(b);Ext.apply(this,a);if(!this.disabled){this.disabled=true;this.enable()}};Ext.KeyNav.prototype={disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,relay:function(c){var a=c.getKey();var b=this.keyToHandler[a];if(b&&this[b]){if(this.doRelay(c,this[b],b)!==true){c[this.defaultEventAction]()}}},doRelay:function(c,b,a){return b.call(this.scope||this,c)},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},stopKeyUp:function(b){var a=b.getKey();if(a>=37&&a<=40){b.stopEvent()}},destroy:function(){this.disable()},enable:function(){if(this.disabled){if(Ext.isSafari2){this.el.on("keyup",this.stopKeyUp,this)}this.el.on(this.isKeydown()?"keydown":"keypress",this.relay,this);this.disabled=false}},disable:function(){if(!this.disabled){if(Ext.isSafari2){this.el.un("keyup",this.stopKeyUp,this)}this.el.un(this.isKeydown()?"keydown":"keypress",this.relay,this);this.disabled=true}},setDisabled:function(a){this[a?"disable":"enable"]()},isKeydown:function(){return this.forceKeyDown||Ext.EventManager.useKeydown}};Ext.KeyMap=function(c,b,a){this.el=Ext.get(c);this.eventName=a||"keydown";this.bindings=[];if(b){this.addBinding(b)}this.enable()};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(b){if(Ext.isArray(b)){Ext.each(b,function(j){this.addBinding(j)},this);return}var k=b.key,g=b.fn||b.handler,l=b.scope;if(b.stopEvent){this.stopEvent=b.stopEvent}if(typeof k=="string"){var h=[];var e=k.toUpperCase();for(var c=0,d=e.length;c<d;c++){h.push(e.charCodeAt(c))}k=h}var a=Ext.isArray(k);var i=function(o){if(this.checkModifiers(b,o)){var m=o.getKey();if(a){for(var n=0,j=k.length;n<j;n++){if(k[n]==m){if(this.stopEvent){o.stopEvent()}g.call(l||window,m,o);return}}}else{if(m==k){if(this.stopEvent){o.stopEvent()}g.call(l||window,m,o)}}}};this.bindings.push(i)},checkModifiers:function(b,h){var j,d,g=["shift","ctrl","alt"];for(var c=0,a=g.length;c<a;++c){d=g[c];j=b[d];if(!(j===undefined||(j===h[d+"Key"]))){return false}}return true},on:function(b,d,c){var h,a,e,g;if(typeof b=="object"&&!Ext.isArray(b)){h=b.key;a=b.shift;e=b.ctrl;g=b.alt}else{h=b}this.addBinding({key:h,shift:a,ctrl:e,alt:g,fn:d,scope:c})},handleKeyDown:function(g){if(this.enabled){var c=this.bindings;for(var d=0,a=c.length;d<a;d++){c[d].call(this,g)}}},isEnabled:function(){return this.enabled},enable:function(){if(!this.enabled){this.el.on(this.eventName,this.handleKeyDown,this);this.enabled=true}},disable:function(){if(this.enabled){this.el.removeListener(this.eventName,this.handleKeyDown,this);this.enabled=false}},setDisabled:function(a){this[a?"disable":"enable"]()}};Ext.util.TextMetrics=function(){var a;return{measure:function(b,c,d){if(!a){a=Ext.util.TextMetrics.Instance(b,d)}a.bind(b);a.setFixedWidth(d||"auto");return a.getSize(c)},createInstance:function(b,c){return Ext.util.TextMetrics.Instance(b,c)}}}();Ext.util.TextMetrics.Instance=function(b,d){var c=new Ext.Element(document.createElement("div"));document.body.appendChild(c.dom);c.position("absolute");c.setLeftTop(-1000,-1000);c.hide();if(d){c.setWidth(d)}var a={getSize:function(g){c.update(g);var e=c.getSize();c.update("");return e},bind:function(e){c.setStyle(Ext.fly(e).getStyles("font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"))},setFixedWidth:function(e){c.setWidth(e)},getWidth:function(e){c.dom.style.width="auto";return this.getSize(e).width},getHeight:function(e){return this.getSize(e).height}};a.bind(b);return a};Ext.Element.addMethods({getTextWidth:function(c,b,a){return(Ext.util.TextMetrics.measure(this.dom,Ext.value(c,this.dom.innerHTML,true)).width).constrain(b||0,a||1000000)}});Ext.util.Cookies={set:function(c,e){var a=arguments;var i=arguments.length;var b=(i>2)?a[2]:null;var h=(i>3)?a[3]:"/";var d=(i>4)?a[4]:null;var g=(i>5)?a[5]:false;document.cookie=c+"="+escape(e)+((b===null)?"":("; expires="+b.toGMTString()))+((h===null)?"":("; path="+h))+((d===null)?"":("; domain="+d))+((g===true)?"; secure":"")},get:function(d){var b=d+"=";var g=b.length;var a=document.cookie.length;var e=0;var c=0;while(e<a){c=e+g;if(document.cookie.substring(e,c)==b){return Ext.util.Cookies.getCookieVal(c)}e=document.cookie.indexOf(" ",e)+1;if(e===0){break}}return null},clear:function(a){if(Ext.util.Cookies.get(a)){document.cookie=a+"=; expires=Thu, 01-Jan-70 00:00:01 GMT"}},getCookieVal:function(b){var a=document.cookie.indexOf(";",b);if(a==-1){a=document.cookie.length}return unescape(document.cookie.substring(b,a))}};Ext.handleError=function(a){throw a};Ext.Error=function(a){this.message=(this.lang[a])?this.lang[a]:a};Ext.Error.prototype=new Error();Ext.apply(Ext.Error.prototype,{lang:{},name:"Ext.Error",getName:function(){return this.name},getMessage:function(){return this.message},toJson:function(){return Ext.encode(this)}});Ext.ComponentMgr=function(){var c=new Ext.util.MixedCollection();var b={};var a={};return{register:function(d){c.add(d)},unregister:function(d){c.remove(d)},get:function(d){return c.get(d)},onAvailable:function(g,e,d){c.on("add",function(h,i){if(i.id==g){e.call(d||i,i);c.un("add",e,d)}})},all:c,types:b,ptypes:a,isRegistered:function(d){return b[d]!==undefined},isPluginRegistered:function(d){return a[d]!==undefined},registerType:function(e,d){b[e]=d;d.xtype=e},create:function(d,e){return d.render?d:new b[d.xtype||e](d)},registerPlugin:function(e,d){a[e]=d;d.ptype=e},createPlugin:function(e,g){var d=a[e.ptype||g];if(d.init){return d}else{return new d(e)}}}}();Ext.reg=Ext.ComponentMgr.registerType;Ext.preg=Ext.ComponentMgr.registerPlugin;Ext.create=Ext.ComponentMgr.create;Ext.Component=function(b){b=b||{};if(b.initialConfig){if(b.isAction){this.baseAction=b}b=b.initialConfig}else{if(b.tagName||b.dom||Ext.isString(b)){b={applyTo:b,id:b.id||b}}}this.initialConfig=b;Ext.apply(this,b);this.addEvents("added","disable","enable","beforeshow","show","beforehide","hide","removed","beforerender","render","afterrender","beforedestroy","destroy","beforestaterestore","staterestore","beforestatesave","statesave");this.getId();Ext.ComponentMgr.register(this);Ext.Component.superclass.constructor.call(this);if(this.baseAction){this.baseAction.addComponent(this)}this.initComponent();if(this.plugins){if(Ext.isArray(this.plugins)){for(var c=0,a=this.plugins.length;c<a;c++){this.plugins[c]=this.initPlugin(this.plugins[c])}}else{this.plugins=this.initPlugin(this.plugins)}}if(this.stateful!==false){this.initState()}if(this.applyTo){this.applyToMarkup(this.applyTo);delete this.applyTo}else{if(this.renderTo){this.render(this.renderTo);delete this.renderTo}}};Ext.Component.AUTO_ID=1000;Ext.extend(Ext.Component,Ext.util.Observable,{disabled:false,hidden:false,autoEl:"div",disabledClass:"x-item-disabled",allowDomMove:true,autoShow:false,hideMode:"display",hideParent:false,rendered:false,tplWriteMode:"overwrite",bubbleEvents:[],ctype:"Ext.Component",actionMode:"el",getActionEl:function(){return this[this.actionMode]},initPlugin:function(a){if(a.ptype&&!Ext.isFunction(a.init)){a=Ext.ComponentMgr.createPlugin(a)}else{if(Ext.isString(a)){a=Ext.ComponentMgr.createPlugin({ptype:a})}}a.init(this);return a},initComponent:function(){if(this.listeners){this.on(this.listeners);delete this.listeners}this.enableBubble(this.bubbleEvents)},render:function(b,a){if(!this.rendered&&this.fireEvent("beforerender",this)!==false){if(!b&&this.el){this.el=Ext.get(this.el);b=this.el.dom.parentNode;this.allowDomMove=false}this.container=Ext.get(b);if(this.ctCls){this.container.addClass(this.ctCls)}this.rendered=true;if(a!==undefined){if(Ext.isNumber(a)){a=this.container.dom.childNodes[a]}else{a=Ext.getDom(a)}}this.onRender(this.container,a||null);if(this.autoShow){this.el.removeClass(["x-hidden","x-hide-"+this.hideMode])}if(this.cls){this.el.addClass(this.cls);delete this.cls}if(this.style){this.el.applyStyles(this.style);delete this.style}if(this.overCls){this.el.addClassOnOver(this.overCls)}this.fireEvent("render",this);var c=this.getContentTarget();if(this.html){c.update(Ext.DomHelper.markup(this.html));delete this.html}if(this.contentEl){var d=Ext.getDom(this.contentEl);Ext.fly(d).removeClass(["x-hidden","x-hide-display"]);c.appendChild(d)}if(this.tpl){if(!this.tpl.compile){this.tpl=new Ext.XTemplate(this.tpl)}if(this.data){this.tpl[this.tplWriteMode](c,this.data);delete this.data}}this.afterRender(this.container);if(this.hidden){this.doHide()}if(this.disabled){this.disable(true)}if(this.stateful!==false){this.initStateEvents()}this.fireEvent("afterrender",this)}return this},update:function(b,d,a){var c=this.getContentTarget();if(this.tpl&&typeof b!=="string"){this.tpl[this.tplWriteMode](c,b||{})}else{var e=Ext.isObject(b)?Ext.DomHelper.markup(b):b;c.update(e,d,a)}},onAdded:function(a,b){this.ownerCt=a;this.initRef();this.fireEvent("added",this,a,b)},onRemoved:function(){this.removeRef();this.fireEvent("removed",this,this.ownerCt);delete this.ownerCt},initRef:function(){if(this.ref&&!this.refOwner){var d=this.ref.split("/"),c=d.length,b=0,a=this;while(a&&b<c){a=a.ownerCt;++b}if(a){a[this.refName=d[--b]]=this;this.refOwner=a}}},removeRef:function(){if(this.refOwner&&this.refName){delete this.refOwner[this.refName];delete this.refOwner}},initState:function(){if(Ext.state.Manager){var b=this.getStateId();if(b){var a=Ext.state.Manager.get(b);if(a){if(this.fireEvent("beforestaterestore",this,a)!==false){this.applyState(Ext.apply({},a));this.fireEvent("staterestore",this,a)}}}}},getStateId:function(){return this.stateId||((/^(ext-comp-|ext-gen)/).test(String(this.id))?null:this.id)},initStateEvents:function(){if(this.stateEvents){for(var a=0,b;b=this.stateEvents[a];a++){this.on(b,this.saveState,this,{delay:100})}}},applyState:function(a){if(a){Ext.apply(this,a)}},getState:function(){return null},saveState:function(){if(Ext.state.Manager&&this.stateful!==false){var b=this.getStateId();if(b){var a=this.getState();if(this.fireEvent("beforestatesave",this,a)!==false){Ext.state.Manager.set(b,a);this.fireEvent("statesave",this,a)}}}},applyToMarkup:function(a){this.allowDomMove=false;this.el=Ext.get(a);this.render(this.el.dom.parentNode)},addClass:function(a){if(this.el){this.el.addClass(a)}else{this.cls=this.cls?this.cls+" "+a:a}return this},removeClass:function(a){if(this.el){this.el.removeClass(a)}else{if(this.cls){this.cls=this.cls.split(" ").remove(a).join(" ")}}return this},onRender:function(b,a){if(!this.el&&this.autoEl){if(Ext.isString(this.autoEl)){this.el=document.createElement(this.autoEl)}else{var c=document.createElement("div");Ext.DomHelper.overwrite(c,this.autoEl);this.el=c.firstChild}if(!this.el.id){this.el.id=this.getId()}}if(this.el){this.el=Ext.get(this.el);if(this.allowDomMove!==false){b.dom.insertBefore(this.el.dom,a);if(c){Ext.removeNode(c);c=null}}}},getAutoCreate:function(){var a=Ext.isObject(this.autoCreate)?this.autoCreate:Ext.apply({},this.defaultAutoCreate);if(this.id&&!a.id){a.id=this.id}return a},afterRender:Ext.emptyFn,destroy:function(){if(!this.isDestroyed){if(this.fireEvent("beforedestroy",this)!==false){this.destroying=true;this.beforeDestroy();if(this.ownerCt&&this.ownerCt.remove){this.ownerCt.remove(this,false)}if(this.rendered){this.el.remove();if(this.actionMode=="container"||this.removeMode=="container"){this.container.remove()}}if(this.focusTask&&this.focusTask.cancel){this.focusTask.cancel()}this.onDestroy();Ext.ComponentMgr.unregister(this);this.fireEvent("destroy",this);this.purgeListeners();this.destroying=false;this.isDestroyed=true}}},deleteMembers:function(){var b=arguments;for(var c=0,a=b.length;c<a;++c){delete this[b[c]]}},beforeDestroy:Ext.emptyFn,onDestroy:Ext.emptyFn,getEl:function(){return this.el},getContentTarget:function(){return this.el},getId:function(){return this.id||(this.id="ext-comp-"+(++Ext.Component.AUTO_ID))},getItemId:function(){return this.itemId||this.getId()},focus:function(b,a){if(a){this.focusTask=new Ext.util.DelayedTask(this.focus,this,[b,false]);this.focusTask.delay(Ext.isNumber(a)?a:10);return}if(this.rendered&&!this.isDestroyed){this.el.focus();if(b===true){this.el.dom.select()}}return this},blur:function(){if(this.rendered){this.el.blur()}return this},disable:function(a){if(this.rendered){this.onDisable()}this.disabled=true;if(a!==true){this.fireEvent("disable",this)}return this},onDisable:function(){this.getActionEl().addClass(this.disabledClass);this.el.dom.disabled=true},enable:function(){if(this.rendered){this.onEnable()}this.disabled=false;this.fireEvent("enable",this);return this},onEnable:function(){this.getActionEl().removeClass(this.disabledClass);this.el.dom.disabled=false},setDisabled:function(a){return this[a?"disable":"enable"]()},show:function(){if(this.fireEvent("beforeshow",this)!==false){this.hidden=false;if(this.autoRender){this.render(Ext.isBoolean(this.autoRender)?Ext.getBody():this.autoRender)}if(this.rendered){this.onShow()}this.fireEvent("show",this)}return this},onShow:function(){this.getVisibilityEl().removeClass("x-hide-"+this.hideMode)},hide:function(){if(this.fireEvent("beforehide",this)!==false){this.doHide();this.fireEvent("hide",this)}return this},doHide:function(){this.hidden=true;if(this.rendered){this.onHide()}},onHide:function(){this.getVisibilityEl().addClass("x-hide-"+this.hideMode)},getVisibilityEl:function(){return this.hideParent?this.container:this.getActionEl()},setVisible:function(a){return this[a?"show":"hide"]()},isVisible:function(){return this.rendered&&this.getVisibilityEl().isVisible()},cloneConfig:function(b){b=b||{};var c=b.id||Ext.id();var a=Ext.applyIf(b,this.initialConfig);a.id=c;return new this.constructor(a)},getXType:function(){return this.constructor.xtype},isXType:function(b,a){if(Ext.isFunction(b)){b=b.xtype}else{if(Ext.isObject(b)){b=b.constructor.xtype}}return!a?("/"+this.getXTypes()+"/").indexOf("/"+b+"/")!=-1:this.constructor.xtype==b},getXTypes:function(){var a=this.constructor;if(!a.xtypes){var d=[],b=this;while(b&&b.constructor.xtype){d.unshift(b.constructor.xtype);b=b.constructor.superclass}a.xtypeChain=d;a.xtypes=d.join("/")}return a.xtypes},findParentBy:function(a){for(var b=this.ownerCt;(b!=null)&&!a(b,this);b=b.ownerCt){}return b||null},findParentByType:function(a){return Ext.isFunction(a)?this.findParentBy(function(b){return b.constructor===a}):this.findParentBy(function(b){return b.constructor.xtype===a})},getPositionEl:function(){return this.positionEl||this.el},purgeListeners:function(){Ext.Component.superclass.purgeListeners.call(this);if(this.mons){this.on("beforedestroy",this.clearMons,this,{single:true})}},clearMons:function(){Ext.each(this.mons,function(a){a.item.un(a.ename,a.fn,a.scope)},this);this.mons=[]},createMons:function(){if(!this.mons){this.mons=[];this.on("beforedestroy",this.clearMons,this,{single:true})}},mon:function(g,b,d,c,a){this.createMons();if(Ext.isObject(b)){var j=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var i=b;for(var h in i){if(j.test(h)){continue}if(Ext.isFunction(i[h])){this.mons.push({item:g,ename:h,fn:i[h],scope:i.scope});g.on(h,i[h],i.scope,i)}else{this.mons.push({item:g,ename:h,fn:i[h],scope:i.scope});g.on(h,i[h])}}return}this.mons.push({item:g,ename:b,fn:d,scope:c});g.on(b,d,c,a)},mun:function(h,c,g,e){var j,d;this.createMons();for(var b=0,a=this.mons.length;b<a;++b){d=this.mons[b];if(h===d.item&&c==d.ename&&g===d.fn&&e===d.scope){this.mons.splice(b,1);h.un(c,g,e);j=true;break}}return j},nextSibling:function(){if(this.ownerCt){var a=this.ownerCt.items.indexOf(this);if(a!=-1&&a+1<this.ownerCt.items.getCount()){return this.ownerCt.items.itemAt(a+1)}}return null},previousSibling:function(){if(this.ownerCt){var a=this.ownerCt.items.indexOf(this);if(a>0){return this.ownerCt.items.itemAt(a-1)}}return null},getBubbleTarget:function(){return this.ownerCt}});Ext.reg("component",Ext.Component);Ext.Action=Ext.extend(Object,{constructor:function(a){this.initialConfig=a;this.itemId=a.itemId=(a.itemId||a.id||Ext.id());this.items=[]},isAction:true,setText:function(a){this.initialConfig.text=a;this.callEach("setText",[a])},getText:function(){return this.initialConfig.text},setIconClass:function(a){this.initialConfig.iconCls=a;this.callEach("setIconClass",[a])},getIconClass:function(){return this.initialConfig.iconCls},setDisabled:function(a){this.initialConfig.disabled=a;this.callEach("setDisabled",[a])},enable:function(){this.setDisabled(false)},disable:function(){this.setDisabled(true)},isDisabled:function(){return this.initialConfig.disabled},setHidden:function(a){this.initialConfig.hidden=a;this.callEach("setVisible",[!a])},show:function(){this.setHidden(false)},hide:function(){this.setHidden(true)},isHidden:function(){return this.initialConfig.hidden},setHandler:function(b,a){this.initialConfig.handler=b;this.initialConfig.scope=a;this.callEach("setHandler",[b,a])},each:function(b,a){Ext.each(this.items,b,a)},callEach:function(e,b){var d=this.items;for(var c=0,a=d.length;c<a;c++){d[c][e].apply(d[c],b)}},addComponent:function(a){this.items.push(a);a.on("destroy",this.removeComponent,this)},removeComponent:function(a){this.items.remove(a)},execute:function(){this.initialConfig.handler.apply(this.initialConfig.scope||window,arguments)}});(function(){Ext.Layer=function(d,c){d=d||{};var e=Ext.DomHelper;var h=d.parentEl,g=h?Ext.getDom(h):document.body;if(c){this.dom=Ext.getDom(c)}if(!this.dom){var i=d.dh||{tag:"div",cls:"x-layer"};this.dom=e.append(g,i)}if(d.cls){this.addClass(d.cls)}this.constrain=d.constrain!==false;this.setVisibilityMode(Ext.Element.VISIBILITY);if(d.id){this.id=this.dom.id=d.id}else{this.id=Ext.id(this.dom)}this.zindex=d.zindex||this.getZIndex();this.position("absolute",this.zindex);if(d.shadow){this.shadowOffset=d.shadowOffset||4;this.shadow=new Ext.Shadow({offset:this.shadowOffset,mode:d.shadow})}else{this.shadowOffset=0}this.useShim=d.shim!==false&&Ext.useShims;this.useDisplay=d.useDisplay;this.hide()};var a=Ext.Element.prototype;var b=[];Ext.extend(Ext.Layer,Ext.Element,{getZIndex:function(){return this.zindex||parseInt((this.getShim()||this).getStyle("z-index"),10)||11000},getShim:function(){if(!this.useShim){return null}if(this.shim){return this.shim}var d=b.shift();if(!d){d=this.createShim();d.enableDisplayMode("block");d.dom.style.display="none";d.dom.style.visibility="visible"}var c=this.dom.parentNode;if(d.dom.parentNode!=c){c.insertBefore(d.dom,this.dom)}d.setStyle("z-index",this.getZIndex()-2);this.shim=d;return d},hideShim:function(){if(this.shim){this.shim.setDisplayed(false);b.push(this.shim);delete this.shim}},disableShadow:function(){if(this.shadow){this.shadowDisabled=true;this.shadow.hide();this.lastShadowOffset=this.shadowOffset;this.shadowOffset=0}},enableShadow:function(c){if(this.shadow){this.shadowDisabled=false;this.shadowOffset=this.lastShadowOffset;delete this.lastShadowOffset;if(c){this.sync(true)}}},sync:function(d){var n=this.shadow;if(!this.updating&&this.isVisible()&&(n||this.useShim)){var i=this.getShim(),m=this.getWidth(),j=this.getHeight(),e=this.getLeft(true),o=this.getTop(true);if(n&&!this.shadowDisabled){if(d&&!n.isVisible()){n.show(this)}else{n.realign(e,o,m,j)}if(i){if(d){i.show()}var k=n.el.getXY(),g=i.dom.style,c=n.el.getSize();g.left=(k[0])+"px";g.top=(k[1])+"px";g.width=(c.width)+"px";g.height=(c.height)+"px"}}else{if(i){if(d){i.show()}i.setSize(m,j);i.setLeftTop(e,o)}}}},destroy:function(){this.hideShim();if(this.shadow){this.shadow.hide()}this.removeAllListeners();Ext.removeNode(this.dom);delete this.dom},remove:function(){this.destroy()},beginUpdate:function(){this.updating=true},endUpdate:function(){this.updating=false;this.sync(true)},hideUnders:function(c){if(this.shadow){this.shadow.hide()}this.hideShim()},constrainXY:function(){if(this.constrain){var j=Ext.lib.Dom.getViewWidth(),d=Ext.lib.Dom.getViewHeight();var o=Ext.getDoc().getScroll();var n=this.getXY();var k=n[0],i=n[1];var c=this.shadowOffset;var l=this.dom.offsetWidth+c,e=this.dom.offsetHeight+c;var g=false;if((k+l)>j+o.left){k=j-l-c;g=true}if((i+e)>d+o.top){i=d-e-c;g=true}if(k<o.left){k=o.left;g=true}if(i<o.top){i=o.top;g=true}if(g){if(this.avoidY){var m=this.avoidY;if(i<=m&&(i+e)>=m){i=m-e-5}}n=[k,i];this.storeXY(n);a.setXY.call(this,n);this.sync()}}return this},getConstrainOffset:function(){return this.shadowOffset},isVisible:function(){return this.visible},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("")}else{if(this.lastXY){a.setXY.call(this,this.lastXY)}else{if(this.lastLT){a.setLeftTop.call(this,this.lastLT[0],this.lastLT[1])}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false)}else{this.setLeftTop(-10000,-10000)}},setVisible:function(i,h,k,l,j){if(i){this.showAction()}if(h&&i){var g=function(){this.sync(true);if(l){l()}}.createDelegate(this);a.setVisible.call(this,true,true,k,g,j)}else{if(!i){this.hideUnders(true)}var g=l;if(h){g=function(){this.hideAction();if(l){l()}}.createDelegate(this)}a.setVisible.call(this,i,h,k,g,j);if(i){this.sync(true)}else{if(!h){this.hideAction()}}}return this},storeXY:function(c){delete this.lastLT;this.lastXY=c},storeLeftTop:function(d,c){delete this.lastXY;this.lastLT=[d,c]},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments)},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(c){this.storeLeftTop(c,this.getTop(true));a.setLeft.apply(this,arguments);this.sync();return this},setTop:function(c){this.storeLeftTop(this.getLeft(true),c);a.setTop.apply(this,arguments);this.sync();return this},setLeftTop:function(d,c){this.storeLeftTop(d,c);a.setLeftTop.apply(this,arguments);this.sync();return this},setXY:function(j,h,k,l,i){this.fixDisplay();this.beforeAction();this.storeXY(j);var g=this.createCB(l);a.setXY.call(this,j,h,k,g,i);if(!h){g()}return this},createCB:function(e){var d=this;return function(){d.constrainXY();d.sync(true);if(e){e()}}},setX:function(g,h,j,k,i){this.setXY([g,this.getY()],h,j,k,i);return this},setY:function(k,g,i,j,h){this.setXY([this.getX(),k],g,i,j,h);return this},setSize:function(j,k,i,m,n,l){this.beforeAction();var g=this.createCB(n);a.setSize.call(this,j,k,i,m,g,l);if(!i){g()}return this},setWidth:function(i,h,k,l,j){this.beforeAction();var g=this.createCB(l);a.setWidth.call(this,i,h,k,g,j);if(!h){g()}return this},setHeight:function(j,i,l,m,k){this.beforeAction();var g=this.createCB(m);a.setHeight.call(this,j,i,l,g,k);if(!i){g()}return this},setBounds:function(o,m,p,i,n,k,l,j){this.beforeAction();var g=this.createCB(l);if(!n){this.storeXY([o,m]);a.setXY.call(this,[o,m]);a.setSize.call(this,p,i,n,k,g,j);g()}else{a.setBounds.call(this,o,m,p,i,n,k,g,j)}return this},setZIndex:function(c){this.zindex=c;this.setStyle("z-index",c+2);if(this.shadow){this.shadow.setZIndex(c+1)}if(this.shim){this.shim.setStyle("z-index",c)}return this}})})();Ext.Shadow=function(d){Ext.apply(this,d);if(typeof this.mode!="string"){this.mode=this.defaultMode}var e=this.offset,c={h:0};var b=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":c.w=0;c.l=c.t=e;c.t-=1;if(Ext.isIE){c.l-=this.offset+b;c.t-=this.offset+b;c.w-=b;c.h-=b;c.t+=1}break;case"sides":c.w=(e*2);c.l=-e;c.t=e-1;if(Ext.isIE){c.l-=(this.offset-b);c.t-=this.offset+b;c.l+=1;c.w-=(this.offset-b)*2;c.w-=b+1;c.h-=1}break;case"frame":c.w=c.h=(e*2);c.l=c.t=-e;c.t+=1;c.h-=2;if(Ext.isIE){c.l-=(this.offset-b);c.t-=(this.offset-b);c.l+=1;c.w-=(this.offset+b+1);c.h-=(this.offset+b);c.h+=1}break}this.adjusts=c};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(a){a=Ext.get(a);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=a.dom){this.el.insertBefore(a)}}this.el.setStyle("z-index",this.zIndex||parseInt(a.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"}this.realign(a.getLeft(true),a.getTop(true),a.getWidth(),a.getHeight());this.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(b,r,q,g){if(!this.el){return}var n=this.adjusts,k=this.el.dom,u=k.style;var i=0;u.left=(b+n.l)+"px";u.top=(r+n.t)+"px";var p=(q+n.w),e=(g+n.h),j=p+"px",o=e+"px";if(u.width!=j||u.height!=o){u.width=j;u.height=o;if(!Ext.isIE){var m=k.childNodes;var c=Math.max(0,(p-12))+"px";m[0].childNodes[1].style.width=c;m[1].childNodes[1].style.width=c;m[2].childNodes[1].style.width=c;m[1].style.height=Math.max(0,(e-12))+"px"}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el}},setZIndex:function(a){this.zIndex=a;if(this.el){this.el.setStyle("z-index",a)}}};Ext.Shadow.Pool=function(){var b=[];var a=Ext.isIE?'<div class="x-ie-shadow"></div>':'<div class="x-shadow"><div class="xst"><div class="xstl"></div><div class="xstc"></div><div class="xstr"></div></div><div class="xsc"><div class="xsml"></div><div class="xsmc"></div><div class="xsmr"></div></div><div class="xsb"><div class="xsbl"></div><div class="xsbc"></div><div class="xsbr"></div></div></div>';return{pull:function(){var c=b.shift();if(!c){c=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,a));c.autoBoxAdjust=false}return c},push:function(c){b.push(c)}}}();Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents("resize","move")},boxReady:false,deferHeight:false,setSize:function(b,d){if(typeof b=="object"){d=b.height;b=b.width}if(Ext.isDefined(b)&&Ext.isDefined(this.boxMinWidth)&&(b<this.boxMinWidth)){b=this.boxMinWidth}if(Ext.isDefined(d)&&Ext.isDefined(this.boxMinHeight)&&(d<this.boxMinHeight)){d=this.boxMinHeight}if(Ext.isDefined(b)&&Ext.isDefined(this.boxMaxWidth)&&(b>this.boxMaxWidth)){b=this.boxMaxWidth}if(Ext.isDefined(d)&&Ext.isDefined(this.boxMaxHeight)&&(d>this.boxMaxHeight)){d=this.boxMaxHeight}if(!this.boxReady){this.width=b;this.height=d;return this}if(this.cacheSizes!==false&&this.lastSize&&this.lastSize.width==b&&this.lastSize.height==d){return this}this.lastSize={width:b,height:d};var c=this.adjustSize(b,d),g=c.width,a=c.height,e;if(g!==undefined||a!==undefined){e=this.getResizeEl();if(!this.deferHeight&&g!==undefined&&a!==undefined){e.setSize(g,a)}else{if(!this.deferHeight&&a!==undefined){e.setHeight(a)}else{if(g!==undefined){e.setWidth(g)}}}this.onResize(g,a,b,d);this.fireEvent("resize",this,g,a,b,d)}return this},setWidth:function(a){return this.setSize(a)},setHeight:function(a){return this.setSize(undefined,a)},getSize:function(){return this.getResizeEl().getSize()},getWidth:function(){return this.getResizeEl().getWidth()},getHeight:function(){return this.getResizeEl().getHeight()},getOuterSize:function(){var a=this.getResizeEl();return{width:a.getWidth()+a.getMargins("lr"),height:a.getHeight()+a.getMargins("tb")}},getPosition:function(a){var b=this.getPositionEl();if(a===true){return[b.getLeft(true),b.getTop(true)]}return this.xy||b.getXY()},getBox:function(a){var c=this.getPosition(a);var b=this.getSize();b.x=c[0];b.y=c[1];return b},updateBox:function(a){this.setSize(a.width,a.height);this.setPagePosition(a.x,a.y);return this},getResizeEl:function(){return this.resizeEl||this.el},setAutoScroll:function(a){if(this.rendered){this.getContentTarget().setOverflow(a?"auto":"")}this.autoScroll=a;return this},setPosition:function(a,g){if(a&&typeof a[1]=="number"){g=a[1];a=a[0]}this.x=a;this.y=g;if(!this.boxReady){return this}var b=this.adjustPosition(a,g);var e=b.x,d=b.y;var c=this.getPositionEl();if(e!==undefined||d!==undefined){if(e!==undefined&&d!==undefined){c.setLeftTop(e,d)}else{if(e!==undefined){c.setLeft(e)}else{if(d!==undefined){c.setTop(d)}}}this.onPosition(e,d);this.fireEvent("move",this,e,d)}return this},setPagePosition:function(a,c){if(a&&typeof a[1]=="number"){c=a[1];a=a[0]}this.pageX=a;this.pageY=c;if(!this.boxReady){return}if(a===undefined||c===undefined){return}var b=this.getPositionEl().translatePoints(a,c);this.setPosition(b.left,b.top);return this},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}this.boxReady=true;Ext.isDefined(this.autoScroll)&&this.setAutoScroll(this.autoScroll);this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.getResizeEl().getWidth(),this.autoHeight?undefined:this.getResizeEl().getHeight());return this},onResize:function(d,b,a,c){},onPosition:function(a,b){},adjustSize:function(a,b){if(this.autoWidth){a="auto"}if(this.autoHeight){b="auto"}return{width:a,height:b}},adjustPosition:function(a,b){return{x:a,y:b}}});Ext.reg("box",Ext.BoxComponent);Ext.Spacer=Ext.extend(Ext.BoxComponent,{autoEl:"div"});Ext.reg("spacer",Ext.Spacer);Ext.SplitBar=function(c,e,b,d,a){this.el=Ext.get(c,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(e,true);this.orientation=b||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!a){this.proxy=Ext.SplitBar.createProxy(this.orientation)}else{this.proxy=Ext.get(a).dom}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=d||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h")}else{this.placement=d||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v")}this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this)};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(a,e){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:"&#160;"},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var c=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var d=c-this.activeMinSize;var b=Math.max(this.activeMaxSize-c,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?d:b,this.placement==Ext.SplitBar.LEFT?b:d,this.tickSize);this.dd.setYConstraint(0,0)}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?d:b,this.placement==Ext.SplitBar.TOP?b:d,this.tickSize)}this.dragSpecs.startSize=c;this.dragSpecs.startPoint=[a,e];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,a,e)},onEndProxyDrag:function(c){Ext.get(this.proxy).setDisplayed(false);var b=Ext.lib.Event.getXY(c);if(this.overlay){Ext.destroy(this.overlay);delete this.overlay}var a;if(this.orientation==Ext.SplitBar.HORIZONTAL){a=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?b[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-b[0])}else{a=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?b[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-b[1])}a=Math.min(Math.max(a,this.activeMinSize),this.activeMaxSize);if(a!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,a)!==false){this.adapter.setElementSize(this,a);this.fireEvent("moved",this,a);this.fireEvent("resize",this,a)}}},getAdapter:function(){return this.adapter},setAdapter:function(a){this.adapter=a;this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(a){this.minSize=a},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(a){this.maxSize=a},setCurrentSize:function(b){var a=this.animate;this.animate=false;this.adapter.setElementSize(this,b);this.animate=a},destroy:function(a){Ext.destroy(this.shim,Ext.get(this.proxy));this.dd.unreg();if(a){this.el.remove()}this.purgeListeners()}});Ext.SplitBar.createProxy=function(b){var c=new Ext.Element(document.createElement("div"));document.body.appendChild(c.dom);c.unselectable();var a="x-splitbar-proxy";c.addClass(a+" "+(b==Ext.SplitBar.HORIZONTAL?a+"-h":a+"-v"));return c.dom};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(a){},getElementSize:function(a){if(a.orientation==Ext.SplitBar.HORIZONTAL){return a.resizingEl.getWidth()}else{return a.resizingEl.getHeight()}},setElementSize:function(b,a,c){if(b.orientation==Ext.SplitBar.HORIZONTAL){if(!b.animate){b.resizingEl.setWidth(a);if(c){c(b,a)}}else{b.resizingEl.setWidth(a,true,0.1,c,"easeOut")}}else{if(!b.animate){b.resizingEl.setHeight(a);if(c){c(b,a)}}else{b.resizingEl.setHeight(a,true,0.1,c,"easeOut")}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(a){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(a)};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(a){this.basic.init(a)},getElementSize:function(a){return this.basic.getElementSize(a)},setElementSize:function(b,a,c){this.basic.setElementSize(b,a,this.moveSplitter.createDelegate(this,[b]))},moveSplitter:function(a){var b=Ext.SplitBar;switch(a.placement){case b.LEFT:a.el.setX(a.resizingEl.getRight());break;case b.RIGHT:a.el.setStyle("right",(this.container.getWidth()-a.resizingEl.getLeft())+"px");break;case b.TOP:a.el.setY(a.resizingEl.getBottom());break;case b.BOTTOM:a.el.setY(a.resizingEl.getTop()-a.el.getHeight());break}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4;Ext.Container=Ext.extend(Ext.BoxComponent,{bufferResize:50,autoDestroy:true,forceLayout:false,defaultType:"panel",resizeEvent:"resize",bubbleEvents:["add","remove"],initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var a=this.items;if(a){delete this.items;this.add(a)}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout()}},setLayout:function(a){if(this.layout&&this.layout!=a){this.layout.setContainer(null)}this.layout=a;this.initItems();a.setContainer(this)},afterRender:function(){Ext.Container.superclass.afterRender.call(this);if(!this.layout){this.layout="auto"}if(Ext.isObject(this.layout)&&!this.layout.layout){this.layoutConfig=this.layout;this.layout=this.layoutConfig.type}if(Ext.isString(this.layout)){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig)}this.setLayout(this.layout);if(this.activeItem!==undefined){var a=this.activeItem;delete this.activeItem;this.layout.setActiveItem(a)}if(!this.ownerCt){this.doLayout(false,true)}if(this.monitorResize===true){Ext.EventManager.onWindowResize(this.doLayout,this,[false])}},getLayoutTarget:function(){return this.el},getComponentId:function(a){return a.getItemId()},add:function(b){this.initItems();var e=arguments.length>1;if(e||Ext.isArray(b)){var a=[];Ext.each(e?arguments:b,function(h){a.push(this.add(h))},this);return a}var g=this.lookupComponent(this.applyDefaults(b));var d=this.items.length;if(this.fireEvent("beforeadd",this,g,d)!==false&&this.onBeforeAdd(g)!==false){this.items.add(g);g.onAdded(this,d);this.onAdd(g);this.fireEvent("add",this,g,d)}return g},onAdd:function(a){},onAdded:function(a,b){this.ownerCt=a;this.initRef();this.cascade(function(d){d.initRef()});this.fireEvent("added",this,a,b)},insert:function(h,g){this.initItems();var e=arguments,d=e.length;if(d>2){var b=[];for(var j=d-1;j>=1;--j){b.push(this.insert(h,e[j]))}return b}var k=this.lookupComponent(this.applyDefaults(g));h=Math.min(h,this.items.length);if(this.fireEvent("beforeadd",this,k,h)!==false&&this.onBeforeAdd(k)!==false){if(k.ownerCt==this){this.items.remove(k)}this.items.insert(h,k);k.onAdded(this,h);this.onAdd(k);this.fireEvent("add",this,k,h)}return k},applyDefaults:function(b){var a=this.defaults;if(a){if(Ext.isFunction(a)){a=a.call(this,b)}if(Ext.isString(b)){b=Ext.ComponentMgr.get(b);Ext.apply(b,a)}else{if(!b.events){Ext.applyIf(b,a)}else{Ext.apply(b,a)}}}return b},onBeforeAdd:function(a){if(a.ownerCt){a.ownerCt.remove(a,false)}if(this.hideBorders===true){a.border=(a.border===true)}},remove:function(a,b){this.initItems();var d=this.getComponent(a);if(d&&this.fireEvent("beforeremove",this,d)!==false){this.doRemove(d,b);this.fireEvent("remove",this,d)}return d},onRemove:function(a){},doRemove:function(e,d){var b=this.layout,a=b&&this.rendered;if(a){b.onRemove(e)}this.items.remove(e);e.onRemoved();this.onRemove(e);if(d===true||(d!==false&&this.autoDestroy)){e.destroy()}if(a){b.afterRemove(e)}},removeAll:function(c){this.initItems();var e,g=[],b=[];this.items.each(function(h){g.push(h)});for(var d=0,a=g.length;d<a;++d){e=g[d];this.remove(e,c);if(e.ownerCt!==this){b.push(e)}}return b},getComponent:function(a){if(Ext.isObject(a)){a=a.getItemId()}return this.items.get(a)},lookupComponent:function(a){if(Ext.isString(a)){return Ext.ComponentMgr.get(a)}else{if(!a.events){return this.createComponent(a)}}return a},createComponent:function(a,d){if(a.render){return a}var b=Ext.create(Ext.apply({ownerCt:this},a),d||this.defaultType);delete b.initialConfig.ownerCt;delete b.ownerCt;return b},canLayout:function(){var a=this.getVisibilityEl();return a&&a.dom&&!a.isStyle("display","none")},doLayout:function(g,e){var k=this.rendered,j=e||this.forceLayout;if(this.collapsed||!this.canLayout()){this.deferLayout=this.deferLayout||!g;if(!j){return}g=g&&!this.deferLayout}else{delete this.deferLayout}if(k&&this.layout){this.layout.layout()}if(g!==true&&this.items){var d=this.items.items;for(var b=0,a=d.length;b<a;b++){var h=d[b];if(h.doLayout){h.doLayout(false,j)}}}if(k){this.onLayout(g,j)}this.hasLayout=true;delete this.forceLayout},onLayout:Ext.emptyFn,shouldBufferLayout:function(){var a=this.hasLayout;if(this.ownerCt){return a?!this.hasLayoutPending():false}return a},hasLayoutPending:function(){var a=false;this.ownerCt.bubble(function(b){if(b.layoutPending){a=true;return false}});return a},onShow:function(){Ext.Container.superclass.onShow.call(this);if(Ext.isDefined(this.deferLayout)){delete this.deferLayout;this.doLayout(true)}},getLayout:function(){if(!this.layout){var a=new Ext.layout.AutoLayout(this.layoutConfig);this.setLayout(a)}return this.layout},beforeDestroy:function(){var a;if(this.items){while(a=this.items.first()){this.doRemove(a,true)}}if(this.monitorResize){Ext.EventManager.removeResizeListener(this.doLayout,this)}Ext.destroy(this.layout);Ext.Container.superclass.beforeDestroy.call(this)},bubble:function(c,b,a){var d=this;while(d){if(c.apply(b||d,a||[d])===false){break}d=d.ownerCt}return this},cascade:function(g,e,b){if(g.apply(e||this,b||[this])!==false){if(this.items){var d=this.items.items;for(var c=0,a=d.length;c<a;c++){if(d[c].cascade){d[c].cascade(g,e,b)}else{g.apply(e||d[c],b||[d[c]])}}}}return this},findById:function(c){var a,b=this;this.cascade(function(d){if(b!=d&&d.id===c){a=d;return false}});return a||null},findByType:function(b,a){return this.findBy(function(d){return d.isXType(b,a)})},find:function(b,a){return this.findBy(function(d){return d[b]===a})},findBy:function(d,c){var a=[],b=this;this.cascade(function(e){if(b!=e&&d.call(c||e,e,b)===true){a.push(e)}});return a},get:function(a){return this.items.get(a)}});Ext.Container.LAYOUTS={};Ext.reg("container",Ext.Container);Ext.layout.ContainerLayout=Ext.extend(Object,{monitorResize:false,activeItem:null,constructor:function(a){this.id=Ext.id(null,"ext-layout-");Ext.apply(this,a)},type:"container",IEMeasureHack:function(k,g){var a=k.dom.childNodes,b=a.length,n,m=[],l,h,j;for(h=0;h<b;h++){n=a[h];l=Ext.get(n);if(l){m[h]=l.getStyle("display");l.setStyle({display:"none"})}}j=k?k.getViewSize(g):{};for(h=0;h<b;h++){n=a[h];l=Ext.get(n);if(l){l.setStyle({display:m[h]})}}return j},getLayoutTargetSize:Ext.EmptyFn,layout:function(){var a=this.container,b=a.getLayoutTarget();if(!(this.hasLayout||Ext.isEmpty(this.targetCls))){b.addClass(this.targetCls)}this.onLayout(a,b);a.fireEvent("afterlayout",a,this)},onLayout:function(a,b){this.renderAll(a,b)},isValidParent:function(b,a){return a&&b.getPositionEl().dom.parentNode==(a.dom||a)},renderAll:function(e,g){var b=e.items.items,d,h,a=b.length;for(d=0;d<a;d++){h=b[d];if(h&&(!h.rendered||!this.isValidParent(h,g))){this.renderItem(h,d,g)}}},renderItem:function(d,a,b){if(d){if(!d.rendered){d.render(b,a);this.configureItem(d,a)}else{if(!this.isValidParent(d,b)){if(Ext.isNumber(a)){a=b.dom.childNodes[a]}b.dom.insertBefore(d.getPositionEl().dom,a||null);d.container=b;this.configureItem(d,a)}}}},getRenderedItems:function(g){var e=g.getLayoutTarget(),h=g.items.items,a=h.length,d,j,b=[];for(d=0;d<a;d++){if((j=h[d]).rendered&&this.isValidParent(j,e)){b.push(j)}}return b},configureItem:function(d,a){if(this.extraCls){var b=d.getPositionEl?d.getPositionEl():d;b.addClass(this.extraCls)}if(d.doLayout&&this.forceLayout){d.doLayout()}if(this.renderHidden&&d!=this.activeItem){d.hide()}},onRemove:function(b){if(this.activeItem==b){delete this.activeItem}if(b.rendered&&this.extraCls){var a=b.getPositionEl?b.getPositionEl():b;a.removeClass(this.extraCls)}},afterRemove:function(a){if(a.removeRestore){a.removeMode="container";delete a.removeRestore}},onResize:function(){var c=this.container,a;if(c.collapsed){return}if(a=c.bufferResize&&c.shouldBufferLayout()){if(!this.resizeTask){this.resizeTask=new Ext.util.DelayedTask(this.runLayout,this);this.resizeBuffer=Ext.isNumber(a)?a:50}c.layoutPending=true;this.resizeTask.delay(this.resizeBuffer)}else{this.runLayout()}},runLayout:function(){var a=this.container;this.layout();a.onLayout();delete a.layoutPending},setContainer:function(b){if(this.monitorResize&&b!=this.container){var a=this.container;if(a){a.un(a.resizeEvent,this.onResize,this)}if(b){b.on(b.resizeEvent,this.onResize,this)}}this.container=b},parseMargins:function(b){if(Ext.isNumber(b)){b=b.toString()}var c=b.split(" "),a=c.length;if(a==1){c[1]=c[2]=c[3]=c[0]}else{if(a==2){c[2]=c[0];c[3]=c[1]}else{if(a==3){c[3]=c[1]}}}return{top:parseInt(c[0],10)||0,right:parseInt(c[1],10)||0,bottom:parseInt(c[2],10)||0,left:parseInt(c[3],10)||0}},fieldTpl:(function(){var a=new Ext.Template('<div class="x-form-item {itemCls}" tabIndex="-1">','<label for="{id}" style="{labelStyle}" class="x-form-item-label">{label}{labelSeparator}</label>','<div class="x-form-element" id="x-form-el-{id}" style="{elementStyle}">','</div><div class="{clearCls}"></div>',"</div>");a.disableFormats=true;return a.compile()})(),destroy:function(){if(this.resizeTask&&this.resizeTask.cancel){this.resizeTask.cancel()}if(!Ext.isEmpty(this.targetCls)){var a=this.container.getLayoutTarget();if(a){a.removeClass(this.targetCls)}}}});Ext.layout.AutoLayout=Ext.extend(Ext.layout.ContainerLayout,{type:"auto",monitorResize:true,onLayout:function(d,g){Ext.layout.AutoLayout.superclass.onLayout.call(this,d,g);var e=this.getRenderedItems(d),a=e.length,b,h;for(b=0;b<a;b++){h=e[b];if(h.doLayout){h.doLayout(true)}}}});Ext.Container.LAYOUTS.auto=Ext.layout.AutoLayout;Ext.layout.FitLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"fit",getLayoutTargetSize:function(){var a=this.container.getLayoutTarget();if(!a){return{}}return a.getStyleSize()},onLayout:function(a,b){Ext.layout.FitLayout.superclass.onLayout.call(this,a,b);if(!a.collapsed){this.setItemSize(this.activeItem||a.items.itemAt(0),this.getLayoutTargetSize())}},setItemSize:function(b,a){if(b&&a.height>0){b.setSize(a)}}});Ext.Container.LAYOUTS.fit=Ext.layout.FitLayout;Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,layoutOnCardChange:false,renderHidden:true,type:"card",setActiveItem:function(d){var a=this.activeItem,b=this.container;d=b.getComponent(d);if(d&&a!=d){if(a){a.hide();if(a.hidden!==true){return false}a.fireEvent("deactivate",a)}var c=d.doLayout&&(this.layoutOnCardChange||!d.rendered);this.activeItem=d;delete d.deferLayout;d.show();this.layout();if(c){d.doLayout()}d.fireEvent("activate",d)}},renderAll:function(a,b){if(this.deferredRender){this.renderItem(this.activeItem,undefined,b)}else{Ext.layout.CardLayout.superclass.renderAll.call(this,a,b)}}});Ext.Container.LAYOUTS.card=Ext.layout.CardLayout;Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"anchor",defaultAnchor:"100%",parseAnchorRE:/^(r|right|b|bottom)$/i,getLayoutTargetSize:function(){var a=this.container.getLayoutTarget();if(!a){return{}}return a.getStyleSize()},onLayout:function(m,p){Ext.layout.AnchorLayout.superclass.onLayout.call(this,m,p);var v=this.getLayoutTargetSize();var t=v.width,l=v.height;if(t<20&&l<20){return}var d,r;if(m.anchorSize){if(typeof m.anchorSize=="number"){d=m.anchorSize}else{d=m.anchorSize.width;r=m.anchorSize.height}}else{d=m.initialConfig.width;r=m.initialConfig.height}var o=this.getRenderedItems(m),n=o.length,j,q,s,g,b,e,u,k=[];for(j=0;j<n;j++){q=o[j];e=q.getPositionEl();if(!q.anchor&&q.items&&!Ext.isNumber(q.width)&&!(Ext.isIE6&&Ext.isStrict)){q.anchor=this.defaultAnchor}if(q.anchor){s=q.anchorSpec;if(!s){u=q.anchor.split(" ");q.anchorSpec=s={right:this.parseAnchor(u[0],q.initialConfig.width,d),bottom:this.parseAnchor(u[1],q.initialConfig.height,r)}}g=s.right?this.adjustWidthAnchor(s.right(t)-e.getMargins("lr"),q):undefined;b=s.bottom?this.adjustHeightAnchor(s.bottom(l)-e.getMargins("tb"),q):undefined;if(g||b){k.push({comp:q,width:g||undefined,height:b||undefined})}}}for(j=0,n=k.length;j<n;j++){q=k[j];q.comp.setSize(q.width,q.height)}},parseAnchor:function(c,h,b){if(c&&c!="none"){var e;if(this.parseAnchorRE.test(c)){var g=b-h;return function(a){if(a!==e){e=a;return a-g}}}else{if(c.indexOf("%")!=-1){var d=parseFloat(c.replace("%",""))*0.01;return function(a){if(a!==e){e=a;return Math.floor(a*d)}}}else{c=parseInt(c,10);if(!isNaN(c)){return function(a){if(a!==e){e=a;return a+c}}}}}}return false},adjustWidthAnchor:function(b,a){return b},adjustHeightAnchor:function(b,a){return b}});Ext.Container.LAYOUTS.anchor=Ext.layout.AnchorLayout;Ext.layout.ColumnLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"column",extraCls:"x-column",scrollOffset:0,targetCls:"x-column-layout-ct",isValidParent:function(b,a){return this.innerCt&&b.getPositionEl().dom.parentNode==this.innerCt.dom},getLayoutTargetSize:function(){var b=this.container.getLayoutTarget(),a;if(b){a=b.getViewSize();if(Ext.isIE&&Ext.isStrict&&a.width==0){a=b.getStyleSize()}a.width-=b.getPadding("lr");a.height-=b.getPadding("tb")}return a},renderAll:function(a,b){if(!this.innerCt){this.innerCt=b.createChild({cls:"x-column-inner"});this.innerCt.createChild({cls:"x-clear"})}Ext.layout.ColumnLayout.superclass.renderAll.call(this,a,this.innerCt)},onLayout:function(e,k){var g=e.items.items,j=g.length,n,b,a,o=[];this.renderAll(e,k);var r=this.getLayoutTargetSize();if(r.width<1&&r.height<1){return}var p=r.width-this.scrollOffset,d=r.height,q=p;this.innerCt.setWidth(p);for(b=0;b<j;b++){n=g[b];a=n.getPositionEl().getMargins("lr");o[b]=a;if(!n.columnWidth){q-=(n.getWidth()+a)}}q=q<0?0:q;for(b=0;b<j;b++){n=g[b];a=o[b];if(n.columnWidth){n.setSize(Math.floor(n.columnWidth*q)-a)}}if(Ext.isIE){if(b=k.getStyle("overflow")&&b!="hidden"&&!this.adjustmentPass){var l=this.getLayoutTargetSize();if(l.width!=r.width){this.adjustmentPass=true;this.onLayout(e,k)}}}delete this.adjustmentPass}});Ext.Container.LAYOUTS.column=Ext.layout.ColumnLayout;Ext.layout.BorderLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,rendered:false,type:"border",targetCls:"x-border-layout-ct",getLayoutTargetSize:function(){var a=this.container.getLayoutTarget();return a?a.getViewSize():{}},onLayout:function(g,I){var j,B,F,o,x=g.items.items,C=x.length;if(!this.rendered){j=[];for(B=0;B<C;B++){F=x[B];o=F.region;if(F.collapsed){j.push(F)}F.collapsed=false;if(!F.rendered){F.render(I,B);F.getPositionEl().addClass("x-border-panel")}this[o]=o!="center"&&F.split?new Ext.layout.BorderLayout.SplitRegion(this,F.initialConfig,o):new Ext.layout.BorderLayout.Region(this,F.initialConfig,o);this[o].render(I,F)}this.rendered=true}var v=this.getLayoutTargetSize();if(v.width<20||v.height<20){if(j){this.restoreCollapsed=j}return}else{if(this.restoreCollapsed){j=this.restoreCollapsed;delete this.restoreCollapsed}}var t=v.width,D=v.height,r=t,A=D,p=0,q=0,y=this.north,u=this.south,l=this.west,E=this.east,F=this.center,H,z,d,G;if(!F&&Ext.layout.BorderLayout.WARN!==false){throw"No center region defined in BorderLayout "+g.id}if(y&&y.isVisible()){H=y.getSize();z=y.getMargins();H.width=t-(z.left+z.right);H.x=z.left;H.y=z.top;p=H.height+H.y+z.bottom;A-=p;y.applyLayout(H)}if(u&&u.isVisible()){H=u.getSize();z=u.getMargins();H.width=t-(z.left+z.right);H.x=z.left;G=(H.height+z.top+z.bottom);H.y=D-G+z.top;A-=G;u.applyLayout(H)}if(l&&l.isVisible()){H=l.getSize();z=l.getMargins();H.height=A-(z.top+z.bottom);H.x=z.left;H.y=p+z.top;d=(H.width+z.left+z.right);q+=d;r-=d;l.applyLayout(H)}if(E&&E.isVisible()){H=E.getSize();z=E.getMargins();H.height=A-(z.top+z.bottom);d=(H.width+z.left+z.right);H.x=t-d+z.left;H.y=p+z.top;r-=d;E.applyLayout(H)}if(F){z=F.getMargins();var k={x:q+z.left,y:p+z.top,width:r-(z.left+z.right),height:A-(z.top+z.bottom)};F.applyLayout(k)}if(j){for(B=0,C=j.length;B<C;B++){j[B].collapse(false)}}if(Ext.isIE&&Ext.isStrict){I.repaint()}if(B=I.getStyle("overflow")&&B!="hidden"&&!this.adjustmentPass){var a=this.getLayoutTargetSize();if(a.width!=v.width||a.height!=v.height){this.adjustmentPass=true;this.onLayout(g,I)}}delete this.adjustmentPass},destroy:function(){var b=["north","south","east","west"],a,c;for(a=0;a<b.length;a++){c=this[b[a]];if(c){if(c.destroy){c.destroy()}else{if(c.split){c.split.destroy(true)}}}}Ext.layout.BorderLayout.superclass.destroy.call(this)}});Ext.layout.BorderLayout.Region=function(b,a,c){Ext.apply(this,a);this.layout=b;this.position=c;this.state={};if(typeof this.margins=="string"){this.margins=this.layout.parseMargins(this.margins)}this.margins=Ext.applyIf(this.margins||{},this.defaultMargins);if(this.collapsible){if(typeof this.cmargins=="string"){this.cmargins=this.layout.parseMargins(this.cmargins)}if(this.collapseMode=="mini"&&!this.cmargins){this.cmargins={left:0,top:0,right:0,bottom:0}}else{this.cmargins=Ext.applyIf(this.cmargins||{},c=="north"||c=="south"?this.defaultNSCMargins:this.defaultEWCMargins)}}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},floatingZIndex:100,isCollapsed:false,render:function(b,c){this.panel=c;c.el.enableDisplayMode();this.targetEl=b;this.el=c.el;var a=c.getState,d=this.position;c.getState=function(){return Ext.apply(a.call(c)||{},this.state)}.createDelegate(this);if(d!="center"){c.allowQueuedExpand=false;c.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible||this.floatable){c.collapseEl="el";c.slideAnchor=this.getSlideAnchor()}if(c.tools&&c.tools.toggle){c.tools.toggle.addClass("x-tool-collapse-"+d);c.tools.toggle.addClassOnOver("x-tool-collapse-"+d+"-over")}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var b=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');b.disableFormats=true;b.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=b}this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"});this.collapsedEl.enableDisplayMode("block");if(this.collapseMode=="mini"){this.collapsedEl.addClass("x-layout-cmini-"+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:"&#160;"});this.miniCollapsedEl.addClassOnOver("x-layout-mini-over");this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:true})}else{if(this.collapsible!==false&&!this.hideCollapseTool){var a=this.expandToolEl=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},true);a.addClassOnOver("x-tool-expand-"+this.position+"-over");a.on("click",this.onExpandClick,this,{stopEvent:true})}if(this.floatable!==false||this.titleCollapse){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this[this.floatable?"collapseClick":"onExpandClick"],this)}}}return this.collapsedEl},onExpandClick:function(a){if(this.isSlid){this.panel.expand(false)}else{this.panel.expand()}},onCollapseClick:function(a){this.panel.collapse()},beforeCollapse:function(c,a){this.lastAnim=a;if(this.splitEl){this.splitEl.hide()}this.getCollapsedEl().show();var b=this.panel.getEl();this.originalZIndex=b.getStyle("z-index");b.setStyle("z-index",100);this.isCollapsed=true;this.layout.layout()},onCollapse:function(a){this.panel.el.setStyle("z-index",1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility="visible"}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:0.2})}this.state.collapsed=true;this.panel.saveState()},beforeExpand:function(a){if(this.isSlid){this.afterSlideIn()}var b=this.getCollapsedEl();this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,b.getHeight())}else{this.panel.setSize(b.getWidth(),undefined)}b.hide();b.dom.style.visibility="hidden";this.panel.el.setStyle("z-index",this.floatingZIndex)},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show()}this.layout.layout();this.panel.el.setStyle("z-index",this.originalZIndex);this.state.collapsed=false;this.panel.saveState()},collapseClick:function(a){if(this.isSlid){a.stopPropagation();this.slideIn()}else{a.stopPropagation();this.slideOut()}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide()}else{if(this.splitEl){this.splitEl.hide()}}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show()}else{if(this.splitEl){this.splitEl.show()}}},isVisible:function(){return!this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(a){this.panel=a},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(a){var b=this.getCollapsedEl();b.setLeftTop(a.x,a.y);b.setSize(a.width,a.height)},applyLayout:function(a){if(this.isCollapsed){this.applyLayoutCollapsed(a)}else{this.panel.setPosition(a.x,a.y);this.panel.setSize(a.width,a.height)}},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){this.autoHideSlideTask=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={mouseout:function(a){if(!a.within(this.el,true)){this.autoHideSlideTask.delay(500)}},mouseover:function(a){this.autoHideSlideTask.cancel()},scope:this}}this.el.on(this.autoHideHd);this.collapsedEl.on(this.autoHideHd)}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);this.collapsedEl.un("mouseout",this.autoHideHd.mouseout);this.collapsedEl.un("mouseover",this.autoHideHd.mouseover)}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return}this.isSlid=true;var b=this.panel.tools,c,a;if(b&&b.toggle){b.toggle.hide()}this.el.show();a=this.panel.collapsed;this.panel.collapsed=false;if(this.position=="east"||this.position=="west"){c=this.panel.deferHeight;this.panel.deferHeight=false;this.panel.setSize(undefined,this.collapsedEl.getHeight());this.panel.deferHeight=c}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined)}this.panel.collapsed=a;this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",this.floatingZIndex+2);this.panel.el.replaceClass("x-panel-collapsed","x-panel-floating");if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:true})}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.panel.el.replaceClass("x-panel-floating","x-panel-collapsed");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var a=this.panel.tools;if(a&&a.toggle){a.toggle.show()}},slideIn:function(a){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(a);return}this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(a)},scope:this,block:true})}else{this.el.hide();this.afterSlideIn()}},slideInIf:function(a){if(!a.within(this.el)){this.slideIn()}},anchors:{west:"left",east:"right",north:"top",south:"bottom"},sanchors:{west:"l",east:"r",north:"t",south:"b"},canchors:{west:"tl-tr",east:"tr-tl",north:"tl-bl",south:"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){var a=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break}},getExpandAdj:function(){var b=this.collapsedEl,a=this.cmargins;switch(this.position){case"west":return[-(a.right+b.getWidth()+a.left),0];break;case"east":return[a.right+b.getWidth()+a.left,0];break;case"north":return[0,-(a.top+a.bottom+b.getHeight())];break;case"south":return[0,a.top+a.bottom+b.getHeight()];break}},destroy:function(){if(this.autoHideSlideTask&&this.autoHideSlideTask.cancel){this.autoHideSlideTask.cancel()}Ext.destroyMembers(this,"miniCollapsedEl","collapsedEl","expandToolEl")}};Ext.layout.BorderLayout.SplitRegion=function(b,a,c){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,b,a,c);this.applyLayout=this.applyFns[c]};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;this.panel.setPosition(c.x,c.y);var a=d.offsetWidth;b.left=(c.x+c.width-a)+"px";b.top=(c.y)+"px";b.height=Math.max(0,c.height)+"px";this.panel.setSize(c.width-a,c.height)},east:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;var a=d.offsetWidth;this.panel.setPosition(c.x+a,c.y);b.left=(c.x)+"px";b.top=(c.y)+"px";b.height=Math.max(0,c.height)+"px";this.panel.setSize(c.width-a,c.height)},north:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;var a=d.offsetHeight;this.panel.setPosition(c.x,c.y);b.left=(c.x)+"px";b.top=(c.y+c.height-a)+"px";b.width=Math.max(0,c.width)+"px";this.panel.setSize(c.width,c.height-a)},south:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;var a=d.offsetHeight;this.panel.setPosition(c.x,c.y+a);b.left=(c.x)+"px";b.top=(c.y)+"px";b.width=Math.max(0,c.width)+"px";this.panel.setSize(c.width,c.height-a)}},render:function(a,c){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,a,c);var d=this.position;this.splitEl=a.createChild({cls:"x-layout-split x-layout-split-"+d,html:"&#160;",id:this.panel.id+"-xsplit"});if(this.collapseMode=="mini"){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+d,html:"&#160;"});this.miniSplitEl.addClassOnOver("x-layout-mini-over");this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:true})}var b=this.splitSettings[d];this.split=new Ext.SplitBar(this.splitEl.dom,c.el,b.orientation);this.split.tickSize=this.tickSize;this.split.placement=b.placement;this.split.getMaximumSize=this[b.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[b.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[b.maxProp];if(c.hidden){this.splitEl.hide()}if(this.useSplitTips){this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip}if(this.collapsible){this.splitEl.on("dblclick",this.onCollapseClick,this)}},getSize:function(){if(this.isCollapsed){return this.collapsedEl.getSize()}var a=this.panel.getSize();if(this.position=="north"||this.position=="south"){a.height+=this.splitEl.dom.offsetHeight}else{a.width+=this.splitEl.dom.offsetWidth}return a},getHMaxSize:function(){var b=this.maxSize||10000;var a=this.layout.center;return Math.min(b,(this.el.getWidth()+a.el.getWidth())-a.getMinWidth())},getVMaxSize:function(){var b=this.maxSize||10000;var a=this.layout.center;return Math.min(b,(this.el.getHeight()+a.el.getHeight())-a.getMinHeight())},onSplitMove:function(b,a){var c=this.panel.getSize();this.lastSplitSize=a;if(this.position=="north"||this.position=="south"){this.panel.setSize(c.width,a);this.state.height=a}else{this.panel.setSize(a,c.height);this.state.width=a}this.layout.layout();this.panel.saveState();return false},getSplitBar:function(){return this.split},destroy:function(){Ext.destroy(this.miniSplitEl,this.split,this.splitEl);Ext.layout.BorderLayout.SplitRegion.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.border=Ext.layout.BorderLayout;Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",trackLabels:false,type:"form",onRemove:function(d){Ext.layout.FormLayout.superclass.onRemove.call(this,d);if(this.trackLabels){d.un("show",this.onFieldShow,this);d.un("hide",this.onFieldHide,this)}var b=d.getPositionEl(),a=d.getItemCt&&d.getItemCt();if(d.rendered&&a){if(b&&b.dom){b.insertAfter(a)}Ext.destroy(a);Ext.destroyMembers(d,"label","itemCt");if(d.customItemCt){Ext.destroyMembers(d,"getItemCt","customItemCt")}}},setContainer:function(a){Ext.layout.FormLayout.superclass.setContainer.call(this,a);if(a.labelAlign){a.addClass("x-form-label-"+a.labelAlign)}if(a.hideLabels){Ext.apply(this,{labelStyle:"display:none",elementStyle:"padding-left:0;",labelAdjust:0})}else{this.labelSeparator=Ext.isDefined(a.labelSeparator)?a.labelSeparator:this.labelSeparator;a.labelWidth=a.labelWidth||100;if(Ext.isNumber(a.labelWidth)){var b=Ext.isNumber(a.labelPad)?a.labelPad:5;Ext.apply(this,{labelAdjust:a.labelWidth+b,labelStyle:"width:"+a.labelWidth+"px;",elementStyle:"padding-left:"+(a.labelWidth+b)+"px"})}if(a.labelAlign=="top"){Ext.apply(this,{labelStyle:"width:auto;",labelAdjust:0,elementStyle:"padding-left:0;"})}}},isHide:function(a){return a.hideLabel||this.container.hideLabels},onFieldShow:function(a){a.getItemCt().removeClass("x-hide-"+a.hideMode);if(a.isComposite){a.doLayout()}},onFieldHide:function(a){a.getItemCt().addClass("x-hide-"+a.hideMode)},getLabelStyle:function(e){var b="",c=[this.labelStyle,e];for(var d=0,a=c.length;d<a;++d){if(c[d]){b+=c[d];if(b.substr(-1,1)!=";"){b+=";"}}}return b},renderItem:function(e,a,d){if(e&&(e.isFormField||e.fieldLabel)&&e.inputType!="hidden"){var b=this.getTemplateArgs(e);if(Ext.isNumber(a)){a=d.dom.childNodes[a]||null}if(a){e.itemCt=this.fieldTpl.insertBefore(a,b,true)}else{e.itemCt=this.fieldTpl.append(d,b,true)}if(!e.getItemCt){Ext.apply(e,{getItemCt:function(){return e.itemCt},customItemCt:true})}e.label=e.getItemCt().child("label.x-form-item-label");if(!e.rendered){e.render("x-form-el-"+e.id)}else{if(!this.isValidParent(e,d)){Ext.fly("x-form-el-"+e.id).appendChild(e.getPositionEl())}}if(this.trackLabels){if(e.hidden){this.onFieldHide(e)}e.on({scope:this,show:this.onFieldShow,hide:this.onFieldHide})}this.configureItem(e)}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments)}},getTemplateArgs:function(b){var a=!b.fieldLabel||b.hideLabel;return{id:b.id,label:b.fieldLabel,itemCls:(b.itemCls||this.container.itemCls||"")+(b.hideLabel?" x-hide-label":""),clearCls:b.clearCls||"x-form-clear-left",labelStyle:this.getLabelStyle(b.labelStyle),elementStyle:this.elementStyle||"",labelSeparator:a?"":(Ext.isDefined(b.labelSeparator)?b.labelSeparator:this.labelSeparator)}},adjustWidthAnchor:function(a,d){if(d.label&&!this.isHide(d)&&(this.container.labelAlign!="top")){var b=Ext.isIE6||(Ext.isIE&&!Ext.isStrict);return a-this.labelAdjust+(b?-3:0)}return a},adjustHeightAnchor:function(a,b){if(b.label&&!this.isHide(b)&&(this.container.labelAlign=="top")){return a-b.label.getHeight()}return a},isValidParent:function(b,a){return a&&this.container.getEl().contains(b.getPositionEl())}});Ext.Container.LAYOUTS.form=Ext.layout.FormLayout;Ext.layout.AccordionLayout=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,type:"accordion",renderItem:function(a){if(this.animate===false){a.animCollapse=false}a.collapsible=true;if(this.autoWidth){a.autoWidth=true}if(this.titleCollapse){a.titleCollapse=true}if(this.hideCollapseTool){a.hideCollapseTool=true}if(this.collapseFirst!==undefined){a.collapseFirst=this.collapseFirst}if(!this.activeItem&&!a.collapsed){this.setActiveItem(a,true)}else{if(this.activeItem&&this.activeItem!=a){a.collapsed=true}}Ext.layout.AccordionLayout.superclass.renderItem.apply(this,arguments);a.header.addClass("x-accordion-hd");a.on("beforeexpand",this.beforeExpand,this)},onRemove:function(a){Ext.layout.AccordionLayout.superclass.onRemove.call(this,a);if(a.rendered){a.header.removeClass("x-accordion-hd")}a.un("beforeexpand",this.beforeExpand,this)},beforeExpand:function(c,b){var a=this.activeItem;if(a){if(this.sequence){delete this.activeItem;if(!a.collapsed){a.collapse({callback:function(){c.expand(b||true)},scope:this});return false}}else{a.collapse(this.animate)}}this.setActive(c);if(this.activeOnTop){c.el.dom.parentNode.insertBefore(c.el.dom,c.el.dom.parentNode.firstChild)}this.layout()},setItemSize:function(g,e){if(this.fill&&g){var d=0,c,b=this.getRenderedItems(this.container),a=b.length,h;for(c=0;c<a;c++){if((h=b[c])!=g&&!h.hidden){d+=h.header.getHeight()}}e.height-=d;g.setSize(e)}},setActiveItem:function(a){this.setActive(a,true)},setActive:function(c,b){var a=this.activeItem;c=this.container.getComponent(c);if(a!=c){if(c.rendered&&c.collapsed&&b){c.expand()}else{if(a){a.fireEvent("deactivate",a)}this.activeItem=c;c.fireEvent("activate",c)}}}});Ext.Container.LAYOUTS.accordion=Ext.layout.AccordionLayout;Ext.layout.Accordion=Ext.layout.AccordionLayout;Ext.layout.TableLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:false,type:"table",targetCls:"x-table-layout-ct",tableAttrs:null,setContainer:function(a){Ext.layout.TableLayout.superclass.setContainer.call(this,a);this.currentRow=0;this.currentColumn=0;this.cells=[]},onLayout:function(d,g){var e=d.items.items,a=e.length,h,b;if(!this.table){g.addClass("x-table-layout-ct");this.table=g.createChild(Ext.apply({tag:"table",cls:"x-table-layout",cellspacing:0,cn:{tag:"tbody"}},this.tableAttrs),null,true)}this.renderAll(d,g)},getRow:function(a){var b=this.table.tBodies[0].childNodes[a];if(!b){b=document.createElement("tr");this.table.tBodies[0].appendChild(b)}return b},getNextCell:function(j){var a=this.getNextNonSpan(this.currentColumn,this.currentRow);var g=this.currentColumn=a[0],e=this.currentRow=a[1];for(var i=e;i<e+(j.rowspan||1);i++){if(!this.cells[i]){this.cells[i]=[]}for(var d=g;d<g+(j.colspan||1);d++){this.cells[i][d]=true}}var h=document.createElement("td");if(j.cellId){h.id=j.cellId}var b="x-table-layout-cell";if(j.cellCls){b+=" "+j.cellCls}h.className=b;if(j.colspan){h.colSpan=j.colspan}if(j.rowspan){h.rowSpan=j.rowspan}this.getRow(e).appendChild(h);return h},getNextNonSpan:function(a,c){var b=this.columns;while((b&&a>=b)||(this.cells[c]&&this.cells[c][a])){if(b&&a>=b){c++;a=0}else{a++}}return[a,c]},renderItem:function(e,a,d){if(!this.table){this.table=d.createChild(Ext.apply({tag:"table",cls:"x-table-layout",cellspacing:0,cn:{tag:"tbody"}},this.tableAttrs),null,true)}if(e&&!e.rendered){e.render(this.getNextCell(e));this.configureItem(e,a)}else{if(e&&!this.isValidParent(e,d)){var b=this.getNextCell(e);b.insertBefore(e.getPositionEl().dom,null);e.container=Ext.get(b);this.configureItem(e,a)}}},isValidParent:function(b,a){return b.getPositionEl().up("table",5).dom.parentNode===(a.dom||a)},destroy:function(){delete this.table;Ext.layout.TableLayout.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.table=Ext.layout.TableLayout;Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:"x-abs-layout-item",type:"absolute",onLayout:function(a,b){b.position();this.paddingLeft=b.getPadding("l");this.paddingTop=b.getPadding("t");Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,a,b)},adjustWidthAnchor:function(b,a){return b?b-a.getPosition(true)[0]+this.paddingLeft:b},adjustHeightAnchor:function(b,a){return b?b-a.getPosition(true)[1]+this.paddingTop:b}});Ext.Container.LAYOUTS.absolute=Ext.layout.AbsoluteLayout;Ext.layout.BoxLayout=Ext.extend(Ext.layout.ContainerLayout,{defaultMargins:{left:0,top:0,right:0,bottom:0},padding:"0",pack:"start",monitorResize:true,type:"box",scrollOffset:0,extraCls:"x-box-item",targetCls:"x-box-layout-ct",innerCls:"x-box-inner",constructor:function(a){Ext.layout.BoxLayout.superclass.constructor.call(this,a);if(Ext.isString(this.defaultMargins)){this.defaultMargins=this.parseMargins(this.defaultMargins)}},onLayout:function(a,d){Ext.layout.BoxLayout.superclass.onLayout.call(this,a,d);var b=this.getVisibleItems(a),c=this.getLayoutTargetSize();this.layoutTargetLastSize=c;this.childBoxCache=this.calculateChildBoxes(b,c);this.updateInnerCtSize(c,this.childBoxCache);this.updateChildBoxes(this.childBoxCache.boxes);this.handleTargetOverflow(c,a,d)},updateChildBoxes:function(c){for(var b=0,e=c.length;b<e;b++){var d=c[b],a=d.component;if(d.dirtySize){a.setSize(d.width,d.height)}if(isNaN(d.left)||isNaN(d.top)){continue}a.setPosition(d.left,d.top)}},updateInnerCtSize:Ext.emptyFn,handleTargetOverflow:function(d,a,c){var e=c.getStyle("overflow");if(e&&e!="hidden"&&!this.adjustmentPass){var b=this.getLayoutTargetSize();if(b.width!=d.width||b.height!=d.height){this.adjustmentPass=true;this.onLayout(a,c)}}delete this.adjustmentPass},isValidParent:function(b,a){return this.innerCt&&b.getPositionEl().dom.parentNode==this.innerCt.dom},getVisibleItems:function(g){var g=g||this.container,e=g.getLayoutTarget(),h=g.items.items,a=h.length,d,j,b=[];for(d=0;d<a;d++){if((j=h[d]).rendered&&this.isValidParent(j,e)&&j.hidden!==true&&j.collapsed!==true){b.push(j)}}return b},renderAll:function(a,b){if(!this.innerCt){this.innerCt=b.createChild({cls:this.innerCls});this.padding=this.parseMargins(this.padding)}Ext.layout.BoxLayout.superclass.renderAll.call(this,a,this.innerCt)},getLayoutTargetSize:function(){var b=this.container.getLayoutTarget(),a;if(b){a=b.getViewSize();if(Ext.isIE&&Ext.isStrict&&a.width==0){a=b.getStyleSize()}a.width-=b.getPadding("lr");a.height-=b.getPadding("tb")}return a},renderItem:function(a){if(Ext.isString(a.margins)){a.margins=this.parseMargins(a.margins)}else{if(!a.margins){a.margins=this.defaultMargins}}Ext.layout.BoxLayout.superclass.renderItem.apply(this,arguments)}});Ext.layout.VBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"left",type:"vbox",updateInnerCtSize:function(b,d){var c=b.height,a=d.meta.maxWidth+this.padding.left+this.padding.right;if(this.align=="stretch"){a=b.width}else{if(this.align=="center"){a=Math.max(b.width,a)}}this.innerCt.setSize(a||undefined,c||undefined)},calculateChildBoxes:function(w,e){var k=w.length,u=this.padding,y=u.top,p=u.left,q=y+u.bottom,a=p+u.right,x=e.width-this.scrollOffset,v=e.height,A=Math.max(0,x-a),l=this.pack=="start",m=this.pack=="center",n=this.pack=="end",I=0,E=0,z=0,j=[],h,d,g,b,t,C,B,s,F,G,D;for(B=0;B<k;B++){h=w[B];g=h.height;d=h.width;C=!h.hasLayout&&Ext.isFunction(h.doLayout);if(!Ext.isNumber(g)){if(h.flex&&!g){z+=h.flex}else{if(!g&&C){h.doLayout()}b=h.getSize();d=b.width;g=b.height}}t=h.margins;I+=(g||0)+t.top+t.bottom;if(!Ext.isNumber(d)){if(C){h.doLayout()}d=h.getWidth()}E=Math.max(E,d+t.left+t.right);j.push({component:h,height:g||undefined,width:d||undefined})}var c=Math.max(0,(v-I-q));if(m){y+=c/2}else{if(n){y+=c}}var o=c,H=z;for(B=0;B<k;B++){h=w[B];s=j[B];t=h.margins;G=t.left+t.right;y+=t.top;if(l&&h.flex&&!h.height){F=Math.ceil((h.flex/H)*o);o-=F;H-=h.flex;s.height=F;s.dirtySize=true}s.left=p+t.left;s.top=y;switch(this.align){case"stretch":D=A-G;s.width=D.constrain(h.minWidth||0,h.maxWidth||1000000);s.dirtySize=true;break;case"stretchmax":D=E-G;s.width=D.constrain(h.minWidth||0,h.maxWidth||1000000);s.dirtySize=true;break;case"center":var r=A-s.width-G;if(r>0){s.left=p+G+(r/2)}}y+=s.height+t.bottom}return{boxes:j,meta:{maxWidth:E}}}});Ext.Container.LAYOUTS.vbox=Ext.layout.VBoxLayout;Ext.layout.HBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"top",type:"hbox",updateInnerCtSize:function(b,d){var a=b.width,c=d.meta.maxHeight+this.padding.top+this.padding.bottom;if(this.align=="stretch"){c=b.height}else{if(this.align=="middle"){c=Math.max(b.height,c)}}this.innerCt.setSize(a||undefined,c||undefined)},calculateChildBoxes:function(z,e){var n=z.length,x=this.padding,C=x.top,r=x.left,s=C+x.bottom,a=r+x.right,B=e.width-this.scrollOffset,y=e.height,h=Math.max(0,y-s),o=this.pack=="start",p=this.pack=="center",q=this.pack=="end",I=0,A=0,D=0,m=[],l,d,g,c,w,F,E,v,H,j,t;for(E=0;E<n;E++){l=z[E];g=l.height;d=l.width;F=!l.hasLayout&&Ext.isFunction(l.doLayout);if(!Ext.isNumber(d)){if(l.flex&&!d){D+=l.flex}else{if(!d&&F){l.doLayout()}c=l.getSize();d=c.width;g=c.height}}w=l.margins;I+=(d||0)+w.left+w.right;if(!Ext.isNumber(g)){if(F){l.doLayout()}g=l.getHeight()}A=Math.max(A,g+w.top+w.bottom);m.push({component:l,height:g||undefined,width:d||undefined})}var b=Math.max(0,(B-I-a));if(p){r+=b/2}else{if(q){r+=b}}var k=b,G=D;for(E=0;E<n;E++){l=z[E];v=m[E];w=l.margins;j=w.top+w.bottom;r+=w.left;if(o&&l.flex&&!l.width){H=Math.ceil((l.flex/G)*k);k-=H;G-=l.flex;v.width=H;v.dirtySize=true}v.left=r;v.top=C+w.top;switch(this.align){case"stretch":t=h-j;v.height=t.constrain(l.minHeight||0,l.maxHeight||1000000);v.dirtySize=true;break;case"stretchmax":t=A-j;v.height=t.constrain(l.minHeight||0,l.maxHeight||1000000);v.dirtySize=true;break;case"middle":var u=h-v.height-j;if(u>0){v.top=C+j+(u/2)}}r+=v.width+w.right}return{boxes:m,meta:{maxHeight:A}}}});Ext.Container.LAYOUTS.hbox=Ext.layout.HBoxLayout;Ext.layout.ToolbarLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"toolbar",triggerWidth:18,noItemsMenuText:'<div class="x-toolbar-no-items">(None)</div>',lastOverflow:false,tableHTML:['<table cellspacing="0" class="x-toolbar-ct">',"<tbody>","<tr>",'<td class="x-toolbar-left" align="{0}">','<table cellspacing="0">',"<tbody>",'<tr class="x-toolbar-left-row"></tr>',"</tbody>","</table>","</td>",'<td class="x-toolbar-right" align="right">','<table cellspacing="0" class="x-toolbar-right-ct">',"<tbody>","<tr>","<td>",'<table cellspacing="0">',"<tbody>",'<tr class="x-toolbar-right-row"></tr>',"</tbody>","</table>","</td>","<td>",'<table cellspacing="0">',"<tbody>",'<tr class="x-toolbar-extras-row"></tr>',"</tbody>","</table>","</td>","</tr>","</tbody>","</table>","</td>","</tr>","</tbody>","</table>"].join(""),onLayout:function(e,j){if(!this.leftTr){var h=e.buttonAlign=="center"?"center":"left";j.addClass("x-toolbar-layout-ct");j.insertHtml("beforeEnd",String.format(this.tableHTML,h));this.leftTr=j.child("tr.x-toolbar-left-row",true);this.rightTr=j.child("tr.x-toolbar-right-row",true);this.extrasTr=j.child("tr.x-toolbar-extras-row",true);if(this.hiddenItem==undefined){this.hiddenItems=[]}}var k=e.buttonAlign=="right"?this.rightTr:this.leftTr,l=e.items.items,d=0;for(var b=0,g=l.length,m;b<g;b++,d++){m=l[b];if(m.isFill){k=this.rightTr;d=-1}else{if(!m.rendered){m.render(this.insertCell(m,k,d))}else{if(!m.xtbHidden&&!this.isValidParent(m,k.childNodes[d])){var a=this.insertCell(m,k,d);a.appendChild(m.getPositionEl().dom);m.container=Ext.get(a)}}}}this.cleanup(this.leftTr);this.cleanup(this.rightTr);this.cleanup(this.extrasTr);this.fitToSize(j)},cleanup:function(b){var e=b.childNodes,a,d;for(a=e.length-1;a>=0&&(d=e[a]);a--){if(!d.firstChild){b.removeChild(d)}}},insertCell:function(e,b,a){var d=document.createElement("td");d.className="x-toolbar-cell";b.insertBefore(d,b.childNodes[a]||null);return d},hideItem:function(a){this.hiddenItems.push(a);a.xtbHidden=true;a.xtbWidth=a.getPositionEl().dom.parentNode.offsetWidth;a.hide()},unhideItem:function(a){a.show();a.xtbHidden=false;this.hiddenItems.remove(a)},getItemWidth:function(a){return a.hidden?(a.xtbWidth||0):a.getPositionEl().dom.parentNode.offsetWidth},fitToSize:function(k){if(this.container.enableOverflow===false){return}var b=k.dom.clientWidth,j=k.dom.firstChild.offsetWidth,m=b-this.triggerWidth,a=this.lastWidth||0,c=this.hiddenItems,e=c.length!=0,n=b>=a;this.lastWidth=b;if(j>b||(e&&n)){var l=this.container.items.items,h=l.length,d=0,o;for(var g=0;g<h;g++){o=l[g];if(!o.isFill){d+=this.getItemWidth(o);if(d>m){if(!(o.hidden||o.xtbHidden)){this.hideItem(o)}}else{if(o.xtbHidden){this.unhideItem(o)}}}}}e=c.length!=0;if(e){this.initMore();if(!this.lastOverflow){this.container.fireEvent("overflowchange",this.container,true);this.lastOverflow=true}}else{if(this.more){this.clearMenu();this.more.destroy();delete this.more;if(this.lastOverflow){this.container.fireEvent("overflowchange",this.container,false);this.lastOverflow=false}}}},createMenuConfig:function(c,a){var b=Ext.apply({},c.initialConfig),d=c.toggleGroup;Ext.copyTo(b,c,["iconCls","icon","itemId","disabled","handler","scope","menu"]);Ext.apply(b,{text:c.overflowText||c.text,hideOnClick:a});if(d||c.enableToggle){Ext.apply(b,{group:d,checked:c.pressed,listeners:{checkchange:function(g,e){c.toggle(e)}}})}delete b.ownerCt;delete b.xtype;delete b.id;return b},addComponentToMenu:function(b,a){if(a instanceof Ext.Toolbar.Separator){b.add("-")}else{if(Ext.isFunction(a.isXType)){if(a.isXType("splitbutton")){b.add(this.createMenuConfig(a,true))}else{if(a.isXType("button")){b.add(this.createMenuConfig(a,!a.menu))}else{if(a.isXType("buttongroup")){a.items.each(function(c){this.addComponentToMenu(b,c)},this)}}}}}},clearMenu:function(){var a=this.moreMenu;if(a&&a.items){a.items.each(function(b){delete b.menu})}},beforeMoreShow:function(h){var b=this.container.items.items,a=b.length,g,e;var c=function(j,i){return j.isXType("buttongroup")&&!(i instanceof Ext.Toolbar.Separator)};this.clearMenu();h.removeAll();for(var d=0;d<a;d++){g=b[d];if(g.xtbHidden){if(e&&(c(g,e)||c(e,g))){h.add("-")}this.addComponentToMenu(h,g);e=g}}if(h.items.length<1){h.add(this.noItemsMenuText)}},initMore:function(){if(!this.more){this.moreMenu=new Ext.menu.Menu({ownerCt:this.container,listeners:{beforeshow:this.beforeMoreShow,scope:this}});this.more=new Ext.Button({iconCls:"x-toolbar-more-icon",cls:"x-toolbar-more",menu:this.moreMenu,ownerCt:this.container});var a=this.insertCell(this.more,this.extrasTr,100);this.more.render(a)}},destroy:function(){Ext.destroy(this.more,this.moreMenu);delete this.leftTr;delete this.rightTr;delete this.extrasTr;Ext.layout.ToolbarLayout.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.toolbar=Ext.layout.ToolbarLayout;Ext.layout.MenuLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"menu",setContainer:function(a){this.monitorResize=!a.floating;a.on("autosize",this.doAutoSize,this);Ext.layout.MenuLayout.superclass.setContainer.call(this,a)},renderItem:function(g,b,e){if(!this.itemTpl){this.itemTpl=Ext.layout.MenuLayout.prototype.itemTpl=new Ext.XTemplate('<li id="{itemId}" class="{itemCls}">','<tpl if="needsIcon">','<img src="{icon}" class="{iconCls}"/>',"</tpl>","</li>")}if(g&&!g.rendered){if(Ext.isNumber(b)){b=e.dom.childNodes[b]}var d=this.getItemArgs(g);g.render(g.positionEl=b?this.itemTpl.insertBefore(b,d,true):this.itemTpl.append(e,d,true));g.positionEl.menuItemId=g.getItemId();if(!d.isMenuItem&&d.needsIcon){g.positionEl.addClass("x-menu-list-item-indent")}this.configureItem(g,b)}else{if(g&&!this.isValidParent(g,e)){if(Ext.isNumber(b)){b=e.dom.childNodes[b]}e.dom.insertBefore(g.getActionEl().dom,b||null)}}},getItemArgs:function(b){var a=b instanceof Ext.menu.Item;return{isMenuItem:a,needsIcon:!a&&(b.icon||b.iconCls),icon:b.icon||Ext.BLANK_IMAGE_URL,iconCls:"x-menu-item-icon "+(b.iconCls||""),itemId:"x-menu-el-"+b.id,itemCls:"x-menu-list-item "}},isValidParent:function(b,a){return b.el.up("li.x-menu-list-item",5).dom.parentNode===(a.dom||a)},onLayout:function(a,b){Ext.layout.MenuLayout.superclass.onLayout.call(this,a,b);this.doAutoSize()},doAutoSize:function(){var c=this.container,a=c.width;if(c.floating){if(a){c.setWidth(a)}else{if(Ext.isIE){c.setWidth(Ext.isStrict&&(Ext.isIE7||Ext.isIE8)?"auto":c.minWidth);var d=c.getEl(),b=d.dom.offsetWidth;c.setWidth(c.getLayoutTarget().getWidth()+d.getFrameWidth("lr"))}}}}});Ext.Container.LAYOUTS.menu=Ext.layout.MenuLayout;Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName("html")[0].className+=" x-viewport";this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll="no";this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el},fireResize:function(a,b){this.fireEvent("resize",this,a,b,a,b)}});Ext.reg("viewport",Ext.Viewport);Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:"right",collapsed:false,collapseFirst:true,minButtonWidth:75,elements:"body",preventBodyReset:false,padding:undefined,resizeEvent:"bodyresize",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",disabledClass:"",deferHeight:true,expandDefaults:{duration:0.25},collapseDefaults:{duration:0.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents("bodyresize","titlechange","iconchange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate");if(this.unstyled){this.baseCls="x-plain"}this.toolbars=[];if(this.tbar){this.elements+=",tbar";this.topToolbar=this.createToolbar(this.tbar);this.tbar=null}if(this.bbar){this.elements+=",bbar";this.bottomToolbar=this.createToolbar(this.bbar);this.bbar=null}if(this.header===true){this.elements+=",header";this.header=null}else{if(this.headerCfg||(this.title&&this.header!==false)){this.elements+=",header"}}if(this.footerCfg||this.footer===true){this.elements+=",footer";this.footer=null}if(this.buttons){this.fbar=this.buttons;this.buttons=null}if(this.fbar){this.createFbar(this.fbar)}if(this.autoLoad){this.on("render",this.doAutoLoad,this,{delay:10})}},createFbar:function(b){var a=this.minButtonWidth;this.elements+=",footer";this.fbar=this.createToolbar(b,{buttonAlign:this.buttonAlign,toolbarCls:"x-panel-fbar",enableOverflow:false,defaults:function(d){return{minWidth:d.minWidth||a}}});this.fbar.items.each(function(d){d.minWidth=d.minWidth||this.minButtonWidth},this);this.buttons=this.fbar.items.items},createToolbar:function(b,c){var a;if(Ext.isArray(b)){b={items:b}}a=b.events?Ext.apply(b,c):this.createComponent(Ext.apply({},b,c),"toolbar");this.toolbars.push(a);return a},createElement:function(a,c){if(this[a]){c.appendChild(this[a].dom);return}if(a==="bwrap"||this.elements.indexOf(a)!=-1){if(this[a+"Cfg"]){this[a]=Ext.fly(c).createChild(this[a+"Cfg"])}else{var b=document.createElement("div");b.className=this[a+"Cls"];this[a]=Ext.get(c.appendChild(b))}if(this[a+"CssClass"]){this[a].addClass(this[a+"CssClass"])}if(this[a+"Style"]){this[a].applyStyles(this[a+"Style"])}}},onRender:function(g,e){Ext.Panel.superclass.onRender.call(this,g,e);this.createClasses();var a=this.el,h=a.dom,k,i;if(this.collapsible&&!this.hideCollapseTool){this.tools=this.tools?this.tools.slice(0):[];this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})}if(this.tools){i=this.tools;this.elements+=(this.header!==false)?",header":""}this.tools={};a.addClass(this.baseCls);if(h.firstChild){this.header=a.down("."+this.headerCls);this.bwrap=a.down("."+this.bwrapCls);var j=this.bwrap?this.bwrap:a;this.tbar=j.down("."+this.tbarCls);this.body=j.down("."+this.bodyCls);this.bbar=j.down("."+this.bbarCls);this.footer=j.down("."+this.footerCls);this.fromMarkup=true}if(this.preventBodyReset===true){a.addClass("x-panel-reset")}if(this.cls){a.addClass(this.cls)}if(this.buttons){this.elements+=",footer"}if(this.frame){a.insertHtml("afterBegin",String.format(Ext.Element.boxMarkup,this.baseCls));this.createElement("header",h.firstChild.firstChild.firstChild);this.createElement("bwrap",h);k=this.bwrap.dom;var c=h.childNodes[1],b=h.childNodes[2];k.appendChild(c);k.appendChild(b);var l=k.firstChild.firstChild.firstChild;this.createElement("tbar",l);this.createElement("body",l);this.createElement("bbar",l);this.createElement("footer",k.lastChild.firstChild.firstChild);if(!this.footer){this.bwrap.dom.lastChild.className+=" x-panel-nofooter"}this.ft=Ext.get(this.bwrap.dom.lastChild);this.mc=Ext.get(l)}else{this.createElement("header",h);this.createElement("bwrap",h);k=this.bwrap.dom;this.createElement("tbar",k);this.createElement("body",k);this.createElement("bbar",k);this.createElement("footer",k);if(!this.header){this.body.addClass(this.bodyCls+"-noheader");if(this.tbar){this.tbar.addClass(this.tbarCls+"-noheader")}}}if(Ext.isDefined(this.padding)){this.body.setStyle("padding",this.body.addUnits(this.padding))}if(this.border===false){this.el.addClass(this.baseCls+"-noborder");this.body.addClass(this.bodyCls+"-noborder");if(this.header){this.header.addClass(this.headerCls+"-noborder")}if(this.footer){this.footer.addClass(this.footerCls+"-noborder")}if(this.tbar){this.tbar.addClass(this.tbarCls+"-noborder")}if(this.bbar){this.bbar.addClass(this.bbarCls+"-noborder")}}if(this.bodyBorder===false){this.body.addClass(this.bodyCls+"-noborder")}this.bwrap.enableDisplayMode("block");if(this.header){this.header.unselectable();if(this.headerAsText){this.header.dom.innerHTML='<span class="'+this.headerTextCls+'">'+this.header.dom.innerHTML+"</span>";if(this.iconCls){this.setIconClass(this.iconCls)}}}if(this.floating){this.makeFloating(this.floating)}if(this.collapsible&&this.titleCollapse&&this.header){this.mon(this.header,"click",this.toggleCollapse,this);this.header.setStyle("cursor","pointer")}if(i){this.addTool.apply(this,i)}if(this.fbar){this.footer.addClass("x-panel-btns");this.fbar.ownerCt=this;this.fbar.render(this.footer);this.footer.createChild({cls:"x-clear"})}if(this.tbar&&this.topToolbar){this.topToolbar.ownerCt=this;this.topToolbar.render(this.tbar)}if(this.bbar&&this.bottomToolbar){this.bottomToolbar.ownerCt=this;this.bottomToolbar.render(this.bbar)}},setIconClass:function(b){var a=this.iconCls;this.iconCls=b;if(this.rendered&&this.header){if(this.frame){this.header.addClass("x-panel-icon");this.header.replaceClass(a,this.iconCls)}else{var e=this.header,c=e.child("img.x-panel-inline-icon");if(c){Ext.fly(c).replaceClass(a,this.iconCls)}else{var d=e.child("span."+this.headerTextCls);if(d){Ext.DomHelper.insertBefore(d.dom,{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-panel-inline-icon "+this.iconCls})}}}}this.fireEvent("iconchange",this,b,a)},makeFloating:function(a){this.floating=true;this.el=new Ext.Layer(Ext.apply({},a,{shadow:Ext.isDefined(this.shadow)?this.shadow:"sides",shadowOffset:this.shadowOffset,constrain:false,shim:this.shim===false?false:undefined}),this.el)},getTopToolbar:function(){return this.topToolbar},getBottomToolbar:function(){return this.bottomToolbar},getFooterToolbar:function(){return this.fbar},addButton:function(a,c,b){if(!this.fbar){this.createFbar([])}if(c){if(Ext.isString(a)){a={text:a}}a=Ext.apply({handler:c,scope:b},a)}return this.fbar.add(a)},addTool:function(){if(!this.rendered){if(!this.tools){this.tools=[]}Ext.each(arguments,function(a){this.tools.push(a)},this);return}if(!this[this.toolTarget]){return}if(!this.toolTemplate){var h=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');h.disableFormats=true;h.compile();Ext.Panel.prototype.toolTemplate=h}for(var g=0,d=arguments,c=d.length;g<c;g++){var b=d[g];if(!this.tools[b.id]){var j="x-tool-"+b.id+"-over";var e=this.toolTemplate.insertFirst(this[this.toolTarget],b,true);this.tools[b.id]=e;e.enableDisplayMode("block");this.mon(e,"click",this.createToolHandler(e,b,j,this));if(b.on){this.mon(e,b.on)}if(b.hidden){e.hide()}if(b.qtip){if(Ext.isObject(b.qtip)){Ext.QuickTips.register(Ext.apply({target:e.id},b.qtip))}else{e.dom.qtip=b.qtip}}e.addClassOnOver(j)}}},onLayout:function(b,a){Ext.Panel.superclass.onLayout.apply(this,arguments);if(this.hasLayout&&this.toolbars.length>0){Ext.each(this.toolbars,function(c){c.doLayout(undefined,a)});this.syncHeight()}},syncHeight:function(){var b=this.toolbarHeight,c=this.body,a=this.lastSize.height,d;if(this.autoHeight||!Ext.isDefined(a)||a=="auto"){return}if(b!=this.getToolbarHeight()){b=Math.max(0,a-this.getFrameHeight());c.setHeight(b);d=c.getSize();this.toolbarHeight=this.getToolbarHeight();this.onBodyResize(d.width,d.height)}},onShow:function(){if(this.floating){return this.el.show()}Ext.Panel.superclass.onShow.call(this)},onHide:function(){if(this.floating){return this.el.hide()}Ext.Panel.superclass.onHide.call(this)},createToolHandler:function(c,a,d,b){return function(g){c.removeClass(d);if(a.stopEvent!==false){g.stopEvent()}if(a.handler){a.handler.call(a.scope||c,g,c,b,a)}}},afterRender:function(){if(this.floating&&!this.hidden){this.el.show()}if(this.title){this.setTitle(this.title)}Ext.Panel.superclass.afterRender.call(this);if(this.collapsed){this.collapsed=false;this.collapse(false)}this.initEvents()},getKeyMap:function(){if(!this.keyMap){this.keyMap=new Ext.KeyMap(this.el,this.keys)}return this.keyMap},initEvents:function(){if(this.keys){this.getKeyMap()}if(this.draggable){this.initDraggable()}if(this.toolbars.length>0){Ext.each(this.toolbars,function(a){a.doLayout();a.on({scope:this,afterlayout:this.syncHeight,remove:this.syncHeight})},this);this.syncHeight()}},initDraggable:function(){this.dd=new Ext.Panel.DD(this,Ext.isBoolean(this.draggable)?null:this.draggable)},beforeEffect:function(a){if(this.floating){this.el.beforeAction()}if(a!==false){this.el.addClass("x-panel-animated")}},afterEffect:function(a){this.syncShadow();this.el.removeClass("x-panel-animated")},createEffect:function(c,b,d){var e={scope:d,block:true};if(c===true){e.callback=b;return e}else{if(!c.callback){e.callback=b}else{e.callback=function(){b.call(d);Ext.callback(c.callback,c.scope)}}}return Ext.applyIf(e,c)},collapse:function(b){if(this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforecollapse",this,b)===false){return}var a=b===true||(b!==false&&this.animCollapse);this.beforeEffect(a);this.onCollapse(a,b);return this},onCollapse:function(a,b){if(a){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(b||true,this.afterCollapse,this),this.collapseDefaults))}else{this[this.collapseEl].hide(this.hideMode);this.afterCollapse(false)}},afterCollapse:function(a){this.collapsed=true;this.el.addClass(this.collapsedCls);if(a!==false){this[this.collapseEl].hide(this.hideMode)}this.afterEffect(a);this.cascade(function(b){if(b.lastSize){b.lastSize={width:undefined,height:undefined}}});this.fireEvent("collapse",this)},expand:function(b){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforeexpand",this,b)===false){return}var a=b===true||(b!==false&&this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect(a);this.onExpand(a,b);return this},onExpand:function(a,b){if(a){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(b||true,this.afterExpand,this),this.expandDefaults))}else{this[this.collapseEl].show(this.hideMode);this.afterExpand(false)}},afterExpand:function(a){this.collapsed=false;if(a!==false){this[this.collapseEl].show(this.hideMode)}this.afterEffect(a);if(this.deferLayout){delete this.deferLayout;this.doLayout(true)}this.fireEvent("expand",this)},toggleCollapse:function(a){this[this.collapsed?"expand":"collapse"](a);return this},onDisable:function(){if(this.rendered&&this.maskDisabled){this.el.mask()}Ext.Panel.superclass.onDisable.call(this)},onEnable:function(){if(this.rendered&&this.maskDisabled){this.el.unmask()}Ext.Panel.superclass.onEnable.call(this)},onResize:function(g,d,c,e){var a=g,b=d;if(Ext.isDefined(a)||Ext.isDefined(b)){if(!this.collapsed){if(Ext.isNumber(a)){this.body.setWidth(a=this.adjustBodyWidth(a-this.getFrameWidth()))}else{if(a=="auto"){a=this.body.setWidth("auto").dom.offsetWidth}else{a=this.body.dom.offsetWidth}}if(this.tbar){this.tbar.setWidth(a);if(this.topToolbar){this.topToolbar.setSize(a)}}if(this.bbar){this.bbar.setWidth(a);if(this.bottomToolbar){this.bottomToolbar.setSize(a);if(Ext.isIE){this.bbar.setStyle("position","static");this.bbar.setStyle("position","")}}}if(this.footer){this.footer.setWidth(a);if(this.fbar){this.fbar.setSize(Ext.isIE?(a-this.footer.getFrameWidth("lr")):"auto")}}if(Ext.isNumber(b)){b=Math.max(0,b-this.getFrameHeight());this.body.setHeight(b)}else{if(b=="auto"){this.body.setHeight(b)}}if(this.disabled&&this.el._mask){this.el._mask.setSize(this.el.dom.clientWidth,this.el.getHeight())}}else{this.queuedBodySize={width:a,height:b};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on("expand",function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height)},this,{single:true})}}this.onBodyResize(a,b)}this.syncShadow();Ext.Panel.superclass.onResize.call(this,g,d,c,e)},onBodyResize:function(a,b){this.fireEvent("bodyresize",this,a,b)},getToolbarHeight:function(){var a=0;if(this.rendered){Ext.each(this.toolbars,function(b){a+=b.getHeight()},this)}return a},adjustBodyHeight:function(a){return a},adjustBodyWidth:function(a){return a},onPosition:function(){this.syncShadow()},getFrameWidth:function(){var b=this.el.getFrameWidth("lr")+this.bwrap.getFrameWidth("lr");if(this.frame){var a=this.bwrap.dom.firstChild;b+=(Ext.fly(a).getFrameWidth("l")+Ext.fly(a.firstChild).getFrameWidth("r"));b+=this.mc.getFrameWidth("lr")}return b},getFrameHeight:function(){var a=Math.max(0,this.getHeight()-this.body.getHeight());if(isNaN(a)){a=0}return a},getInnerWidth:function(){return this.getSize().width-this.getFrameWidth()},getInnerHeight:function(){return this.body.getHeight()},syncShadow:function(){if(this.floating){this.el.sync(true)}},getLayoutTarget:function(){return this.body},getContentTarget:function(){return this.body},setTitle:function(b,a){this.title=b;if(this.header&&this.headerAsText){this.header.child("span").update(b)}if(a){this.setIconClass(a)}this.fireEvent("titlechange",this,b);return this},getUpdater:function(){return this.body.getUpdater()},load:function(){var a=this.body.getUpdater();a.update.apply(a,arguments);return this},beforeDestroy:function(){Ext.Panel.superclass.beforeDestroy.call(this);if(this.header){this.header.removeAllListeners()}if(this.tools){for(var a in this.tools){Ext.destroy(this.tools[a])}}if(this.toolbars.length>0){Ext.each(this.toolbars,function(b){b.un("afterlayout",this.syncHeight,this);b.un("remove",this.syncHeight,this)},this)}if(Ext.isArray(this.buttons)){while(this.buttons.length){Ext.destroy(this.buttons[0])}}if(this.rendered){Ext.destroy(this.ft,this.header,this.footer,this.tbar,this.bbar,this.body,this.mc,this.bwrap,this.dd);if(this.fbar){Ext.destroy(this.fbar,this.fbar.el)}}Ext.destroy(this.toolbars)},createClasses:function(){this.headerCls=this.baseCls+"-header";this.headerTextCls=this.baseCls+"-header-text";this.bwrapCls=this.baseCls+"-bwrap";this.tbarCls=this.baseCls+"-tbar";this.bodyCls=this.baseCls+"-body";this.bbarCls=this.baseCls+"-bbar";this.footerCls=this.baseCls+"-footer"},createGhost:function(a,e,b){var d=document.createElement("div");d.className="x-panel-ghost "+(a?a:"");if(this.header){d.appendChild(this.el.dom.firstChild.cloneNode(true))}Ext.fly(d.appendChild(document.createElement("ul"))).setHeight(this.bwrap.getHeight());d.style.width=this.el.dom.offsetWidth+"px";if(!b){this.container.dom.appendChild(d)}else{Ext.getDom(b).appendChild(d)}if(e!==false&&this.el.useShim!==false){var c=new Ext.Layer({shadow:false,useDisplay:true,constrain:false},d);c.show();return c}else{return new Ext.Element(d)}},doAutoLoad:function(){var a=this.body.getUpdater();if(this.renderer){a.setRenderer(this.renderer)}a.update(Ext.isObject(this.autoLoad)?this.autoLoad:{url:this.autoLoad})},getTool:function(a){return this.tools[a]}});Ext.reg("panel",Ext.Panel);Ext.Editor=function(b,a){if(b.field){this.field=Ext.create(b.field,"textfield");a=Ext.apply({},b);delete a.field}else{this.field=b}Ext.Editor.superclass.constructor.call(this,a)};Ext.extend(Ext.Editor,Ext.Component,{allowBlur:true,value:"",alignment:"c-c?",offsets:[0,0],shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:true,cancelOnEsc:true,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onRender:function(b,a){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:b,shim:this.shim,shadowOffset:this.shadowOffset||4,id:this.id,constrain:this.constrain});if(this.zIndex){this.el.setZIndex(this.zIndex)}this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!="title"){this.field.msgTarget="qtip"}this.field.inEditor=true;this.mon(this.field,{scope:this,blur:this.onBlur,specialkey:this.onSpecialKey});if(this.field.grow){this.mon(this.field,"autosize",this.el.sync,this.el,{delay:1})}this.field.render(this.el).show();this.field.getEl().dom.name="";if(this.swallowKeys){this.field.el.swallowEvent(["keypress","keydown"])}},onSpecialKey:function(g,d){var b=d.getKey(),a=this.completeOnEnter&&b==d.ENTER,c=this.cancelOnEsc&&b==d.ESC;if(a||c){d.stopEvent();if(a){this.completeEdit()}else{this.cancelEdit()}if(g.triggerBlur){g.triggerBlur()}}this.fireEvent("specialkey",g,d)},startEdit:function(b,c){if(this.editing){this.completeEdit()}this.boundEl=Ext.get(b);var a=c!==undefined?c:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body)}if(this.fireEvent("beforestartedit",this,this.boundEl,a)!==false){this.startValue=a;this.field.reset();this.field.setValue(a);this.realign(true);this.editing=true;this.show()}},doAutoSize:function(){if(this.autoSize){var b=this.boundEl.getSize(),a=this.field.getSize();switch(this.autoSize){case"width":this.setSize(b.width,a.height);break;case"height":this.setSize(a.width,b.height);break;case"none":this.setSize(a.width,a.height);break;default:this.setSize(b.width,b.height)}}},setSize:function(a,b){delete this.field.lastSize;this.field.setSize(a,b);if(this.el){if(Ext.isGecko2||Ext.isOpera||(Ext.isIE7&&Ext.isStrict)){this.el.setSize(a,b)}this.el.sync()}},realign:function(a){if(a===true){this.doAutoSize()}this.el.alignTo(this.boundEl,this.alignment,this.offsets)},completeEdit:function(a){if(!this.editing){return}if(this.field.assertValue){this.field.assertValue()}var b=this.getValue();if(!this.field.isValid()){if(this.revertInvalid!==false){this.cancelEdit(a)}return}if(String(b)===String(this.startValue)&&this.ignoreNoChange){this.hideEdit(a);return}if(this.fireEvent("beforecomplete",this,b,this.startValue)!==false){b=this.getValue();if(this.updateEl&&this.boundEl){this.boundEl.update(b)}this.hideEdit(a);this.fireEvent("complete",this,b,this.startValue)}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide()}this.field.show().focus(false,true);this.fireEvent("startedit",this.boundEl,this.startValue)},cancelEdit:function(a){if(this.editing){var b=this.getValue();this.setValue(this.startValue);this.hideEdit(a);this.fireEvent("canceledit",this,b,this.startValue)}},hideEdit:function(a){if(a!==true){this.editing=false;this.hide()}},onBlur:function(){if(this.allowBlur===true&&this.editing&&this.selectSameEditor!==true){this.completeEdit()}},onHide:function(){if(this.editing){this.completeEdit();return}this.field.blur();if(this.field.collapse){this.field.collapse()}this.el.hide();if(this.hideEl!==false){this.boundEl.show()}},setValue:function(a){this.field.setValue(a)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){Ext.destroyMembers(this,"field");delete this.parentEl;delete this.boundEl}});Ext.reg("editor",Ext.Editor);Ext.ColorPalette=Ext.extend(Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:"click",ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],initComponent:function(){Ext.ColorPalette.superclass.initComponent.call(this);this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope,true)}},onRender:function(b,a){this.autoEl={tag:"div",cls:this.itemCls};Ext.ColorPalette.superclass.onRender.call(this,b,a);var c=this.tpl||new Ext.XTemplate('<tpl for="."><a href="#" class="color-{.}" hidefocus="on"><em><span style="background:#{.}" unselectable="on">&#160;</span></em></a></tpl>');c.overwrite(this.el,this.colors);this.mon(this.el,this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!="click"){this.mon(this.el,"click",Ext.emptyFn,this,{delegate:"a",preventDefault:true})}},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var a=this.value;this.value=null;this.select(a,true)}},handleClick:function(b,a){b.preventDefault();if(!this.disabled){var d=a.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(d.toUpperCase())}},select:function(b,a){b=b.replace("#","");if(b!=this.value||this.allowReselect){var c=this.el;if(this.value){c.child("a.color-"+this.value).removeClass("x-color-palette-sel")}c.child("a.color-"+b).addClass("x-color-palette-sel");this.value=b;if(a!==true){this.fireEvent("select",this,b)}}}});Ext.reg("colorpalette",Ext.ColorPalette);Ext.DatePicker=Ext.extend(Ext.BoxComponent,{todayText:"Today",okText:"&#160;OK&#160;",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:true,focusOnSelect:true,initHour:12,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime(true):new Date().clearTime();this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope||this)}this.initDisabledDays()},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var b=this.disabledDates,a=b.length-1,c="(?:";Ext.each(b,function(g,e){c+=Ext.isDate(g)?"^"+Ext.escapeRe(g.dateFormat(this.format))+"$":b[e];if(e!=a){c+="|"}},this);this.disabledDatesRE=new RegExp(c+")")}},setDisabledDates:function(a){if(Ext.isArray(a)){this.disabledDates=a;this.disabledDatesRE=null}else{this.disabledDatesRE=a}this.initDisabledDays();this.update(this.value,true)},setDisabledDays:function(a){this.disabledDays=a;this.update(this.value,true)},setMinDate:function(a){this.minDate=a;this.update(this.value,true)},setMaxDate:function(a){this.maxDate=a;this.update(this.value,true)},setValue:function(a){this.value=a.clearTime(true);this.update(this.value)},getValue:function(){return this.value},focus:function(){this.update(this.activeDate)},onEnable:function(a){Ext.DatePicker.superclass.onEnable.call(this);this.doDisabled(false);this.update(a?this.value:this.activeDate);if(Ext.isIE){this.el.repaint()}},onDisable:function(){Ext.DatePicker.superclass.onDisable.call(this);this.doDisabled(true);if(Ext.isIE&&!Ext.isIE8){Ext.each([].concat(this.textNodes,this.el.query("th span")),function(a){Ext.fly(a).repaint()})}},doDisabled:function(a){this.keyNav.setDisabled(a);this.prevRepeater.setDisabled(a);this.nextRepeater.setDisabled(a);if(this.showToday){this.todayKeyListener.setDisabled(a);this.todayBtn.setDisabled(a)}},onRender:function(e,b){var a=['<table cellspacing="0">','<tr><td class="x-date-left"><a href="#" title="',this.prevText,'">&#160;</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="',this.nextText,'">&#160;</a></td></tr>','<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'],c=this.dayNames,h;for(h=0;h<7;h++){var k=this.startDay+h;if(k>6){k=k-7}a.push("<th><span>",c[k].substr(0,1),"</span></th>")}a[a.length]="</tr></thead><tbody><tr>";for(h=0;h<42;h++){if(h%7===0&&h!==0){a[a.length]="</tr><tr>"}a[a.length]='<td><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span></span></em></a></td>'}a.push("</tr></tbody></table></td></tr>",this.showToday?'<tr><td colspan="3" class="x-date-bottom" align="center"></td></tr>':"",'</table><div class="x-date-mp"></div>');var j=document.createElement("div");j.className="x-date-picker";j.innerHTML=a.join("");e.dom.insertBefore(j,b);this.el=Ext.get(j);this.eventEl=Ext.get(j.firstChild);this.prevRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});this.nextRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(d){if(d.ctrlKey){this.showPrevMonth()}else{this.update(this.activeDate.add("d",-1))}},right:function(d){if(d.ctrlKey){this.showNextMonth()}else{this.update(this.activeDate.add("d",1))}},up:function(d){if(d.ctrlKey){this.showNextYear()}else{this.update(this.activeDate.add("d",-7))}},down:function(d){if(d.ctrlKey){this.showPrevYear()}else{this.update(this.activeDate.add("d",7))}},pageUp:function(d){this.showNextMonth()},pageDown:function(d){this.showPrevMonth()},enter:function(d){d.stopPropagation();return true},scope:this});this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:"&#160;",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.el.child("em").addClass("x-btn-arrow");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var g=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,g),tooltip:String.format(this.todayTip,g),handler:this.selectToday,scope:this})}this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this);this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.mon(this.mbtn,"click",this.showMonthPicker,this);this.onEnable(true)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var a=['<table border="0" cellspacing="0">'];for(var b=0;b<6;b++){a.push('<tr><td class="x-date-mp-month"><a href="#">',Date.getShortMonthName(b),"</a></td>",'<td class="x-date-mp-month x-date-mp-sep"><a href="#">',Date.getShortMonthName(b+6),"</a></td>",b===0?'<td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-prev"></a></td><td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-next"></a></td></tr>':'<td class="x-date-mp-year"><a href="#"></a></td><td class="x-date-mp-year"><a href="#"></a></td></tr>')}a.push('<tr class="x-date-mp-btns"><td colspan="4"><button type="button" class="x-date-mp-ok">',this.okText,'</button><button type="button" class="x-date-mp-cancel">',this.cancelText,"</button></td></tr>","</table>");this.monthPicker.update(a.join(""));this.mon(this.monthPicker,"click",this.onMonthClick,this);this.mon(this.monthPicker,"dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(c,d,e){e+=1;if((e%2)===0){c.dom.xmonth=5+Math.round(e*0.5)}else{c.dom.xmonth=Math.round((e-1)*0.5)}})}},showMonthPicker:function(){if(!this.disabled){this.createMonthPicker();var a=this.el.getSize();this.monthPicker.setSize(a);this.monthPicker.child("table").setSize(a);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})}},updateMPYear:function(e){this.mpyear=e;var c=this.mpYears.elements;for(var b=1;b<=10;b++){var d=c[b-1],a;if((b%2)===0){a=e+Math.round(b*0.5);d.firstChild.innerHTML=a;d.xyear=a}else{a=e-(5-Math.round(b*0.5));d.firstChild.innerHTML=a;d.xyear=a}this.mpYears.item(b-1)[a==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(a){this.mpMonths.each(function(b,c,d){b[b.dom.xmonth==a?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(a){},onMonthClick:function(g,b){g.stopEvent();var c=new Ext.Element(b),a;if(c.is("button.x-date-mp-cancel")){this.hideMonthPicker()}else{if(c.is("button.x-date-mp-ok")){var h=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate());if(h.getMonth()!=this.mpSelMonth){h=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth()}this.update(h);this.hideMonthPicker()}else{if((a=c.up("td.x-date-mp-month",2))){this.mpMonths.removeClass("x-date-mp-sel");a.addClass("x-date-mp-sel");this.mpSelMonth=a.dom.xmonth}else{if((a=c.up("td.x-date-mp-year",2))){this.mpYears.removeClass("x-date-mp-sel");a.addClass("x-date-mp-sel");this.mpSelYear=a.dom.xyear}else{if(c.is("a.x-date-mp-prev")){this.updateMPYear(this.mpyear-10)}else{if(c.is("a.x-date-mp-next")){this.updateMPYear(this.mpyear+10)}}}}}}},onMonthDblClick:function(d,b){d.stopEvent();var c=new Ext.Element(b),a;if((a=c.up("td.x-date-mp-month",2))){this.update(new Date(this.mpSelYear,a.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else{if((a=c.up("td.x-date-mp-year",2))){this.update(new Date(a.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}}},hideMonthPicker:function(a){if(this.monthPicker){if(a===true){this.monthPicker.hide()}else{this.monthPicker.slideOut("t",{duration:0.2})}}},showPrevMonth:function(a){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(a){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(a){a.stopEvent();if(!this.disabled){var b=a.getWheelDelta();if(b>0){this.showPrevMonth()}else{if(b<0){this.showNextMonth()}}}},handleDateClick:function(b,a){b.stopEvent();if(!this.disabled&&a.dateValue&&!Ext.fly(a.parentNode).hasClass("x-date-disabled")){this.cancelFocus=this.focusOnSelect===false;this.setValue(new Date(a.dateValue));delete this.cancelFocus;this.fireEvent("select",this,this.value)}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value)}},update:function(G,A){if(this.rendered){var a=this.activeDate,p=this.isVisible();this.activeDate=G;if(!A&&a&&this.el){var o=G.getTime();if(a.getMonth()==G.getMonth()&&a.getFullYear()==G.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(d){if(d.dom.firstChild.dateValue==o){d.addClass("x-date-selected");if(p&&!this.cancelFocus){Ext.fly(d.dom.firstChild).focus(50)}return false}},this);return}}var k=G.getDaysInMonth(),q=G.getFirstDateOfMonth(),g=q.getDay()-this.startDay;if(g<0){g+=7}k+=g;var B=G.add("mo",-1),h=B.getDaysInMonth()-g,e=this.cells.elements,r=this.textNodes,D=(new Date(B.getFullYear(),B.getMonth(),h,this.initHour)),C=new Date().clearTime().getTime(),v=G.clearTime(true).getTime(),u=this.minDate?this.minDate.clearTime(true):Number.NEGATIVE_INFINITY,y=this.maxDate?this.maxDate.clearTime(true):Number.POSITIVE_INFINITY,F=this.disabledDatesRE,s=this.disabledDatesText,I=this.disabledDays?this.disabledDays.join(""):false,E=this.disabledDaysText,z=this.format;if(this.showToday){var m=new Date().clearTime(),c=(m<u||m>y||(F&&z&&F.test(m.dateFormat(z)))||(I&&I.indexOf(m.getDay())!=-1));if(!this.disabled){this.todayBtn.setDisabled(c);this.todayKeyListener[c?"disable":"enable"]()}}var l=function(J,d){d.title="";var i=D.clearTime(true).getTime();d.firstChild.dateValue=i;if(i==C){d.className+=" x-date-today";d.title=J.todayText}if(i==v){d.className+=" x-date-selected";if(p){Ext.fly(d.firstChild).focus(50)}}if(i<u){d.className=" x-date-disabled";d.title=J.minText;return}if(i>y){d.className=" x-date-disabled";d.title=J.maxText;return}if(I){if(I.indexOf(D.getDay())!=-1){d.title=E;d.className=" x-date-disabled"}}if(F&&z){var w=D.dateFormat(z);if(F.test(w)){d.title=s.replace("%0",w);d.className=" x-date-disabled"}}};var x=0;for(;x<g;x++){r[x].innerHTML=(++h);D.setDate(D.getDate()+1);e[x].className="x-date-prevday";l(this,e[x])}for(;x<k;x++){var b=x-g+1;r[x].innerHTML=(b);D.setDate(D.getDate()+1);e[x].className="x-date-active";l(this,e[x])}var H=0;for(;x<42;x++){r[x].innerHTML=(++H);D.setDate(D.getDate()+1);e[x].className="x-date-nextday";l(this,e[x])}this.mbtn.setText(this.monthNames[G.getMonth()]+" "+G.getFullYear());if(!this.internalRender){var j=this.el.dom.firstChild,n=j.offsetWidth;this.el.setWidth(n+this.el.getBorderWidth("lr"));Ext.fly(j).setWidth(n);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){j.rows[0].cells[1].style.width=(n-(j.rows[0].cells[0].offsetWidth+j.rows[0].cells[2].offsetWidth))+"px";this.secondPass=true;this.update.defer(10,this,[G])}}}},beforeDestroy:function(){if(this.rendered){Ext.destroy(this.keyNav,this.monthPicker,this.eventEl,this.mbtn,this.nextRepeater,this.prevRepeater,this.cells.el,this.todayBtn);delete this.textNodes;delete this.cells.elements}}});Ext.reg("datepicker",Ext.DatePicker);Ext.LoadMask=function(c,b){this.el=Ext.get(c);Ext.apply(this,b);if(this.store){this.store.on({scope:this,beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.onLoad});this.removeMask=Ext.value(this.removeMask,false)}else{var a=this.el.getUpdater();a.showLoadIndicator=false;a.on({scope:this,beforeupdate:this.onBeforeLoad,update:this.onLoad,failure:this.onLoad});this.removeMask=Ext.value(this.removeMask,true)}};Ext.LoadMask.prototype={msg:"Loading...",msgCls:"x-mask-loading",disabled:false,disable:function(){this.disabled=true},enable:function(){this.disabled=false},onLoad:function(){this.el.unmask(this.removeMask)},onBeforeLoad:function(){if(!this.disabled){this.el.mask(this.msg,this.msgCls)}},show:function(){this.onBeforeLoad()},hide:function(){this.onLoad()},destroy:function(){if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoad,this)}else{var a=this.el.getUpdater();a.un("beforeupdate",this.onBeforeLoad,this);a.un("update",this.onLoad,this);a.un("failure",this.onLoad,this)}}};Ext.ns("Ext.slider");Ext.slider.Thumb=Ext.extend(Object,{constructor:function(a){Ext.apply(this,a||{},{cls:"x-slider-thumb",constrain:false});Ext.slider.Thumb.superclass.constructor.call(this,a);if(this.slider.vertical){Ext.apply(this,Ext.slider.Thumb.Vertical)}},render:function(){this.el=this.slider.innerEl.insertFirst({cls:this.cls});this.initEvents()},enable:function(){this.disabled=false;this.el.removeClass(this.slider.disabledClass)},disable:function(){this.disabled=true;this.el.addClass(this.slider.disabledClass)},initEvents:function(){var a=this.el;a.addClassOnOver("x-slider-thumb-over");this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeDragStart.createDelegate(this),onStart:this.onDragStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onDragEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(a)},onBeforeDragStart:function(a){if(this.disabled){return false}else{this.slider.promoteThumb(this);return true}},onDragStart:function(a){this.el.addClass("x-slider-thumb-drag");this.dragging=true;this.dragStartValue=this.value;this.slider.fireEvent("dragstart",this.slider,a,this)},onDrag:function(g){var c=this.slider,b=this.index,d=this.getNewValue();if(this.constrain){var a=c.thumbs[b+1],h=c.thumbs[b-1];if(h!=undefined&&d<=h.value){d=h.value}if(a!=undefined&&d>=a.value){d=a.value}}c.setValue(b,d,false);c.fireEvent("drag",c,g,this)},getNewValue:function(){var a=this.slider,b=a.innerEl.translatePoints(this.tracker.getXY());return Ext.util.Format.round(a.reverseValue(b.left),a.decimalPrecision)},onDragEnd:function(c){var a=this.slider,b=this.value;this.el.removeClass("x-slider-thumb-drag");this.dragging=false;a.fireEvent("dragend",a,c);if(this.dragStartValue!=b){a.fireEvent("changecomplete",a,b,this)}},destroy:function(){Ext.destroyMembers(this,"tracker","el")}});Ext.slider.MultiSlider=Ext.extend(Ext.BoxComponent,{vertical:false,minValue:0,maxValue:100,decimalPrecision:0,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,constrainThumbs:true,topThumbZIndex:10000,initComponent:function(){if(!Ext.isDefined(this.value)){this.value=this.minValue}this.thumbs=[];Ext.slider.MultiSlider.superclass.initComponent.call(this);this.keyIncrement=Math.max(this.increment,this.keyIncrement);this.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(this.values==undefined||Ext.isEmpty(this.values)){this.values=[0]}var a=this.values;for(var b=0;b<a.length;b++){this.addThumb(a[b])}if(this.vertical){Ext.apply(this,Ext.slider.Vertical)}},addThumb:function(b){var a=new Ext.slider.Thumb({value:b,slider:this,index:this.thumbs.length,constrain:this.constrainThumbs});this.thumbs.push(a);if(this.rendered){a.render()}},promoteThumb:function(d){var a=this.thumbs,g,b;for(var e=0,c=a.length;e<c;e++){b=a[e];if(b==d){g=this.topThumbZIndex}else{g=""}b.el.setStyle("zIndex",g)}},onRender:function(){this.autoEl={cls:"x-slider "+(this.vertical?"x-slider-vert":"x-slider-horz"),cn:{cls:"x-slider-end",cn:{cls:"x-slider-inner",cn:[{tag:"a",cls:"x-slider-focus",href:"#",tabIndex:"-1",hidefocus:"on"}]}}};Ext.slider.MultiSlider.superclass.onRender.apply(this,arguments);this.endEl=this.el.first();this.innerEl=this.endEl.first();this.focusEl=this.innerEl.child(".x-slider-focus");for(var b=0;b<this.thumbs.length;b++){this.thumbs[b].render()}var a=this.innerEl.child(".x-slider-thumb");this.halfThumb=(this.vertical?a.getHeight():a.getWidth())/2;this.initEvents()},initEvents:function(){this.mon(this.el,{scope:this,mousedown:this.onMouseDown,keydown:this.onKeyDown});this.focusEl.swallowEvent("click",true)},onMouseDown:function(d){if(this.disabled){return}var c=false;for(var b=0;b<this.thumbs.length;b++){c=c||d.target==this.thumbs[b].el.dom}if(this.clickToChange&&!c){var a=this.innerEl.translatePoints(d.getXY());this.onClickChange(a)}this.focus()},onClickChange:function(c){if(c.top>this.clickRange[0]&&c.top<this.clickRange[1]){var a=this.getNearest(c,"left"),b=a.index;this.setValue(b,Ext.util.Format.round(this.reverseValue(c.left),this.decimalPrecision),undefined,true)}},getNearest:function(k,b){var m=b=="top"?this.innerEl.getHeight()-k[b]:k[b],g=this.reverseValue(m),j=(this.maxValue-this.minValue)+5,e=0,c=null;for(var d=0;d<this.thumbs.length;d++){var a=this.thumbs[d],l=a.value,h=Math.abs(l-g);if(Math.abs(h<=j)){c=a;e=d;j=h}}return c},onKeyDown:function(b){if(this.disabled||this.thumbs.length!==1){b.preventDefault();return}var a=b.getKey(),c;switch(a){case b.UP:case b.RIGHT:b.stopEvent();c=b.ctrlKey?this.maxValue:this.getValue(0)+this.keyIncrement;this.setValue(0,c,undefined,true);break;case b.DOWN:case b.LEFT:b.stopEvent();c=b.ctrlKey?this.minValue:this.getValue(0)-this.keyIncrement;this.setValue(0,c,undefined,true);break;default:b.preventDefault()}},doSnap:function(b){if(!(this.increment&&b)){return b}var d=b,c=this.increment,a=b%c;if(a!=0){d-=a;if(a*2>=c){d+=c}else{if(a*2<-c){d-=c}}}return d.constrain(this.minValue,this.maxValue)},afterRender:function(){Ext.slider.MultiSlider.superclass.afterRender.apply(this,arguments);for(var c=0;c<this.thumbs.length;c++){var b=this.thumbs[c];if(b.value!==undefined){var a=this.normalizeValue(b.value);if(a!==b.value){this.setValue(c,a,false)}else{this.moveThumb(c,this.translateValue(a),false)}}}},getRatio:function(){var a=this.innerEl.getWidth(),b=this.maxValue-this.minValue;return b==0?a:(a/b)},normalizeValue:function(a){a=this.doSnap(a);a=Ext.util.Format.round(a,this.decimalPrecision);a=a.constrain(this.minValue,this.maxValue);return a},setMinValue:function(e){this.minValue=e;var d=0,b=this.thumbs,a=b.length,c;for(;d<a;++d){c=b[d];c.value=c.value<e?e:c.value}this.syncThumb()},setMaxValue:function(e){this.maxValue=e;var d=0,b=this.thumbs,a=b.length,c;for(;d<a;++d){c=b[d];c.value=c.value>e?e:c.value}this.syncThumb()},setValue:function(d,c,b,g){var a=this.thumbs[d],e=a.el;c=this.normalizeValue(c);if(c!==a.value&&this.fireEvent("beforechange",this,c,a.value,a)!==false){a.value=c;if(this.rendered){this.moveThumb(d,this.translateValue(c),b!==false);this.fireEvent("change",this,c,a);if(g){this.fireEvent("changecomplete",this,c,a)}}}},translateValue:function(a){var b=this.getRatio();return(a*b)-(this.minValue*b)-this.halfThumb},reverseValue:function(b){var a=this.getRatio();return(b+(this.minValue*a))/a},moveThumb:function(d,c,b){var a=this.thumbs[d].el;if(!b||this.animate===false){a.setLeft(c)}else{a.shift({left:c,stopFx:true,duration:0.35})}},focus:function(){this.focusEl.focus(10)},onResize:function(c,e){var b=this.thumbs,a=b.length,d=0;for(;d<a;++d){b[d].el.stopFx()}if(Ext.isNumber(c)){this.innerEl.setWidth(c-(this.el.getPadding("l")+this.endEl.getPadding("r")))}this.syncThumb();Ext.slider.MultiSlider.superclass.onResize.apply(this,arguments)},onDisable:function(){Ext.slider.MultiSlider.superclass.onDisable.call(this);for(var b=0;b<this.thumbs.length;b++){var a=this.thumbs[b],c=a.el;a.disable();if(Ext.isIE){var d=c.getXY();c.hide();this.innerEl.addClass(this.disabledClass).dom.disabled=true;if(!this.thumbHolder){this.thumbHolder=this.endEl.createChild({cls:"x-slider-thumb "+this.disabledClass})}this.thumbHolder.show().setXY(d)}}},onEnable:function(){Ext.slider.MultiSlider.superclass.onEnable.call(this);for(var b=0;b<this.thumbs.length;b++){var a=this.thumbs[b],c=a.el;a.enable();if(Ext.isIE){this.innerEl.removeClass(this.disabledClass).dom.disabled=false;if(this.thumbHolder){this.thumbHolder.hide()}c.show();this.syncThumb()}}},syncThumb:function(){if(this.rendered){for(var a=0;a<this.thumbs.length;a++){this.moveThumb(a,this.translateValue(this.thumbs[a].value))}}},getValue:function(a){return this.thumbs[a].value},getValues:function(){var a=[];for(var b=0;b<this.thumbs.length;b++){a.push(this.thumbs[b].value)}return a},beforeDestroy:function(){var b=this.thumbs;for(var c=0,a=b.length;c<a;++c){b[c].destroy();b[c]=null}Ext.destroyMembers(this,"endEl","innerEl","focusEl","thumbHolder");Ext.slider.MultiSlider.superclass.beforeDestroy.call(this)}});Ext.reg("multislider",Ext.slider.MultiSlider);Ext.slider.SingleSlider=Ext.extend(Ext.slider.MultiSlider,{constructor:function(a){a=a||{};Ext.applyIf(a,{values:[a.value||0]});Ext.slider.SingleSlider.superclass.constructor.call(this,a)},getValue:function(){return Ext.slider.SingleSlider.superclass.getValue.call(this,0)},setValue:function(d,b){var c=Ext.toArray(arguments),a=c.length;if(a==1||(a<=3&&typeof arguments[1]!="number")){c.unshift(0)}return Ext.slider.SingleSlider.superclass.setValue.apply(this,c)},syncThumb:function(){return Ext.slider.SingleSlider.superclass.syncThumb.apply(this,[0].concat(arguments))},getNearest:function(){return this.thumbs[0]}});Ext.Slider=Ext.slider.SingleSlider;Ext.reg("slider",Ext.slider.SingleSlider);Ext.slider.Vertical={onResize:function(a,b){this.innerEl.setHeight(b-(this.el.getPadding("t")+this.endEl.getPadding("b")));this.syncThumb()},getRatio:function(){var b=this.innerEl.getHeight(),a=this.maxValue-this.minValue;return b/a},moveThumb:function(d,c,b){var a=this.thumbs[d],e=a.el;if(!b||this.animate===false){e.setBottom(c)}else{e.shift({bottom:c,stopFx:true,duration:0.35})}},onClickChange:function(c){if(c.left>this.clickRange[0]&&c.left<this.clickRange[1]){var a=this.getNearest(c,"top"),b=a.index,d=this.minValue+this.reverseValue(this.innerEl.getHeight()-c.top);this.setValue(b,Ext.util.Format.round(d,this.decimalPrecision),undefined,true)}}};Ext.slider.Thumb.Vertical={getNewValue:function(){var b=this.slider,c=b.innerEl,d=c.translatePoints(this.tracker.getXY()),a=c.getHeight()-d.top;return b.minValue+Ext.util.Format.round(a/b.getRatio(),b.decimalPrecision)}};Ext.ProgressBar=Ext.extend(Ext.BoxComponent,{baseCls:"x-progress",animate:false,waitTimer:null,initComponent:function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update")},onRender:function(d,a){var c=new Ext.Template('<div class="{cls}-wrap">','<div class="{cls}-inner">','<div class="{cls}-bar">','<div class="{cls}-text">',"<div>&#160;</div>","</div>","</div>",'<div class="{cls}-text {cls}-text-back">',"<div>&#160;</div>","</div>","</div>","</div>");this.el=a?c.insertBefore(a,{cls:this.baseCls},true):c.append(d,{cls:this.baseCls},true);if(this.id){this.el.dom.id=this.id}var b=this.el.dom.firstChild;this.progressBar=Ext.get(b.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var e=Ext.get(b.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass("x-hidden");this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,e.dom.firstChild]);this.textEl.setWidth(b.offsetWidth)}this.progressBar.setHeight(b.offsetHeight)},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this);if(this.value){this.updateProgress(this.value,this.text)}else{this.updateText(this.text)}},updateProgress:function(c,d,b){this.value=c||0;if(d){this.updateText(d)}if(this.rendered&&!this.isDestroyed){var a=Math.floor(c*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(a,b===true||(b!==false&&this.animate));if(this.textTopEl){this.textTopEl.removeClass("x-hidden").setWidth(a)}}this.fireEvent("update",this,c,d);return this},wait:function(b){if(!this.waitTimer){var a=this;b=b||{};this.updateText(b.text);this.waitTimer=Ext.TaskMgr.start({run:function(c){var d=b.increment||10;c-=1;this.updateProgress(((((c+d)%d)+1)*(100/d))*0.01,null,b.animate)},interval:b.interval||1000,duration:b.duration,onStop:function(){if(b.fn){b.fn.apply(b.scope||this)}this.reset()},scope:a})}return this},isWaiting:function(){return this.waitTimer!==null},updateText:function(a){this.text=a||"&#160;";if(this.rendered){this.textEl.update(this.text)}return this},syncProgressBar:function(){if(this.value){this.updateProgress(this.value,this.text)}return this},setSize:function(a,c){Ext.ProgressBar.superclass.setSize.call(this,a,c);if(this.textTopEl){var b=this.el.dom.firstChild;this.textEl.setSize(b.offsetWidth,b.offsetHeight)}this.syncProgressBar();return this},reset:function(a){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass("x-hidden")}this.clearTimer();if(a===true){this.hide()}return this},clearTimer:function(){if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null}},onDestroy:function(){this.clearTimer();if(this.rendered){if(this.textEl.isComposite){this.textEl.clear()}Ext.destroyMembers(this,"textEl","progressBar","textTopEl")}Ext.ProgressBar.superclass.onDestroy.call(this)}});Ext.reg("progress",Ext.ProgressBar);(function(){var a=Ext.EventManager;var b=Ext.lib.Dom;Ext.dd.DragDrop=function(e,c,d){if(e){this.init(e,c,d)}};Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},moveOnly:false,unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(c,d){},startDrag:function(c,d){},b4Drag:function(c){},onDrag:function(c){},onDragEnter:function(c,d){},b4DragOver:function(c){},onDragOver:function(c,d){},b4DragOut:function(c){},onDragOut:function(c,d){},b4DragDrop:function(c){},onDragDrop:function(c,d){},onInvalidDrop:function(c){},b4EndDrag:function(c){},endDrag:function(c){},b4MouseDown:function(c){},onMouseDown:function(c){},onMouseUp:function(c){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(j,h,o){if(Ext.isNumber(h)){h={left:h,right:h,top:h,bottom:h}}h=h||this.defaultPadding;var l=Ext.get(this.getEl()).getBox(),d=Ext.get(j),n=d.getScroll(),k,e=d.dom;if(e==document.body){k={x:n.left,y:n.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()}}else{var m=d.getXY();k={x:m[0],y:m[1],width:e.clientWidth,height:e.clientHeight}}var i=l.y-k.y,g=l.x-k.x;this.resetConstraints();this.setXConstraint(g-(h.left||0),k.width-g-l.width-(h.right||0),this.xTickSize);this.setYConstraint(i-(h.top||0),k.height-i-l.height-(h.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id)}return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(e,c,d){this.initTarget(e,c,d);a.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(e,c,d){this.config=d||{};this.DDM=Ext.dd.DDM;this.groups={};if(typeof e!=="string"){e=Ext.id(e)}this.id=e;this.addToGroup((c)?c:"default");this.handleElId=e;this.setDragElId(e);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false)},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(e,c,g,d){if(!c&&0!==c){this.padding=[e,e,e,e]}else{if(!g&&0!==g){this.padding=[e,c,e,c]}else{this.padding=[e,c,g,d]}}},setInitPosition:function(g,e){var h=this.getEl();if(!this.DDM.verifyEl(h)){return}var d=g||0;var c=e||0;var i=b.getXY(h);this.initPageX=i[0]-d;this.initPageY=i[1]-c;this.lastPageX=i[0];this.lastPageY=i[1];this.setStartPosition(i)},setStartPosition:function(d){var c=d||b.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=c[0];this.startPageY=c[1]},addToGroup:function(c){this.groups[c]=true;this.DDM.regDragDrop(this,c)},removeFromGroup:function(c){if(this.groups[c]){delete this.groups[c]}this.DDM.removeDDFromGroup(this,c)},setDragElId:function(c){this.dragElId=c},setHandleElId:function(c){if(typeof c!=="string"){c=Ext.id(c)}this.handleElId=c;this.DDM.regHandle(this.id,c)},setOuterHandleElId:function(c){if(typeof c!=="string"){c=Ext.id(c)}a.on(c,"mousedown",this.handleMouseDown,this);this.setHandleElId(c);this.hasOuterHandles=true},unreg:function(){a.un(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return(this.DDM.isLocked()||this.locked)},handleMouseDown:function(g,d){if(this.primaryButtonOnly&&g.button!=0){return}if(this.isLocked()){return}this.DDM.refreshCache(this.groups);var c=new Ext.lib.Point(Ext.lib.Event.getPageX(g),Ext.lib.Event.getPageY(g));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(c,this)){}else{if(this.clickValidator(g)){this.setStartPosition();this.b4MouseDown(g);this.onMouseDown(g);this.DDM.handleMouseDown(g,this);this.DDM.stopEvent(g)}else{}}},clickValidator:function(d){var c=d.getTarget();return(this.isValidHandleChild(c)&&(this.id==this.handleElId||this.DDM.handleWasClicked(c,this.id)))},addInvalidHandleType:function(c){var d=c.toUpperCase();this.invalidHandleTypes[d]=d},addInvalidHandleId:function(c){if(typeof c!=="string"){c=Ext.id(c)}this.invalidHandleIds[c]=c},addInvalidHandleClass:function(c){this.invalidHandleClasses.push(c)},removeInvalidHandleType:function(c){var d=c.toUpperCase();delete this.invalidHandleTypes[d]},removeInvalidHandleId:function(c){if(typeof c!=="string"){c=Ext.id(c)}delete this.invalidHandleIds[c]},removeInvalidHandleClass:function(d){for(var e=0,c=this.invalidHandleClasses.length;e<c;++e){if(this.invalidHandleClasses[e]==d){delete this.invalidHandleClasses[e]}}},isValidHandleChild:function(h){var g=true;var k;try{k=h.nodeName.toUpperCase()}catch(j){k=h.nodeName}g=g&&!this.invalidHandleTypes[k];g=g&&!this.invalidHandleIds[h.id];for(var d=0,c=this.invalidHandleClasses.length;g&&d<c;++d){g=!Ext.fly(h).hasClass(this.invalidHandleClasses[d])}return g},setXTicks:function(g,c){this.xTicks=[];this.xTickSize=c;var e={};for(var d=this.initPageX;d>=this.minX;d=d-c){if(!e[d]){this.xTicks[this.xTicks.length]=d;e[d]=true}}for(d=this.initPageX;d<=this.maxX;d=d+c){if(!e[d]){this.xTicks[this.xTicks.length]=d;e[d]=true}}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(g,c){this.yTicks=[];this.yTickSize=c;var e={};for(var d=this.initPageY;d>=this.minY;d=d-c){if(!e[d]){this.yTicks[this.yTicks.length]=d;e[d]=true}}for(d=this.initPageY;d<=this.maxY;d=d+c){if(!e[d]){this.yTicks[this.yTicks.length]=d;e[d]=true}}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(e,d,c){this.leftConstraint=e;this.rightConstraint=d;this.minX=this.initPageX-e;this.maxX=this.initPageX+d;if(c){this.setXTicks(this.initPageX,c)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(c,e,d){this.topConstraint=c;this.bottomConstraint=e;this.minY=this.initPageY-c;this.maxY=this.initPageY+e;if(d){this.setYTicks(this.initPageY,d)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var d=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var c=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(d,c)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(k,g){if(!g){return k}else{if(g[0]>=k){return g[0]}else{for(var d=0,c=g.length;d<c;++d){var e=d+1;if(g[e]&&g[e]>=k){var j=k-g[d];var h=g[e]-k;return(h>j)?g[d]:g[e]}}return g[g.length-1]}}},toString:function(){return("DragDrop "+this.id)}}})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var a=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(d,c){for(var e in this.ids){for(var b in this.ids[e]){var g=this.ids[e][b];if(!this.isTypeOfDD(g)){continue}g[d].apply(g,c)}}},_onLoad:function(){this.init();a.on(document,"mouseup",this.handleMouseUp,this,true);a.on(document,"mousemove",this.handleMouseMove,this,true);a.on(window,"unload",this._onUnload,this,true);a.on(window,"resize",this._onResize,this,true)},_onResize:function(b){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(c,b){if(!this.initialized){this.init()}if(!this.ids[b]){this.ids[b]={}}this.ids[b][c.id]=c},removeDDFromGroup:function(d,b){if(!this.ids[b]){this.ids[b]={}}var c=this.ids[b];if(c&&c[d.id]){delete c[d.id]}},_remove:function(c){for(var b in c.groups){if(b&&this.ids[b]&&this.ids[b][c.id]){delete this.ids[b][c.id]}}delete this.handleIds[c.id]},regHandle:function(c,b){if(!this.handleIds[c]){this.handleIds[c]={}}this.handleIds[c][b]=b},isDragDrop:function(b){return(this.getDDById(b))?true:false},getRelated:function(h,c){var g=[];for(var e in h.groups){for(var d in this.ids[e]){var b=this.ids[e][d];if(!this.isTypeOfDD(b)){continue}if(!c||b.isTarget){g[g.length]=b}}}return g},isLegalTarget:function(g,e){var c=this.getRelated(g,true);for(var d=0,b=c.length;d<b;++d){if(c[d].id==e.id){return true}}return false},isTypeOfDD:function(b){return(b&&b.__ygDragDrop)},isHandle:function(c,b){return(this.handleIds[c]&&this.handleIds[c][b])},getDDById:function(c){for(var b in this.ids){if(this.ids[b][c]){return this.ids[b][c]}}return null},handleMouseDown:function(d,c){if(Ext.QuickTips){Ext.QuickTips.disable()}if(this.dragCurrent){this.handleMouseUp(d)}this.currentTarget=d.getTarget();this.dragCurrent=c;var b=c.getEl();this.startX=d.getPageX();this.startY=d.getPageY();this.deltaX=this.startX-b.offsetLeft;this.deltaY=this.startY-b.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var e=Ext.dd.DDM;e.startDrag(e.startX,e.startY)},this.clickTimeThresh)},startDrag:function(b,c){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(b,c);this.dragCurrent.startDrag(b,c)}this.dragThreshMet=true},handleMouseUp:function(b){if(Ext.QuickTips){Ext.QuickTips.enable()}if(!this.dragCurrent){return}clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(b,true)}else{}this.stopDrag(b);this.stopEvent(b)},stopEvent:function(b){if(this.stopPropagation){b.stopPropagation()}if(this.preventDefault){b.preventDefault()}},stopDrag:function(b){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(b);this.dragCurrent.endDrag(b)}this.dragCurrent.onMouseUp(b)}this.dragCurrent=null;this.dragOvers={}},handleMouseMove:function(d){if(!this.dragCurrent){return true}if(Ext.isIE&&(d.button!==0&&d.button!==1&&d.button!==2)){this.stopEvent(d);return this.handleMouseUp(d)}if(!this.dragThreshMet){var c=Math.abs(this.startX-d.getPageX());var b=Math.abs(this.startY-d.getPageY());if(c>this.clickPixelThresh||b>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(d);this.dragCurrent.onDrag(d);if(!this.dragCurrent.moveOnly){this.fireEvents(d,false)}}this.stopEvent(d);return true},fireEvents:function(n,o){var q=this.dragCurrent;if(!q||q.isLocked()){return}var r=n.getPoint();var b=[];var g=[];var l=[];var j=[];var d=[];for(var h in this.dragOvers){var c=this.dragOvers[h];if(!this.isTypeOfDD(c)){continue}if(!this.isOverTarget(r,c,this.mode)){g.push(c)}b[h]=true;delete this.dragOvers[h]}for(var p in q.groups){if("string"!=typeof p){continue}for(h in this.ids[p]){var k=this.ids[p][h];if(!this.isTypeOfDD(k)){continue}if(k.isTarget&&!k.isLocked()&&((k!=q)||(q.ignoreSelf===false))){if(this.isOverTarget(r,k,this.mode)){if(o){j.push(k)}else{if(!b[k.id]){d.push(k)}else{l.push(k)}this.dragOvers[k.id]=k}}}}}if(this.mode){if(g.length){q.b4DragOut(n,g);q.onDragOut(n,g)}if(d.length){q.onDragEnter(n,d)}if(l.length){q.b4DragOver(n,l);q.onDragOver(n,l)}if(j.length){q.b4DragDrop(n,j);q.onDragDrop(n,j)}}else{var m=0;for(h=0,m=g.length;h<m;++h){q.b4DragOut(n,g[h].id);q.onDragOut(n,g[h].id)}for(h=0,m=d.length;h<m;++h){q.onDragEnter(n,d[h].id)}for(h=0,m=l.length;h<m;++h){q.b4DragOver(n,l[h].id);q.onDragOver(n,l[h].id)}for(h=0,m=j.length;h<m;++h){q.b4DragDrop(n,j[h].id);q.onDragDrop(n,j[h].id)}}if(o&&!j.length){q.onInvalidDrop(n)}},getBestMatch:function(d){var g=null;var c=d.length;if(c==1){g=d[0]}else{for(var e=0;e<c;++e){var b=d[e];if(b.cursorIsOver){g=b;break}else{if(!g||g.overlap.getArea()<b.overlap.getArea()){g=b}}}}return g},refreshCache:function(c){for(var b in c){if("string"!=typeof b){continue}for(var d in this.ids[b]){var e=this.ids[b][d];if(this.isTypeOfDD(e)){var g=this.getLocation(e);if(g){this.locationCache[e.id]=g}else{delete this.locationCache[e.id]}}}}},verifyEl:function(c){if(c){var b;if(Ext.isIE){try{b=c.offsetParent}catch(d){}}else{b=c.offsetParent}if(b){return true}}return false},getLocation:function(j){if(!this.isTypeOfDD(j)){return null}var h=j.getEl(),n,g,d,p,o,q,c,m,i;try{n=Ext.lib.Dom.getXY(h)}catch(k){}if(!n){return null}g=n[0];d=g+h.offsetWidth;p=n[1];o=p+h.offsetHeight;q=p-j.padding[0];c=d+j.padding[1];m=o+j.padding[2];i=g-j.padding[3];return new Ext.lib.Region(q,c,m,i)},isOverTarget:function(k,b,d){var g=this.locationCache[b.id];if(!g||!this.useCache){g=this.getLocation(b);this.locationCache[b.id]=g}if(!g){return false}b.cursorIsOver=g.contains(k);var j=this.dragCurrent;if(!j||!j.getTargetCoord||(!d&&!j.constrainX&&!j.constrainY)){return b.cursorIsOver}b.overlap=null;var h=j.getTargetCoord(k.x,k.y);var c=j.getDragEl();var e=new Ext.lib.Region(h.y,h.x+c.offsetWidth,h.y+c.offsetHeight,h.x);var i=e.intersect(g);if(i){b.overlap=i;return(d)?true:b.cursorIsOver}else{return false}},_onUnload:function(c,b){Ext.dd.DragDropMgr.unregAll()},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null}this._execOnAll("unreg",[]);for(var b in this.elementCache){delete this.elementCache[b]}this.elementCache={};this.ids={}},elementCache:{},getElWrapper:function(c){var b=this.elementCache[c];if(!b||!b.el){b=this.elementCache[c]=new this.ElementWrapper(Ext.getDom(c))}return b},getElement:function(b){return Ext.getDom(b)},getCss:function(c){var b=Ext.getDom(c);return(b)?b.style:null},ElementWrapper:function(b){this.el=b||null;this.id=this.el&&b.id;this.css=this.el&&b.style},getPosX:function(b){return Ext.lib.Dom.getX(b)},getPosY:function(b){return Ext.lib.Dom.getY(b)},swapNode:function(d,b){if(d.swapNode){d.swapNode(b)}else{var e=b.parentNode;var c=b.nextSibling;if(c==d){e.insertBefore(d,b)}else{if(b==d.nextSibling){e.insertBefore(b,d)}else{d.parentNode.replaceChild(b,d);e.insertBefore(d,c)}}}},getScroll:function(){var d,b,e=document.documentElement,c=document.body;if(e&&(e.scrollTop||e.scrollLeft)){d=e.scrollTop;b=e.scrollLeft}else{if(c){d=c.scrollTop;b=c.scrollLeft}else{}}return{top:d,left:b}},getStyle:function(c,b){return Ext.fly(c).getStyle(b)},getScrollTop:function(){return this.getScroll().top},getScrollLeft:function(){return this.getScroll().left},moveToEl:function(b,d){var c=Ext.lib.Dom.getXY(d);Ext.lib.Dom.setXY(b,c)},numericSort:function(d,c){return(d-c)},_timeoutCount:0,_addListeners:function(){var b=Ext.dd.DDM;if(Ext.lib.Event&&document){b._onLoad()}else{if(b._timeoutCount>2000){}else{setTimeout(b._addListeners,10);if(document&&document.body){b._timeoutCount+=1}}}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id)){return true}else{var c=b.parentNode;while(c){if(this.isHandle(d,c.id)){return true}else{c=c.parentNode}}}return false}}}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners()}Ext.dd.DD=function(c,a,b){if(c){this.init(c,a,b)}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(c,b){var a=c-this.startPageX;var d=b-this.startPageY;this.setDelta(a,d)},setDelta:function(b,a){this.deltaX=b;this.deltaY=a},setDragElPos:function(c,b){var a=this.getDragEl();this.alignElWithMouse(a,c,b)},alignElWithMouse:function(c,h,g){var e=this.getTargetCoord(h,g);var b=c.dom?c:Ext.fly(c,"_dd");if(!this.deltaSetXY){var i=[e.x,e.y];b.setXY(i);var d=b.getLeft(true);var a=b.getTop(true);this.deltaSetXY=[d-e.x,a-e.y]}else{b.setLeftTop(e.x+this.deltaSetXY[0],e.y+this.deltaSetXY[1])}this.cachePosition(e.x,e.y);this.autoScroll(e.x,e.y,c.offsetHeight,c.offsetWidth);return e},cachePosition:function(b,a){if(b){this.lastPageX=b;this.lastPageY=a}else{var c=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=c[0];this.lastPageY=c[1]}},autoScroll:function(l,k,e,m){if(this.scroll){var n=Ext.lib.Dom.getViewHeight();var b=Ext.lib.Dom.getViewWidth();var p=this.DDM.getScrollTop();var d=this.DDM.getScrollLeft();var j=e+k;var o=m+l;var i=(n+p-k-this.deltaY);var g=(b+d-l-this.deltaX);var c=40;var a=(document.all)?80:30;if(j>n&&i<c){window.scrollTo(d,p+a)}if(k<p&&p>0&&k-p<c){window.scrollTo(d,p-a)}if(o>b&&g<c){window.scrollTo(d+a,p)}if(l<d&&d>0&&l-d<c){window.scrollTo(d-a,p)}}},getTargetCoord:function(c,b){var a=c-this.deltaX;var d=b-this.deltaY;if(this.constrainX){if(a<this.minX){a=this.minX}if(a>this.maxX){a=this.maxX}}if(this.constrainY){if(d<this.minY){d=this.minY}if(d>this.maxY){d=this.maxY}}a=this.getTick(a,this.xTicks);d=this.getTick(d,this.yTicks);return{x:a,y:d}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false)},b4MouseDown:function(a){this.autoOffset(a.getPageX(),a.getPageY())},b4Drag:function(a){this.setDragElPos(a.getPageX(),a.getPageY())},toString:function(){return("DD "+this.id)}});Ext.dd.DDProxy=function(c,a,b){if(c){this.init(c,a,b);this.initFrame()}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var b=this;var a=document.body;if(!a||!a.firstChild){setTimeout(function(){b.createFrame()},50);return}var d=this.getDragEl();if(!d){d=document.createElement("div");d.id=this.dragElId;var c=d.style;c.position="absolute";c.visibility="hidden";c.cursor="move";c.border="2px solid #aaa";c.zIndex=999;a.insertBefore(d,a.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(e,d){var c=this.getEl();var a=this.getDragEl();var b=a.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(b.width,10)/2),Math.round(parseInt(b.height,10)/2))}this.setDragElPos(e,d);Ext.fly(a).show()},_resizeProxy:function(){if(this.resizeFrame){var a=this.getEl();Ext.fly(this.getDragEl()).setSize(a.offsetWidth,a.offsetHeight)}},b4MouseDown:function(b){var a=b.getPageX();var c=b.getPageY();this.autoOffset(a,c);this.setDragElPos(a,c)},b4StartDrag:function(a,b){this.showFrame(a,b)},b4EndDrag:function(a){Ext.fly(this.getDragEl()).hide()},endDrag:function(c){var b=this.getEl();var a=this.getDragEl();a.style.visibility="";this.beforeMove();b.style.visibility="hidden";Ext.dd.DDM.moveToEl(b,a);a.style.visibility="hidden";b.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.dd.DDTarget=function(c,a,b){if(c){this.initTarget(c,a,b)}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{getDragEl:Ext.emptyFn,isValidHandleChild:Ext.emptyFn,startDrag:Ext.emptyFn,endDrag:Ext.emptyFn,onDrag:Ext.emptyFn,onDragDrop:Ext.emptyFn,onDragEnter:Ext.emptyFn,onDragOut:Ext.emptyFn,onDragOver:Ext.emptyFn,onInvalidDrop:Ext.emptyFn,onMouseDown:Ext.emptyFn,onMouseUp:Ext.emptyFn,setXConstraint:Ext.emptyFn,setYConstraint:Ext.emptyFn,resetConstraints:Ext.emptyFn,clearConstraints:Ext.emptyFn,clearTicks:Ext.emptyFn,setInitPosition:Ext.emptyFn,setDragElId:Ext.emptyFn,setHandleElId:Ext.emptyFn,setOuterHandleElId:Ext.emptyFn,addInvalidHandleClass:Ext.emptyFn,addInvalidHandleId:Ext.emptyFn,addInvalidHandleType:Ext.emptyFn,removeInvalidHandleClass:Ext.emptyFn,removeInvalidHandleId:Ext.emptyFn,removeInvalidHandleType:Ext.emptyFn,toString:function(){return("DDTarget "+this.id)}});Ext.dd.DragTracker=Ext.extend(Ext.util.Observable,{active:false,tolerance:5,autoStart:false,constructor:function(a){Ext.apply(this,a);this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag");this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el){this.initEl(this.el)}Ext.dd.DragTracker.superclass.constructor.call(this,a)},initEl:function(a){this.el=Ext.get(a);a.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this);delete this.el},onMouseDown:function(c,b){if(this.fireEvent("mousedown",this,c)!==false&&this.onBeforeStart(c)!==false){this.startXY=this.lastXY=c.getXY();this.dragTarget=this.delegate?b:this.el.dom;if(this.preventDefault!==false){c.preventDefault()}var a=Ext.getDoc();a.on("mouseup",this.onMouseUp,this);a.on("mousemove",this.onMouseMove,this);a.on("selectstart",this.stopSelect,this);if(this.autoStart){this.timer=this.triggerStart.defer(this.autoStart===true?1000:this.autoStart,this)}}},onMouseMove:function(d,c){if(this.active&&Ext.isIE&&!d.browserEvent.button){d.preventDefault();this.onMouseUp(d);return}d.preventDefault();var b=d.getXY(),a=this.startXY;this.lastXY=b;if(!this.active){if(Math.abs(a[0]-b[0])>this.tolerance||Math.abs(a[1]-b[1])>this.tolerance){this.triggerStart()}else{return}}this.fireEvent("mousemove",this,d);this.onDrag(d);this.fireEvent("drag",this,d)},onMouseUp:function(c){var b=Ext.getDoc();b.un("mousemove",this.onMouseMove,this);b.un("mouseup",this.onMouseUp,this);b.un("selectstart",this.stopSelect,this);c.preventDefault();this.clearStart();var a=this.active;this.active=false;delete this.elRegion;this.fireEvent("mouseup",this,c);if(a){this.onEnd(c);this.fireEvent("dragend",this,c)}},triggerStart:function(a){this.clearStart();this.active=true;this.onStart(this.startXY);this.fireEvent("dragstart",this,this.startXY)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(a){a.stopEvent();return false},onBeforeStart:function(a){},onStart:function(a){},onDrag:function(a){},onEnd:function(a){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(a){return a?this.constrainModes[a].call(this,this.lastXY):this.lastXY},getOffset:function(c){var b=this.getXY(c);var a=this.startXY;return[a[0]-b[0],a[1]-b[1]]},constrainModes:{point:function(b){if(!this.elRegion){this.elRegion=this.getDragCt().getRegion()}var a=this.dragRegion;a.left=b[0];a.top=b[1];a.right=b[0];a.bottom=b[1];a.constrainTo(this.elRegion);return[a.left,a.top]}}});Ext.dd.ScrollManager=function(){var c=Ext.dd.DragDropMgr;var e={};var b=null;var i={};var h=function(l){b=null;a()};var j=function(){if(c.dragCurrent){c.refreshCache(c.dragCurrent.groups)}};var d=function(){if(c.dragCurrent){var l=Ext.dd.ScrollManager;var m=i.el.ddScrollConfig?i.el.ddScrollConfig.increment:l.increment;if(!l.animate){if(i.el.scroll(i.dir,m)){j()}}else{i.el.scroll(i.dir,m,true,l.animDuration,j)}}};var a=function(){if(i.id){clearInterval(i.id)}i.id=0;i.el=null;i.dir=""};var g=function(m,l){a();i.el=m;i.dir=l;var n=(m.ddScrollConfig&&m.ddScrollConfig.frequency)?m.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;i.id=setInterval(d,n)};var k=function(o,q){if(q||!c.dragCurrent){return}var s=Ext.dd.ScrollManager;if(!b||b!=c.dragCurrent){b=c.dragCurrent;s.refreshCache()}var t=Ext.lib.Event.getXY(o);var u=new Ext.lib.Point(t[0],t[1]);for(var m in e){var n=e[m],l=n._region;var p=n.ddScrollConfig?n.ddScrollConfig:s;if(l&&l.contains(u)&&n.isScrollable()){if(l.bottom-u.y<=p.vthresh){if(i.el!=n){g(n,"down")}return}else{if(l.right-u.x<=p.hthresh){if(i.el!=n){g(n,"left")}return}else{if(u.y-l.top<=p.vthresh){if(i.el!=n){g(n,"up")}return}else{if(u.x-l.left<=p.hthresh){if(i.el!=n){g(n,"right")}return}}}}}}a()};c.fireEvents=c.fireEvents.createSequence(k,c);c.stopDrag=c.stopDrag.createSequence(h,c);return{register:function(n){if(Ext.isArray(n)){for(var m=0,l=n.length;m<l;m++){this.register(n[m])}}else{n=Ext.get(n);e[n.id]=n}},unregister:function(n){if(Ext.isArray(n)){for(var m=0,l=n.length;m<l;m++){this.unregister(n[m])}}else{n=Ext.get(n);delete e[n.id]}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:0.4,refreshCache:function(){for(var l in e){if(typeof e[l]=="object"){e[l]._region=e[l].getRegion()}}}}}();Ext.dd.Registry=function(){var d={};var b={};var a=0;var c=function(g,e){if(typeof g=="string"){return g}var h=g.id;if(!h&&e!==false){h="extdd-"+(++a);g.id=h}return h};return{register:function(j,k){k=k||{};if(typeof j=="string"){j=document.getElementById(j)}k.ddel=j;d[c(j)]=k;if(k.isHandle!==false){b[k.ddel.id]=k}if(k.handles){var h=k.handles;for(var g=0,e=h.length;g<e;g++){b[c(h[g])]=k}}},unregister:function(j){var l=c(j,false);var k=d[l];if(k){delete d[l];if(k.handles){var h=k.handles;for(var g=0,e=h.length;g<e;g++){delete b[c(h[g],false)]}}}},getHandle:function(e){if(typeof e!="string"){e=e.id}return b[e]},getHandleFromEvent:function(h){var g=Ext.lib.Event.getTarget(h);return g?b[g.id]:null},getTarget:function(e){if(typeof e!="string"){e=e.id}return d[e]},getTargetFromEvent:function(h){var g=Ext.lib.Event.getTarget(h);return g?d[g.id]||b[g.id]:null}}}();Ext.dd.StatusProxy=function(a){Ext.apply(this,a);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,tag:"div",cls:"x-dd-drag-proxy "+this.dropNotAllowed,children:[{tag:"div",cls:"x-dd-drop-icon"},{tag:"div",cls:"x-dd-drag-ghost"}]},shadow:!a||a.shadow!==false});this.ghost=Ext.get(this.el.dom.childNodes[1]);this.dropStatus=this.dropNotAllowed};Ext.dd.StatusProxy.prototype={dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",setStatus:function(a){a=a||this.dropNotAllowed;if(this.dropStatus!=a){this.el.replaceClass(this.dropStatus,a);this.dropStatus=a}},reset:function(a){this.el.dom.className="x-dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(a){this.ghost.update("")}},update:function(a){if(typeof a=="string"){this.ghost.update(a)}else{this.ghost.update("");a.style.margin="0";this.ghost.dom.appendChild(a)}var b=this.ghost.dom.firstChild;if(b){Ext.fly(b).setStyle("float","none")}},getEl:function(){return this.el},getGhost:function(){return this.ghost},hide:function(a){this.el.hide();if(a){this.reset(true)}},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated()){this.anim.stop()}},show:function(){this.el.show()},sync:function(){this.el.sync()},repair:function(b,c,a){this.callback=c;this.scope=a;if(b&&this.animRepair!==false){this.el.addClass("x-dd-drag-repair");this.el.hideUnders(true);this.anim=this.el.shift({duration:this.repairDuration||0.5,easing:"easeOut",xy:b,stopFx:true,callback:this.afterRepair,scope:this})}else{this.afterRepair()}},afterRepair:function(){this.hide(true);if(typeof this.callback=="function"){this.callback.call(this.scope||this)}this.callback=null;this.scope=null},destroy:function(){Ext.destroy(this.ghost,this.el)}};Ext.dd.DragSource=function(b,a){this.el=Ext.get(b);if(!this.dragData){this.dragData={}}Ext.apply(this,a);if(!this.proxy){this.proxy=new Ext.dd.StatusProxy()}Ext.dd.DragSource.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true});this.dragging=false};Ext.extend(Ext.dd.DragSource,Ext.dd.DDProxy,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",getDragData:function(a){return this.dragData},onDragEnter:function(c,d){var b=Ext.dd.DragDropMgr.getDDById(d);this.cachedTarget=b;if(this.beforeDragEnter(b,c,d)!==false){if(b.isNotifyTarget){var a=b.notifyEnter(this,c,this.dragData);this.proxy.setStatus(a)}else{this.proxy.setStatus(this.dropAllowed)}if(this.afterDragEnter){this.afterDragEnter(b,c,d)}}},beforeDragEnter:function(b,a,c){return true},alignElWithMouse:function(){Ext.dd.DragSource.superclass.alignElWithMouse.apply(this,arguments);this.proxy.sync()},onDragOver:function(c,d){var b=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(d);if(this.beforeDragOver(b,c,d)!==false){if(b.isNotifyTarget){var a=b.notifyOver(this,c,this.dragData);this.proxy.setStatus(a)}if(this.afterDragOver){this.afterDragOver(b,c,d)}}},beforeDragOver:function(b,a,c){return true},onDragOut:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(c);if(this.beforeDragOut(a,b,c)!==false){if(a.isNotifyTarget){a.notifyOut(this,b,this.dragData)}this.proxy.reset();if(this.afterDragOut){this.afterDragOut(a,b,c)}}this.cachedTarget=null},beforeDragOut:function(b,a,c){return true},onDragDrop:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(c);if(this.beforeDragDrop(a,b,c)!==false){if(a.isNotifyTarget){if(a.notifyDrop(this,b,this.dragData)){this.onValidDrop(a,b,c)}else{this.onInvalidDrop(a,b,c)}}else{this.onValidDrop(a,b,c)}if(this.afterDragDrop){this.afterDragDrop(a,b,c)}}delete this.cachedTarget},beforeDragDrop:function(b,a,c){return true},onValidDrop:function(b,a,c){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(b,a,c)}},getRepairXY:function(b,a){return this.el.getXY()},onInvalidDrop:function(b,a,c){this.beforeInvalidDrop(b,a,c);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this,a,this.dragData)}this.cacheTarget=null}this.proxy.repair(this.getRepairXY(a,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop){this.afterInvalidDrop(a,c)}},afterRepair:function(){if(Ext.enableFx){this.el.highlight(this.hlColor||"c3daf9")}this.dragging=false},beforeInvalidDrop:function(b,a,c){return true},handleMouseDown:function(b){if(this.dragging){return}var a=this.getDragData(b);if(a&&this.onBeforeDrag(a,b)!==false){this.dragData=a;this.proxy.stop();Ext.dd.DragSource.superclass.handleMouseDown.apply(this,arguments)}},onBeforeDrag:function(a,b){return true},onStartDrag:Ext.emptyFn,startDrag:function(a,b){this.proxy.reset();this.dragging=true;this.proxy.update("");this.onInitDrag(a,b);this.proxy.show()},onInitDrag:function(a,c){var b=this.el.dom.cloneNode(true);b.id=Ext.id();this.proxy.update(b);this.onStartDrag(a,c);return true},getProxy:function(){return this.proxy},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)},b4EndDrag:function(a){},endDrag:function(a){this.onEndDrag(this.dragData,a)},onEndDrag:function(a,b){},autoOffset:function(a,b){this.setDelta(-12,-20)},destroy:function(){Ext.dd.DragSource.superclass.destroy.call(this);Ext.destroy(this.proxy)}});Ext.dd.DropTarget=Ext.extend(Ext.dd.DDTarget,{constructor:function(b,a){this.el=Ext.get(b);Ext.apply(this,a);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}Ext.dd.DropTarget.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{isTarget:true})},dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",isTarget:true,isNotifyTarget:true,notifyEnter:function(a,c,b){if(this.overClass){this.el.addClass(this.overClass)}return this.dropAllowed},notifyOver:function(a,c,b){return this.dropAllowed},notifyOut:function(a,c,b){if(this.overClass){this.el.removeClass(this.overClass)}},notifyDrop:function(a,c,b){return false},destroy:function(){Ext.dd.DropTarget.superclass.destroy.call(this);if(this.containerScroll){Ext.dd.ScrollManager.unregister(this.el)}}});Ext.dd.DragZone=Ext.extend(Ext.dd.DragSource,{constructor:function(b,a){Ext.dd.DragZone.superclass.constructor.call(this,b,a);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}},getDragData:function(a){return Ext.dd.Registry.getHandleFromEvent(a)},onInitDrag:function(a,b){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(a,b);return true},afterRepair:function(){if(Ext.enableFx){Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9")}this.dragging=false},getRepairXY:function(a){return Ext.Element.fly(this.dragData.ddel).getXY()},destroy:function(){Ext.dd.DragZone.superclass.destroy.call(this);if(this.containerScroll){Ext.dd.ScrollManager.unregister(this.el)}}});Ext.dd.DropZone=function(b,a){Ext.dd.DropZone.superclass.constructor.call(this,b,a)};Ext.extend(Ext.dd.DropZone,Ext.dd.DropTarget,{getTargetFromEvent:function(a){return Ext.dd.Registry.getTargetFromEvent(a)},onNodeEnter:function(d,a,c,b){},onNodeOver:function(d,a,c,b){return this.dropAllowed},onNodeOut:function(d,a,c,b){},onNodeDrop:function(d,a,c,b){return false},onContainerOver:function(a,c,b){return this.dropNotAllowed},onContainerDrop:function(a,c,b){return false},notifyEnter:function(a,c,b){return this.dropNotAllowed},notifyOver:function(a,c,b){var d=this.getTargetFromEvent(c);if(!d){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}return this.onContainerOver(a,c,b)}if(this.lastOverNode!=d){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b)}this.onNodeEnter(d,a,c,b);this.lastOverNode=d}return this.onNodeOver(d,a,c,b)},notifyOut:function(a,c,b){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}},notifyDrop:function(a,c,b){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}var d=this.getTargetFromEvent(c);return d?this.onNodeDrop(d,a,c,b):this.onContainerDrop(a,c,b)},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)}});Ext.Element.addMethods({initDD:function(c,b,d){var a=new Ext.dd.DD(Ext.id(this.dom),c,b);return Ext.apply(a,d)},initDDProxy:function(c,b,d){var a=new Ext.dd.DDProxy(Ext.id(this.dom),c,b);return Ext.apply(a,d)},initDDTarget:function(c,b,d){var a=new Ext.dd.DDTarget(Ext.id(this.dom),c,b);return Ext.apply(a,d)}});Ext.data.Api=(function(){var a={};return{actions:{create:"create",read:"read",update:"update",destroy:"destroy"},restActions:{create:"POST",read:"GET",update:"PUT",destroy:"DELETE"},isAction:function(b){return(Ext.data.Api.actions[b])?true:false},getVerb:function(b){if(a[b]){return a[b]}for(var c in this.actions){if(this.actions[c]===b){a[b]=c;break}}return(a[b]!==undefined)?a[b]:null},isValid:function(b){var e=[];var d=this.actions;for(var c in b){if(!(c in d)){e.push(c)}}return(!e.length)?true:e},hasUniqueUrl:function(c,g){var b=(c.api[g])?c.api[g].url:null;var e=true;for(var d in c.api){if((e=(d===g)?true:(c.api[d].url!=b)?true:false)===false){break}}return e},prepare:function(b){if(!b.api){b.api={}}for(var d in this.actions){var c=this.actions[d];b.api[c]=b.api[c]||b.url||b.directFn;if(typeof(b.api[c])=="string"){b.api[c]={url:b.api[c],method:(b.restful===true)?Ext.data.Api.restActions[c]:undefined}}}},restify:function(b){b.restful=true;for(var c in this.restActions){b.api[this.actions[c]].method||(b.api[this.actions[c]].method=this.restActions[c])}b.onWrite=b.onWrite.createInterceptor(function(i,j,g,e){var d=j.reader;var h=new Ext.data.Response({action:i,raw:g});switch(g.status){case 200:return true;break;case 201:if(Ext.isEmpty(h.raw.responseText)){h.success=true}else{return true}break;case 204:h.success=true;h.data=null;break;default:return true;break}if(h.success===true){this.fireEvent("write",this,i,h.data,h,e,j.request.arg)}else{this.fireEvent("exception",this,"remote",i,j,h,e)}j.request.callback.call(j.request.scope,h.data,h,h.success);return false},b)}}})();Ext.data.Response=function(b,a){Ext.apply(this,b,{raw:a})};Ext.data.Response.prototype={message:null,success:false,status:null,root:null,raw:null,getMessage:function(){return this.message},getSuccess:function(){return this.success},getStatus:function(){return this.status},getRoot:function(){return this.root},getRawResponse:function(){return this.raw}};Ext.data.Api.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.Api"});Ext.apply(Ext.data.Api.Error.prototype,{lang:{"action-url-undefined":"No fallback url defined for this action.  When defining a DataProxy api, please be sure to define an url for each CRUD action in Ext.data.Api.actions or define a default url in addition to your api-configuration.",invalid:"received an invalid API-configuration.  Please ensure your proxy API-configuration contains only the actions defined in Ext.data.Api.actions","invalid-url":"Invalid url.  Please review your proxy configuration.",execute:'Attempted to execute an unknown action.  Valid API actions are defined in Ext.data.Api.actions"'}});Ext.data.SortTypes={none:function(a){return a},stripTagsRE:/<\/?[^>]+>/gi,asText:function(a){return String(a).replace(this.stripTagsRE,"")},asUCText:function(a){return String(a).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(a){return String(a).toUpperCase()},asDate:function(a){if(!a){return 0}if(Ext.isDate(a)){return a.getTime()}return Date.parse(String(a))},asFloat:function(a){var b=parseFloat(String(a).replace(/,/g,""));return isNaN(b)?0:b},asInt:function(a){var b=parseInt(String(a).replace(/,/g,""),10);return isNaN(b)?0:b}};Ext.data.Record=function(a,b){this.id=(b||b===0)?b:Ext.data.Record.id(this);this.data=a||{}};Ext.data.Record.create=function(e){var c=Ext.extend(Ext.data.Record,{});var d=c.prototype;d.fields=new Ext.util.MixedCollection(false,function(g){return g.name});for(var b=0,a=e.length;b<a;b++){d.fields.add(new Ext.data.Field(e[b]))}c.getField=function(g){return d.fields.get(g)};return c};Ext.data.Record.PREFIX="ext-record";Ext.data.Record.AUTO_ID=1;Ext.data.Record.EDIT="edit";Ext.data.Record.REJECT="reject";Ext.data.Record.COMMIT="commit";Ext.data.Record.id=function(a){a.phantom=true;return[Ext.data.Record.PREFIX,"-",Ext.data.Record.AUTO_ID++].join("")};Ext.data.Record.prototype={dirty:false,editing:false,error:null,modified:null,phantom:false,join:function(a){this.store=a},set:function(a,c){var b=Ext.isPrimitive(c)?String:Ext.encode;if(b(this.data[a])==b(c)){return}this.dirty=true;if(!this.modified){this.modified={}}if(this.modified[a]===undefined){this.modified[a]=this.data[a]}this.data[a]=c;if(!this.editing){this.afterEdit()}},afterEdit:function(){if(this.store!=undefined&&typeof this.store.afterEdit=="function"){this.store.afterEdit(this)}},afterReject:function(){if(this.store){this.store.afterReject(this)}},afterCommit:function(){if(this.store){this.store.afterCommit(this)}},get:function(a){return this.data[a]},beginEdit:function(){this.editing=true;this.modified=this.modified||{}},cancelEdit:function(){this.editing=false;delete this.modified},endEdit:function(){this.editing=false;if(this.dirty){this.afterEdit()}},reject:function(b){var a=this.modified;for(var c in a){if(typeof a[c]!="function"){this.data[c]=a[c]}}this.dirty=false;delete this.modified;this.editing=false;if(b!==true){this.afterReject()}},commit:function(a){this.dirty=false;delete this.modified;this.editing=false;if(a!==true){this.afterCommit()}},getChanges:function(){var a=this.modified,b={};for(var c in a){if(a.hasOwnProperty(c)){b[c]=this.data[c]}}return b},hasError:function(){return this.error!==null},clearError:function(){this.error=null},copy:function(a){return new this.constructor(Ext.apply({},this.data),a||this.id)},isModified:function(a){return!!(this.modified&&this.modified.hasOwnProperty(a))},isValid:function(){return this.fields.find(function(a){return(a.allowBlank===false&&Ext.isEmpty(this.data[a.name]))?true:false},this)?false:true},markDirty:function(){this.dirty=true;if(!this.modified){this.modified={}}this.fields.each(function(a){this.modified[a.name]=this.data[a.name]},this)}};Ext.StoreMgr=Ext.apply(new Ext.util.MixedCollection(),{register:function(){for(var a=0,b;(b=arguments[a]);a++){this.add(b)}},unregister:function(){for(var a=0,b;(b=arguments[a]);a++){this.remove(this.lookup(b))}},lookup:function(e){if(Ext.isArray(e)){var b=["field1"],d=!Ext.isArray(e[0]);if(!d){for(var c=2,a=e[0].length;c<=a;++c){b.push("field"+c)}}return new Ext.data.ArrayStore({fields:b,data:e,expandData:d,autoDestroy:true,autoCreated:true})}return Ext.isObject(e)?(e.events?e:Ext.create(e,"store")):this.get(e)},getKey:function(a){return a.storeId}});Ext.data.Store=Ext.extend(Ext.util.Observable,{writer:undefined,remoteSort:false,autoDestroy:false,pruneModifiedRecords:false,lastOptions:null,autoSave:true,batch:true,restful:false,paramNames:undefined,defaultParamNames:{start:"start",limit:"limit",sort:"sort",dir:"dir"},isDestroyed:false,hasMultiSort:false,batchKey:"_ext_batch_",constructor:function(a){this.data=new Ext.util.MixedCollection(false);this.data.getKey=function(b){return b.id};this.removed=[];if(a&&a.data){this.inlineData=a.data;delete a.data}Ext.apply(this,a);this.baseParams=Ext.isObject(this.baseParams)?this.baseParams:{};this.paramNames=Ext.applyIf(this.paramNames||{},this.defaultParamNames);if((this.url||this.api)&&!this.proxy){this.proxy=new Ext.data.HttpProxy({url:this.url,api:this.api})}if(this.restful===true&&this.proxy){this.batch=false;Ext.data.Api.restify(this.proxy)}if(this.reader){if(!this.recordType){this.recordType=this.reader.recordType}if(this.reader.onMetaChange){this.reader.onMetaChange=this.reader.onMetaChange.createSequence(this.onMetaChange,this)}if(this.writer){if(this.writer instanceof(Ext.data.DataWriter)===false){this.writer=this.buildWriter(this.writer)}this.writer.meta=this.reader.meta;this.pruneModifiedRecords=true}}if(this.recordType){this.fields=this.recordType.prototype.fields}this.modified=[];this.addEvents("datachanged","metachange","add","remove","update","clear","exception","beforeload","load","loadexception","beforewrite","write","beforesave","save");if(this.proxy){this.relayEvents(this.proxy,["loadexception","exception"])}if(this.writer){this.on({scope:this,add:this.createRecords,remove:this.destroyRecord,update:this.updateRecord,clear:this.onClear})}this.sortToggle={};if(this.sortField){this.setDefaultSort(this.sortField,this.sortDir)}else{if(this.sortInfo){this.setDefaultSort(this.sortInfo.field,this.sortInfo.direction)}}Ext.data.Store.superclass.constructor.call(this);if(this.id){this.storeId=this.id;delete this.id}if(this.storeId){Ext.StoreMgr.register(this)}if(this.inlineData){this.loadData(this.inlineData);delete this.inlineData}else{if(this.autoLoad){this.load.defer(10,this,[typeof this.autoLoad=="object"?this.autoLoad:undefined])}}this.batchCounter=0;this.batches={}},buildWriter:function(b){var a=undefined,c=(b.format||"json").toLowerCase();switch(c){case"json":a=Ext.data.JsonWriter;break;case"xml":a=Ext.data.XmlWriter;break;default:a=Ext.data.JsonWriter}return new a(b)},destroy:function(){if(!this.isDestroyed){if(this.storeId){Ext.StoreMgr.unregister(this)}this.clearData();this.data=null;Ext.destroy(this.proxy);this.reader=this.writer=null;this.purgeListeners();this.isDestroyed=true}},add:function(b){b=[].concat(b);if(b.length<1){return}for(var d=0,a=b.length;d<a;d++){b[d].join(this)}var c=this.data.length;this.data.addAll(b);if(this.snapshot){this.snapshot.addAll(b)}this.fireEvent("add",this,b,c)},addSorted:function(a){var b=this.findInsertIndex(a);this.insert(b,a)},remove:function(a){if(Ext.isArray(a)){Ext.each(a,function(c){this.remove(c)},this);return}var b=this.data.indexOf(a);if(b>-1){a.join(null);this.data.removeAt(b)}if(this.pruneModifiedRecords){this.modified.remove(a)}if(this.snapshot){this.snapshot.remove(a)}if(b>-1){this.fireEvent("remove",this,a,b)}},removeAt:function(a){this.remove(this.getAt(a))},removeAll:function(b){var a=[];this.each(function(c){a.push(c)});this.clearData();if(this.snapshot){this.snapshot.clear()}if(this.pruneModifiedRecords){this.modified=[]}if(b!==true){this.fireEvent("clear",this,a)}},onClear:function(b,a){Ext.each(a,function(d,c){this.destroyRecord(this,d,c)},this)},insert:function(c,b){b=[].concat(b);for(var d=0,a=b.length;d<a;d++){this.data.insert(c,b[d]);b[d].join(this)}if(this.snapshot){this.snapshot.addAll(b)}this.fireEvent("add",this,b,c)},indexOf:function(a){return this.data.indexOf(a)},indexOfId:function(a){return this.data.indexOfKey(a)},getById:function(a){return(this.snapshot||this.data).key(a)},getAt:function(a){return this.data.itemAt(a)},getRange:function(b,a){return this.data.getRange(b,a)},storeOptions:function(a){a=Ext.apply({},a);delete a.callback;delete a.scope;this.lastOptions=a},clearData:function(){this.data.each(function(a){a.join(null)});this.data.clear()},load:function(b){b=Ext.apply({},b);this.storeOptions(b);if(this.sortInfo&&this.remoteSort){var a=this.paramNames;b.params=Ext.apply({},b.params);b.params[a.sort]=this.sortInfo.field;b.params[a.dir]=this.sortInfo.direction}try{return this.execute("read",null,b)}catch(c){this.handleException(c);return false}},updateRecord:function(b,a,c){if(c==Ext.data.Record.EDIT&&this.autoSave===true&&(!a.phantom||(a.phantom&&a.isValid()))){this.save()}},createRecords:function(c,b,d){for(var e=0,a=b.length;e<a;e++){if(b[e].phantom&&b[e].isValid()){b[e].markDirty();this.modified.push(b[e])}}if(this.autoSave===true){this.save()}},destroyRecord:function(b,a,c){if(this.modified.indexOf(a)!=-1){this.modified.remove(a)}if(!a.phantom){this.removed.push(a);a.lastIndex=c;if(this.autoSave===true){this.save()}}},execute:function(e,a,c,b){if(!Ext.data.Api.isAction(e)){throw new Ext.data.Api.Error("execute",e)}c=Ext.applyIf(c||{},{params:{}});if(b!==undefined){this.addToBatch(b)}var d=true;if(e==="read"){d=this.fireEvent("beforeload",this,c);Ext.applyIf(c.params,this.baseParams)}else{if(this.writer.listful===true&&this.restful!==true){a=(Ext.isArray(a))?a:[a]}else{if(Ext.isArray(a)&&a.length==1){a=a.shift()}}if((d=this.fireEvent("beforewrite",this,e,a,c))!==false){this.writer.apply(c.params,this.baseParams,e,a)}}if(d!==false){if(this.writer&&this.proxy.url&&!this.proxy.restful&&!Ext.data.Api.hasUniqueUrl(this.proxy,e)){c.params.xaction=e}this.proxy.request(Ext.data.Api.actions[e],a,c.params,this.reader,this.createCallback(e,a,b),this,c)}return d},save:function(){if(!this.writer){throw new Ext.data.Store.Error("writer-undefined")}var h=[],j,k,e,c={};if(this.removed.length){h.push(["destroy",this.removed])}var b=[].concat(this.getModifiedRecords());if(b.length){var g=[];for(var d=b.length-1;d>=0;d--){if(b[d].phantom===true){var a=b.splice(d,1).shift();if(a.isValid()){g.push(a)}}else{if(!b[d].isValid()){b.splice(d,1)}}}if(g.length){h.push(["create",g])}if(b.length){h.push(["update",b])}}j=h.length;if(j){e=++this.batchCounter;for(var d=0;d<j;++d){k=h[d];c[k[0]]=k[1]}if(this.fireEvent("beforesave",this,c)!==false){for(var d=0;d<j;++d){k=h[d];this.doTransaction(k[0],k[1],e)}return e}}return-1},doTransaction:function(e,b,c){function g(h){try{this.execute(e,h,undefined,c)}catch(i){this.handleException(i)}}if(this.batch===false){for(var d=0,a=b.length;d<a;d++){g.call(this,b[d])}}else{g.call(this,b)}},addToBatch:function(c){var a=this.batches,d=this.batchKey+c,e=a[d];if(!e){a[d]=e={id:c,count:0,data:{}}}++e.count},removeFromBatch:function(d,h,g){var c=this.batches,e=this.batchKey+d,i=c[e],g,a;if(i){a=i.data[h]||[];i.data[h]=a.concat(g);if(i.count===1){g=i.data;delete c[e];this.fireEvent("save",this,d,g)}else{--i.count}}},createCallback:function(c,a,b){var d=Ext.data.Api.actions;return(c=="read")?this.loadRecords:function(g,e,h){this["on"+Ext.util.Format.capitalize(c)+"Records"](h,a,[].concat(g));if(h===true){this.fireEvent("write",this,c,g,e,a)}this.removeFromBatch(b,c,g)}},clearModified:function(a){if(Ext.isArray(a)){for(var b=a.length-1;b>=0;b--){this.modified.splice(this.modified.indexOf(a[b]),1)}}else{this.modified.splice(this.modified.indexOf(a),1)}},reMap:function(b){if(Ext.isArray(b)){for(var d=0,a=b.length;d<a;d++){this.reMap(b[d])}}else{delete this.data.map[b._phid];this.data.map[b.id]=b;var c=this.data.keys.indexOf(b._phid);this.data.keys.splice(c,1,b.id);delete b._phid}},onCreateRecords:function(d,a,b){if(d===true){try{this.reader.realize(a,b);this.reMap(a)}catch(c){this.handleException(c);if(Ext.isArray(a)){this.onCreateRecords(d,a,b)}}}},onUpdateRecords:function(d,a,b){if(d===true){try{this.reader.update(a,b)}catch(c){this.handleException(c);if(Ext.isArray(a)){this.onUpdateRecords(d,a,b)}}}},onDestroyRecords:function(e,b,d){b=(b instanceof Ext.data.Record)?[b]:[].concat(b);for(var c=0,a=b.length;c<a;c++){this.removed.splice(this.removed.indexOf(b[c]),1)}if(e===false){for(c=b.length-1;c>=0;c--){this.insert(b[c].lastIndex,b[c])}}},handleException:function(a){Ext.handleError(a)},reload:function(a){this.load(Ext.applyIf(a||{},this.lastOptions))},loadRecords:function(h,b,g){if(this.isDestroyed===true){return}if(!h||g===false){if(g!==false){this.fireEvent("load",this,[],b)}if(b.callback){b.callback.call(b.scope||this,[],b,false,h)}return}var e=h.records,d=h.totalRecords||e.length;if(!b||b.add!==true){if(this.pruneModifiedRecords){this.modified=[]}for(var c=0,a=e.length;c<a;c++){e[c].join(this)}if(this.snapshot){this.data=this.snapshot;delete this.snapshot}this.clearData();this.data.addAll(e);this.totalLength=d;this.applySort();this.fireEvent("datachanged",this)}else{this.totalLength=Math.max(d,this.data.length+e.length);this.add(e)}this.fireEvent("load",this,e,b);if(b.callback){b.callback.call(b.scope||this,e,b,true)}},loadData:function(c,a){var b=this.reader.readRecords(c);this.loadRecords(b,{add:a},true)},getCount:function(){return this.data.length||0},getTotalCount:function(){return this.totalLength||0},getSortState:function(){return this.sortInfo},applySort:function(){if((this.sortInfo||this.multiSortInfo)&&!this.remoteSort){this.sortData()}},sortData:function(){var a=this.hasMultiSort?this.multiSortInfo:this.sortInfo,k=a.direction||"ASC",h=a.sorters,c=[];if(!this.hasMultiSort){h=[{direction:k,field:a.field}]}for(var d=0,b=h.length;d<b;d++){c.push(this.createSortFunction(h[d].field,h[d].direction))}if(c.length==0){return}var g=k.toUpperCase()=="DESC"?-1:1;var e=function(n,m){var l=c[0].call(this,n,m);if(c.length>1){for(var p=1,o=c.length;p<o;p++){l=l||c[p].call(this,n,m)}}return g*l};this.data.sort(k,e);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(k,e)}},createSortFunction:function(c,b){b=b||"ASC";var a=b.toUpperCase()=="DESC"?-1:1;var d=this.fields.get(c).sortType;return function(g,e){var i=d(g.data[c]),h=d(e.data[c]);return a*(i>h?1:(i<h?-1:0))}},setDefaultSort:function(b,a){a=a?a.toUpperCase():"ASC";this.sortInfo={field:b,direction:a};this.sortToggle[b]=a},sort:function(b,a){if(Ext.isArray(arguments[0])){return this.multiSort.call(this,b,a)}else{return this.singleSort(b,a)}},singleSort:function(g,c){var e=this.fields.get(g);if(!e){return false}var b=e.name,a=this.sortInfo||null,d=this.sortToggle?this.sortToggle[b]:null;if(!c){if(a&&a.field==b){c=(this.sortToggle[b]||"ASC").toggle("ASC","DESC")}else{c=e.sortDir}}this.sortToggle[b]=c;this.sortInfo={field:b,direction:c};this.hasMultiSort=false;if(this.remoteSort){if(!this.load(this.lastOptions)){if(d){this.sortToggle[b]=d}if(a){this.sortInfo=a}}}else{this.applySort();this.fireEvent("datachanged",this)}},multiSort:function(b,a){this.hasMultiSort=true;a=a||"ASC";if(this.multiSortInfo&&a==this.multiSortInfo.direction){a=a.toggle("ASC","DESC")}this.multiSortInfo={sorters:b,direction:a};if(this.remoteSort){this.singleSort(b[0].field,b[0].direction)}else{this.applySort();this.fireEvent("datachanged",this)}},each:function(b,a){this.data.each(b,a)},getModifiedRecords:function(){return this.modified},sum:function(e,g,a){var c=this.data.items,b=0;g=g||0;a=(a||a===0)?a:c.length-1;for(var d=g;d<=a;d++){b+=(c[d].data[e]||0)}return b},createFilterFn:function(d,c,e,a,b){if(Ext.isEmpty(c,false)){return false}c=this.data.createValueMatcher(c,e,a,b);return function(g){return c.test(g.data[d])}},createMultipleFilterFn:function(a){return function(b){var k=true;for(var d=0,c=a.length;d<c;d++){var h=a[d],g=h.fn,e=h.scope;k=k&&g.call(e,b)}return k}},filter:function(n,m,h,k,e){if(Ext.isObject(n)){n=[n]}if(Ext.isArray(n)){var b=[];for(var g=0,d=n.length;g<d;g++){var a=n[g],c=a.fn,o=a.scope||this;if(!Ext.isFunction(c)){c=this.createFilterFn(a.property,a.value,a.anyMatch,a.caseSensitive,a.exactMatch)}b.push({fn:c,scope:o})}var l=this.createMultipleFilterFn(b)}else{var l=this.createFilterFn(n,m,h,k,e)}return l?this.filterBy(l):this.clearFilter()},filterBy:function(b,a){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(b,a||this);this.fireEvent("datachanged",this)},clearFilter:function(a){if(this.isFiltered()){this.data=this.snapshot;delete this.snapshot;if(a!==true){this.fireEvent("datachanged",this)}}},isFiltered:function(){return!!this.snapshot&&this.snapshot!=this.data},query:function(d,c,e,a){var b=this.createFilterFn(d,c,e,a);return b?this.queryBy(b):this.data.clone()},queryBy:function(b,a){var c=this.snapshot||this.data;return c.filterBy(b,a||this)},find:function(d,c,g,e,a){var b=this.createFilterFn(d,c,e,a);return b?this.data.findIndexBy(b,null,g):-1},findExact:function(b,a,c){return this.data.findIndexBy(function(d){return d.get(b)===a},this,c)},findBy:function(b,a,c){return this.data.findIndexBy(b,a,c)},collect:function(j,k,b){var h=(b===true&&this.snapshot)?this.snapshot.items:this.data.items;var m,n,a=[],c={};for(var e=0,g=h.length;e<g;e++){m=h[e].data[j];n=String(m);if((k||!Ext.isEmpty(m))&&!c[n]){c[n]=true;a[a.length]=m}}return a},afterEdit:function(a){if(this.modified.indexOf(a)==-1){this.modified.push(a)}this.fireEvent("update",this,a,Ext.data.Record.EDIT)},afterReject:function(a){this.modified.remove(a);this.fireEvent("update",this,a,Ext.data.Record.REJECT)},afterCommit:function(a){this.modified.remove(a);this.fireEvent("update",this,a,Ext.data.Record.COMMIT)},commitChanges:function(){var b=this.modified.slice(0);this.modified=[];for(var c=0,a=b.length;c<a;c++){b[c].commit()}},rejectChanges:function(){var b=this.modified.slice(0);this.modified=[];for(var c=0,a=b.length;c<a;c++){b[c].reject()}var b=this.removed.slice(0).reverse();this.removed=[];for(var c=0,a=b.length;c<a;c++){this.insert(b[c].lastIndex||0,b[c]);b[c].reject()}},onMetaChange:function(a){this.recordType=this.reader.recordType;this.fields=this.recordType.prototype.fields;delete this.snapshot;if(this.reader.meta.sortInfo){this.sortInfo=this.reader.meta.sortInfo}else{if(this.sortInfo&&!this.fields.get(this.sortInfo.field)){delete this.sortInfo}}if(this.writer){this.writer.meta=this.reader.meta}this.modified=[];this.fireEvent("metachange",this,this.reader.meta)},findInsertIndex:function(a){this.suspendEvents();var c=this.data.clone();this.data.add(a);this.applySort();var b=this.data.indexOf(a);this.data=c;this.resumeEvents();return b},setBaseParam:function(a,b){this.baseParams=this.baseParams||{};this.baseParams[a]=b}});Ext.reg("store",Ext.data.Store);Ext.data.Store.Error=Ext.extend(Ext.Error,{name:"Ext.data.Store"});Ext.apply(Ext.data.Store.Error.prototype,{lang:{"writer-undefined":"Attempted to execute a write-action without a DataWriter installed."}});Ext.data.Field=Ext.extend(Object,{constructor:function(b){if(Ext.isString(b)){b={name:b}}Ext.apply(this,b);var d=Ext.data.Types,a=this.sortType,c;if(this.type){if(Ext.isString(this.type)){this.type=Ext.data.Types[this.type.toUpperCase()]||d.AUTO}}else{this.type=d.AUTO}if(Ext.isString(a)){this.sortType=Ext.data.SortTypes[a]}else{if(Ext.isEmpty(a)){this.sortType=this.type.sortType}}if(!this.convert){this.convert=this.type.convert}},dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC",allowBlank:true});Ext.data.DataReader=function(a,b){this.meta=a;this.recordType=Ext.isArray(b)?Ext.data.Record.create(b):b;if(this.recordType){this.buildExtractors()}};Ext.data.DataReader.prototype={getTotal:Ext.emptyFn,getRoot:Ext.emptyFn,getMessage:Ext.emptyFn,getSuccess:Ext.emptyFn,getId:Ext.emptyFn,buildExtractors:Ext.emptyFn,extractValues:Ext.emptyFn,realize:function(a,c){if(Ext.isArray(a)){for(var b=a.length-1;b>=0;b--){if(Ext.isArray(c)){this.realize(a.splice(b,1).shift(),c.splice(b,1).shift())}else{this.realize(a.splice(b,1).shift(),c)}}}else{if(Ext.isArray(c)&&c.length==1){c=c.shift()}if(!this.isData(c)){throw new Ext.data.DataReader.Error("realize",a)}a.phantom=false;a._phid=a.id;a.id=this.getId(c);a.data=c;a.commit()}},update:function(a,c){if(Ext.isArray(a)){for(var b=a.length-1;b>=0;b--){if(Ext.isArray(c)){this.update(a.splice(b,1).shift(),c.splice(b,1).shift())}else{this.update(a.splice(b,1).shift(),c)}}}else{if(Ext.isArray(c)&&c.length==1){c=c.shift()}if(this.isData(c)){a.data=Ext.apply(a.data,c)}a.commit()}},extractData:function(k,a){var j=(this instanceof Ext.data.JsonReader)?"json":"node";var c=[];if(this.isData(k)&&!(this instanceof Ext.data.XmlReader)){k=[k]}var h=this.recordType.prototype.fields,o=h.items,m=h.length,c=[];if(a===true){var l=this.recordType;for(var e=0;e<k.length;e++){var b=k[e];var g=new l(this.extractValues(b,o,m),this.getId(b));g[j]=b;c.push(g)}}else{for(var e=0;e<k.length;e++){var d=this.extractValues(k[e],o,m);d[this.meta.idProperty]=this.getId(k[e]);c.push(d)}}return c},isData:function(a){return(a&&Ext.isObject(a)&&!Ext.isEmpty(this.getId(a)))?true:false},onMetaChange:function(a){delete this.ef;this.meta=a;this.recordType=Ext.data.Record.create(a.fields);this.buildExtractors()}};Ext.data.DataReader.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.DataReader"});Ext.apply(Ext.data.DataReader.Error.prototype,{lang:{update:"#update received invalid data from server.  Please see docs for DataReader#update and review your DataReader configuration.",realize:"#realize was called with invalid remote-data.  Please see the docs for DataReader#realize and review your DataReader configuration.","invalid-response":"#readResponse received an invalid response from the server."}});Ext.data.DataWriter=function(a){Ext.apply(this,a)};Ext.data.DataWriter.prototype={writeAllFields:false,listful:false,apply:function(e,g,d,a){var c=[],b=d+"Record";if(Ext.isArray(a)){Ext.each(a,function(h){c.push(this[b](h))},this)}else{if(a instanceof Ext.data.Record){c=this[b](a)}}this.render(e,g,c)},render:Ext.emptyFn,updateRecord:Ext.emptyFn,createRecord:Ext.emptyFn,destroyRecord:Ext.emptyFn,toHash:function(g,c){var e=g.fields.map,d={},b=(this.writeAllFields===false&&g.phantom===false)?g.getChanges():g.data,a;Ext.iterate(b,function(i,h){if((a=e[i])){d[a.mapping?a.mapping:a.name]=h}});if(g.phantom){if(g.fields.containsKey(this.meta.idProperty)&&Ext.isEmpty(g.data[this.meta.idProperty])){delete d[this.meta.idProperty]}}else{d[this.meta.idProperty]=g.id}return d},toArray:function(b){var a=[];Ext.iterate(b,function(d,c){a.push({name:d,value:c})},this);return a}};Ext.data.DataProxy=function(a){a=a||{};this.api=a.api;this.url=a.url;this.restful=a.restful;this.listeners=a.listeners;this.prettyUrls=a.prettyUrls;this.addEvents("exception","beforeload","load","loadexception","beforewrite","write");Ext.data.DataProxy.superclass.constructor.call(this);try{Ext.data.Api.prepare(this)}catch(b){if(b instanceof Ext.data.Api.Error){b.toConsole()}}Ext.data.DataProxy.relayEvents(this,["beforewrite","write","exception"])};Ext.extend(Ext.data.DataProxy,Ext.util.Observable,{restful:false,setApi:function(){if(arguments.length==1){var a=Ext.data.Api.isValid(arguments[0]);if(a===true){this.api=arguments[0]}else{throw new Ext.data.Api.Error("invalid",a)}}else{if(arguments.length==2){if(!Ext.data.Api.isAction(arguments[0])){throw new Ext.data.Api.Error("invalid",arguments[0])}this.api[arguments[0]]=arguments[1]}}Ext.data.Api.prepare(this)},isApiAction:function(a){return(this.api[a])?true:false},request:function(e,b,g,a,h,d,c){if(!this.api[e]&&!this.load){throw new Ext.data.DataProxy.Error("action-undefined",e)}g=g||{};if((e===Ext.data.Api.actions.read)?this.fireEvent("beforeload",this,g):this.fireEvent("beforewrite",this,e,b,g)!==false){this.doRequest.apply(this,arguments)}else{h.call(d||this,null,c,false)}},load:null,doRequest:function(e,b,g,a,h,d,c){this.load(g,a,h,d,c)},onRead:Ext.emptyFn,onWrite:Ext.emptyFn,buildUrl:function(d,b){b=b||null;var c=(this.conn&&this.conn.url)?this.conn.url:(this.api[d])?this.api[d].url:this.url;if(!c){throw new Ext.data.Api.Error("invalid-url",d)}var e=null;var a=c.match(/(.*)(\.json|\.xml|\.html)$/);if(a){e=a[2];c=a[1]}if((this.restful===true||this.prettyUrls===true)&&b instanceof Ext.data.Record&&!b.phantom){c+="/"+b.id}return(e===null)?c:c+e},destroy:function(){this.purgeListeners()}});Ext.apply(Ext.data.DataProxy,Ext.util.Observable.prototype);Ext.util.Observable.call(Ext.data.DataProxy);Ext.data.DataProxy.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.DataProxy"});Ext.apply(Ext.data.DataProxy.Error.prototype,{lang:{"action-undefined":"DataProxy attempted to execute an API-action but found an undefined url / function.  Please review your Proxy url/api-configuration.","api-invalid":"Recieved an invalid API-configuration.  Please ensure your proxy API-configuration contains only the actions from Ext.data.Api.actions."}});Ext.data.Request=function(a){Ext.apply(this,a)};Ext.data.Request.prototype={action:undefined,rs:undefined,params:undefined,callback:Ext.emptyFn,scope:undefined,reader:undefined};Ext.data.Response=function(a){Ext.apply(this,a)};Ext.data.Response.prototype={action:undefined,success:undefined,message:undefined,data:undefined,raw:undefined,records:undefined};Ext.data.ScriptTagProxy=function(a){Ext.apply(this,a);Ext.data.ScriptTagProxy.superclass.constructor.call(this,a);this.head=document.getElementsByTagName("head")[0]};Ext.data.ScriptTagProxy.TRANS_ID=1000;Ext.extend(Ext.data.ScriptTagProxy,Ext.data.DataProxy,{timeout:30000,callbackParam:"callback",nocache:true,doRequest:function(e,g,d,h,j,k,l){var c=Ext.urlEncode(Ext.apply(d,this.extraParams));var b=this.buildUrl(e,g);if(!b){throw new Ext.data.Api.Error("invalid-url",b)}b=Ext.urlAppend(b,c);if(this.nocache){b=Ext.urlAppend(b,"_dc="+(new Date().getTime()))}var a=++Ext.data.ScriptTagProxy.TRANS_ID;var m={id:a,action:e,cb:"stcCallback"+a,scriptId:"stcScript"+a,params:d,arg:l,url:b,callback:j,scope:k,reader:h};window[m.cb]=this.createCallback(e,g,m);b+=String.format("&{0}={1}",this.callbackParam,m.cb);if(this.autoAbort!==false){this.abort()}m.timeoutId=this.handleFailure.defer(this.timeout,this,[m]);var i=document.createElement("script");i.setAttribute("src",b);i.setAttribute("type","text/javascript");i.setAttribute("id",m.scriptId);this.head.appendChild(i);this.trans=m},createCallback:function(d,b,c){var a=this;return function(e){a.trans=false;a.destroyTrans(c,true);if(d===Ext.data.Api.actions.read){a.onRead.call(a,d,c,e)}else{a.onWrite.call(a,d,c,e,b)}}},onRead:function(d,c,b){var a;try{a=c.reader.readRecords(b)}catch(g){this.fireEvent("loadexception",this,c,b,g);this.fireEvent("exception",this,"response",d,c,b,g);c.callback.call(c.scope||window,null,c.arg,false);return}if(a.success===false){this.fireEvent("loadexception",this,c,b);this.fireEvent("exception",this,"remote",d,c,b,null)}else{this.fireEvent("load",this,b,c.arg)}c.callback.call(c.scope||window,a,c.arg,a.success)},onWrite:function(h,g,c,b){var a=g.reader;try{var d=a.readResponse(h,c)}catch(i){this.fireEvent("exception",this,"response",h,g,d,i);g.callback.call(g.scope||window,null,d,false);return}if(!d.success===true){this.fireEvent("exception",this,"remote",h,g,d,b);g.callback.call(g.scope||window,null,d,false);return}this.fireEvent("write",this,h,d.data,d,b,g.arg);g.callback.call(g.scope||window,d.data,d,true)},isLoading:function(){return this.trans?true:false},abort:function(){if(this.isLoading()){this.destroyTrans(this.trans)}},destroyTrans:function(b,a){this.head.removeChild(document.getElementById(b.scriptId));clearTimeout(b.timeoutId);if(a){window[b.cb]=undefined;try{delete window[b.cb]}catch(c){}}else{window[b.cb]=function(){window[b.cb]=undefined;try{delete window[b.cb]}catch(d){}}}},handleFailure:function(a){this.trans=false;this.destroyTrans(a,false);if(a.action===Ext.data.Api.actions.read){this.fireEvent("loadexception",this,null,a.arg)}this.fireEvent("exception",this,"response",a.action,{response:null,options:a.arg});a.callback.call(a.scope||window,null,a.arg,false)},destroy:function(){this.abort();Ext.data.ScriptTagProxy.superclass.destroy.call(this)}});Ext.data.HttpProxy=function(a){Ext.data.HttpProxy.superclass.constructor.call(this,a);this.conn=a;this.conn.url=null;this.useAjax=!a||!a.events;var c=Ext.data.Api.actions;this.activeRequest={};for(var b in c){this.activeRequest[c[b]]=undefined}};Ext.extend(Ext.data.HttpProxy,Ext.data.DataProxy,{getConnection:function(){return this.useAjax?Ext.Ajax:this.conn},setUrl:function(a,b){this.conn.url=a;if(b===true){this.url=a;this.api=null;Ext.data.Api.prepare(this)}},doRequest:function(g,d,i,c,b,e,a){var h={method:(this.api[g])?this.api[g]["method"]:undefined,request:{callback:b,scope:e,arg:a},reader:c,callback:this.createCallback(g,d),scope:this};if(i.jsonData){h.jsonData=i.jsonData}else{if(i.xmlData){h.xmlData=i.xmlData}else{h.params=i||{}}}this.conn.url=this.buildUrl(g,d);if(this.useAjax){Ext.applyIf(h,this.conn);if(this.activeRequest[g]){}this.activeRequest[g]=Ext.Ajax.request(h)}else{this.conn.request(h)}this.conn.url=null},createCallback:function(b,a){return function(e,d,c){this.activeRequest[b]=undefined;if(!d){if(b===Ext.data.Api.actions.read){this.fireEvent("loadexception",this,e,c)}this.fireEvent("exception",this,"response",b,e,c);e.request.callback.call(e.request.scope,null,e.request.arg,false);return}if(b===Ext.data.Api.actions.read){this.onRead(b,e,c)}else{this.onWrite(b,e,c,a)}}},onRead:function(d,h,b){var a;try{a=h.reader.read(b)}catch(g){this.fireEvent("loadexception",this,h,b,g);this.fireEvent("exception",this,"response",d,h,b,g);h.request.callback.call(h.request.scope,null,h.request.arg,false);return}if(a.success===false){this.fireEvent("loadexception",this,h,b);var c=h.reader.readResponse(d,b);this.fireEvent("exception",this,"remote",d,h,c,null)}else{this.fireEvent("load",this,h,h.request.arg)}h.request.callback.call(h.request.scope,a,h.request.arg,a.success)},onWrite:function(g,i,c,b){var a=i.reader;var d;try{d=a.readResponse(g,c)}catch(h){this.fireEvent("exception",this,"response",g,i,c,h);i.request.callback.call(i.request.scope,null,i.request.arg,false);return}if(d.success===true){this.fireEvent("write",this,g,d.data,d,b,i.request.arg)}else{this.fireEvent("exception",this,"remote",g,i,d,b)}i.request.callback.call(i.request.scope,d.data,d,d.success)},destroy:function(){if(!this.useAjax){this.conn.abort()}else{if(this.activeRequest){var b=Ext.data.Api.actions;for(var a in b){if(this.activeRequest[b[a]]){Ext.Ajax.abort(this.activeRequest[b[a]])}}}}Ext.data.HttpProxy.superclass.destroy.call(this)}});Ext.data.MemoryProxy=function(b){var a={};a[Ext.data.Api.actions.read]=true;Ext.data.MemoryProxy.superclass.constructor.call(this,{api:a});this.data=b};Ext.extend(Ext.data.MemoryProxy,Ext.data.DataProxy,{doRequest:function(b,c,a,d,h,i,j){a=a||{};var k;try{k=d.readRecords(this.data)}catch(g){this.fireEvent("loadexception",this,null,j,g);this.fireEvent("exception",this,"response",b,j,null,g);h.call(i,null,j,false);return}h.call(i,k,j,true)}});Ext.data.Types=new function(){var a=Ext.data.SortTypes;Ext.apply(this,{stripRe:/[\$,%]/g,AUTO:{convert:function(b){return b},sortType:a.none,type:"auto"},STRING:{convert:function(b){return(b===undefined||b===null)?"":String(b)},sortType:a.asUCString,type:"string"},INT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseInt(String(b).replace(Ext.data.Types.stripRe,""),10):0},sortType:a.none,type:"int"},FLOAT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseFloat(String(b).replace(Ext.data.Types.stripRe,""),10):0},sortType:a.none,type:"float"},BOOL:{convert:function(b){return b===true||b==="true"||b==1},sortType:a.none,type:"bool"},DATE:{convert:function(c){var d=this.dateFormat;if(!c){return null}if(Ext.isDate(c)){return c}if(d){if(d=="timestamp"){return new Date(c*1000)}if(d=="time"){return new Date(parseInt(c,10))}return Date.parseDate(c,d)}var b=Date.parse(c);return b?new Date(b):null},sortType:a.asDate,type:"date"}});Ext.apply(this,{BOOLEAN:this.BOOL,INTEGER:this.INT,NUMBER:this.FLOAT})};Ext.data.JsonWriter=Ext.extend(Ext.data.DataWriter,{encode:true,encodeDelete:false,constructor:function(a){Ext.data.JsonWriter.superclass.constructor.call(this,a)},render:function(c,d,b){if(this.encode===true){Ext.apply(c,d);c[this.meta.root]=Ext.encode(b)}else{var a=Ext.apply({},d);a[this.meta.root]=b;c.jsonData=a}},createRecord:function(a){return this.toHash(a)},updateRecord:function(a){return this.toHash(a)},destroyRecord:function(b){if(this.encodeDelete){var a={};a[this.meta.idProperty]=b.id;return a}else{return b.id}}});Ext.data.JsonReader=function(a,b){a=a||{};Ext.applyIf(a,{idProperty:"id",successProperty:"success",totalProperty:"total"});Ext.data.JsonReader.superclass.constructor.call(this,a,b||a.fields)};Ext.extend(Ext.data.JsonReader,Ext.data.DataReader,{read:function(a){var b=a.responseText;var c=Ext.decode(b);if(!c){throw{message:"JsonReader.read: Json object not found"}}return this.readRecords(c)},readResponse:function(e,b){var g=(b.responseText!==undefined)?Ext.decode(b.responseText):b;if(!g){throw new Ext.data.JsonReader.Error("response")}var a=this.getRoot(g);if(e===Ext.data.Api.actions.create){var d=Ext.isDefined(a);if(d&&Ext.isEmpty(a)){throw new Ext.data.JsonReader.Error("root-empty",this.meta.root)}else{if(!d){throw new Ext.data.JsonReader.Error("root-undefined-response",this.meta.root)}}}var c=new Ext.data.Response({action:e,success:this.getSuccess(g),data:(a)?this.extractData(a,false):[],message:this.getMessage(g),raw:g});if(Ext.isEmpty(c.success)){throw new Ext.data.JsonReader.Error("successProperty-response",this.meta.successProperty)}return c},readRecords:function(a){this.jsonData=a;if(a.metaData){this.onMetaChange(a.metaData)}var m=this.meta,h=this.recordType,b=h.prototype.fields,l=b.items,i=b.length,j;var g=this.getRoot(a),e=g.length,d=e,k=true;if(m.totalProperty){j=parseInt(this.getTotal(a),10);if(!isNaN(j)){d=j}}if(m.successProperty){j=this.getSuccess(a);if(j===false||j==="false"){k=false}}return{success:k,records:this.extractData(g,true),totalRecords:d}},buildExtractors:function(){if(this.ef){return}var l=this.meta,h=this.recordType,e=h.prototype.fields,k=e.items,j=e.length;if(l.totalProperty){this.getTotal=this.createAccessor(l.totalProperty)}if(l.successProperty){this.getSuccess=this.createAccessor(l.successProperty)}if(l.messageProperty){this.getMessage=this.createAccessor(l.messageProperty)}this.getRoot=l.root?this.createAccessor(l.root):function(g){return g};if(l.id||l.idProperty){var d=this.createAccessor(l.id||l.idProperty);this.getId=function(i){var g=d(i);return(g===undefined||g==="")?null:g}}else{this.getId=function(){return null}}var c=[];for(var b=0;b<j;b++){e=k[b];var a=(e.mapping!==undefined&&e.mapping!==null)?e.mapping:e.name;c.push(this.createAccessor(a))}this.ef=c},simpleAccess:function(b,a){return b[a]},createAccessor:function(){var a=/[\[\.]/;return function(c){if(Ext.isEmpty(c)){return Ext.emptyFn}if(Ext.isFunction(c)){return c}var b=String(c).search(a);if(b>=0){return new Function("obj","return obj"+(b>0?".":"")+c)}return function(d){return d[c]}}}(),extractValues:function(h,d,a){var g,c={};for(var e=0;e<a;e++){g=d[e];var b=this.ef[e](h);c[g.name]=g.convert((b!==undefined)?b:g.defaultValue,h)}return c}});Ext.data.JsonReader.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.JsonReader"});Ext.apply(Ext.data.JsonReader.Error.prototype,{lang:{response:"An error occurred while json-decoding your server response","successProperty-response":'Could not locate your "successProperty" in your server response.  Please review your JsonReader config to ensure the config-property "successProperty" matches the property in your server-response.  See the JsonReader docs.',"root-undefined-config":'Your JsonReader was configured without a "root" property.  Please review your JsonReader config and make sure to define the root property.  See the JsonReader docs.',"idProperty-undefined":'Your JsonReader was configured without an "idProperty"  Please review your JsonReader configuration and ensure the "idProperty" is set (e.g.: "id").  See the JsonReader docs.',"root-empty":'Data was expected to be returned by the server in the "root" property of the response.  Please review your JsonReader configuration to ensure the "root" property matches that returned in the server-response.  See JsonReader docs.'}});Ext.data.ArrayReader=Ext.extend(Ext.data.JsonReader,{readRecords:function(r){this.arrayData=r;var l=this.meta,d=l?Ext.num(l.idIndex,l.id):null,b=this.recordType,q=b.prototype.fields,z=[],e=true,g;var u=this.getRoot(r);for(var y=0,A=u.length;y<A;y++){var t=u[y],a={},p=((d||d===0)&&t[d]!==undefined&&t[d]!==""?t[d]:null);for(var x=0,m=q.length;x<m;x++){var B=q.items[x],w=B.mapping!==undefined&&B.mapping!==null?B.mapping:x;g=t[w]!==undefined?t[w]:B.defaultValue;g=B.convert(g,t);a[B.name]=g}var c=new b(a,p);c.json=t;z[z.length]=c}var h=z.length;if(l.totalProperty){g=parseInt(this.getTotal(r),10);if(!isNaN(g)){h=g}}if(l.successProperty){g=this.getSuccess(r);if(g===false||g==="false"){e=false}}return{success:e,records:z,totalRecords:h}}});Ext.data.ArrayStore=Ext.extend(Ext.data.Store,{constructor:function(a){Ext.data.ArrayStore.superclass.constructor.call(this,Ext.apply(a,{reader:new Ext.data.ArrayReader(a)}))},loadData:function(e,b){if(this.expandData===true){var d=[];for(var c=0,a=e.length;c<a;c++){d[d.length]=[e[c]]}e=d}Ext.data.ArrayStore.superclass.loadData.call(this,e,b)}});Ext.reg("arraystore",Ext.data.ArrayStore);Ext.data.SimpleStore=Ext.data.ArrayStore;Ext.reg("simplestore",Ext.data.SimpleStore);Ext.data.JsonStore=Ext.extend(Ext.data.Store,{constructor:function(a){Ext.data.JsonStore.superclass.constructor.call(this,Ext.apply(a,{reader:new Ext.data.JsonReader(a)}))}});Ext.reg("jsonstore",Ext.data.JsonStore);Ext.data.XmlWriter=function(a){Ext.data.XmlWriter.superclass.constructor.apply(this,arguments);this.tpl=(typeof(this.tpl)==="string")?new Ext.XTemplate(this.tpl).compile():this.tpl.compile()};Ext.extend(Ext.data.XmlWriter,Ext.data.DataWriter,{documentRoot:"xrequest",forceDocumentRoot:false,root:"records",xmlVersion:"1.0",xmlEncoding:"ISO-8859-15",tpl:'<tpl for="."><\u003fxml version="{version}" encoding="{encoding}"\u003f><tpl if="documentRoot"><{documentRoot}><tpl for="baseParams"><tpl for="."><{name}>{value}</{name}></tpl></tpl></tpl><tpl if="records.length&gt;1"><{root}></tpl><tpl for="records"><{parent.record}><tpl for="."><{name}>{value}</{name}></tpl></{parent.record}></tpl><tpl if="records.length&gt;1"></{root}></tpl><tpl if="documentRoot"></{documentRoot}></tpl></tpl>',render:function(b,c,a){c=this.toArray(c);b.xmlData=this.tpl.applyTemplate({version:this.xmlVersion,encoding:this.xmlEncoding,documentRoot:(c.length>0||this.forceDocumentRoot===true)?this.documentRoot:false,record:this.meta.record,root:this.root,baseParams:c,records:(Ext.isArray(a[0]))?a:[a]})},createRecord:function(a){return this.toArray(this.toHash(a))},updateRecord:function(a){return this.toArray(this.toHash(a))},destroyRecord:function(b){var a={};a[this.meta.idProperty]=b.id;return this.toArray(a)}});Ext.data.XmlReader=function(a,b){a=a||{};Ext.applyIf(a,{idProperty:a.idProperty||a.idPath||a.id,successProperty:a.successProperty||a.success});Ext.data.XmlReader.superclass.constructor.call(this,a,b||a.fields)};Ext.extend(Ext.data.XmlReader,Ext.data.DataReader,{read:function(a){var b=a.responseXML;if(!b){throw{message:"XmlReader.read: XML Document not available"}}return this.readRecords(b)},readRecords:function(d){this.xmlData=d;var a=d.documentElement||d,c=Ext.DomQuery,g=0,e=true;if(this.meta.totalProperty){g=this.getTotal(a,0)}if(this.meta.successProperty){e=this.getSuccess(a)}var b=this.extractData(c.select(this.meta.record,a),true);return{success:e,records:b,totalRecords:g||b.length}},readResponse:function(g,b){var e=Ext.DomQuery,h=b.responseXML,a=h.documentElement||h;var c=new Ext.data.Response({action:g,success:this.getSuccess(a),message:this.getMessage(a),data:this.extractData(e.select(this.meta.record,a)||e.select(this.meta.root,a),false),raw:h});if(Ext.isEmpty(c.success)){throw new Ext.data.DataReader.Error("successProperty-response",this.meta.successProperty)}if(g===Ext.data.Api.actions.create){var d=Ext.isDefined(c.data);if(d&&Ext.isEmpty(c.data)){throw new Ext.data.JsonReader.Error("root-empty",this.meta.root)}else{if(!d){throw new Ext.data.JsonReader.Error("root-undefined-response",this.meta.root)}}}return c},getSuccess:function(){return true},buildExtractors:function(){if(this.ef){return}var l=this.meta,h=this.recordType,e=h.prototype.fields,k=e.items,j=e.length;if(l.totalProperty){this.getTotal=this.createAccessor(l.totalProperty)}if(l.successProperty){this.getSuccess=this.createAccessor(l.successProperty)}if(l.messageProperty){this.getMessage=this.createAccessor(l.messageProperty)}this.getRoot=function(g){return(!Ext.isEmpty(g[this.meta.record]))?g[this.meta.record]:g[this.meta.root]};if(l.idPath||l.idProperty){var d=this.createAccessor(l.idPath||l.idProperty);this.getId=function(g){var i=d(g)||g.id;return(i===undefined||i==="")?null:i}}else{this.getId=function(){return null}}var c=[];for(var b=0;b<j;b++){e=k[b];var a=(e.mapping!==undefined&&e.mapping!==null)?e.mapping:e.name;c.push(this.createAccessor(a))}this.ef=c},createAccessor:function(){var a=Ext.DomQuery;return function(b){switch(b){case this.meta.totalProperty:return function(c,d){return a.selectNumber(b,c,d)};break;case this.meta.successProperty:return function(d,e){var c=a.selectValue(b,d,true);var g=c!==false&&c!=="false";return g};break;default:return function(c,d){return a.selectValue(b,c,d)};break}}}(),extractValues:function(h,d,a){var g,c={};for(var e=0;e<a;e++){g=d[e];var b=this.ef[e](h);c[g.name]=g.convert((b!==undefined)?b:g.defaultValue,h)}return c}});Ext.data.XmlStore=Ext.extend(Ext.data.Store,{constructor:function(a){Ext.data.XmlStore.superclass.constructor.call(this,Ext.apply(a,{reader:new Ext.data.XmlReader(a)}))}});Ext.reg("xmlstore",Ext.data.XmlStore);Ext.data.GroupingStore=Ext.extend(Ext.data.Store,{constructor:function(d){d=d||{};this.hasMultiSort=true;this.multiSortInfo=this.multiSortInfo||{sorters:[]};var e=this.multiSortInfo.sorters,c=d.groupField||this.groupField,b=d.sortInfo||this.sortInfo,a=d.groupDir||this.groupDir;if(c){e.push({field:c,direction:a})}if(b){e.push(b)}Ext.data.GroupingStore.superclass.constructor.call(this,d);this.addEvents("groupchange");this.applyGroupField()},remoteGroup:false,groupOnSort:false,groupDir:"ASC",clearGrouping:function(){this.groupField=false;if(this.remoteGroup){if(this.baseParams){delete this.baseParams.groupBy;delete this.baseParams.groupDir}var a=this.lastOptions;if(a&&a.params){delete a.params.groupBy;delete a.params.groupDir}this.reload()}else{this.sort();this.fireEvent("datachanged",this)}},groupBy:function(e,a,d){d=d?(String(d).toUpperCase()=="DESC"?"DESC":"ASC"):this.groupDir;if(this.groupField==e&&this.groupDir==d&&!a){return}var c=this.multiSortInfo.sorters;if(c.length>0&&c[0].field==this.groupField){c.shift()}this.groupField=e;this.groupDir=d;this.applyGroupField();var b=function(){this.fireEvent("groupchange",this,this.getGroupState())};if(this.groupOnSort){this.sort(e,d);b.call(this);return}if(this.remoteGroup){this.on("load",b,this,{single:true});this.reload()}else{this.sort(c);b.call(this)}},sort:function(h,c){if(this.remoteSort){return Ext.data.GroupingStore.superclass.sort.call(this,h,c)}var g=[];if(Ext.isArray(arguments[0])){g=arguments[0]}else{if(h==undefined){g=this.sortInfo?[this.sortInfo]:[]}else{var e=this.fields.get(h);if(!e){return false}var b=e.name,a=this.sortInfo||null,d=this.sortToggle?this.sortToggle[b]:null;if(!c){if(a&&a.field==b){c=(this.sortToggle[b]||"ASC").toggle("ASC","DESC")}else{c=e.sortDir}}this.sortToggle[b]=c;this.sortInfo={field:b,direction:c};g=[this.sortInfo]}}if(this.groupField){g.unshift({direction:this.groupDir,field:this.groupField})}return this.multiSort.call(this,g,c)},applyGroupField:function(){if(this.remoteGroup){if(!this.baseParams){this.baseParams={}}Ext.apply(this.baseParams,{groupBy:this.groupField,groupDir:this.groupDir});var a=this.lastOptions;if(a&&a.params){a.params.groupDir=this.groupDir;delete a.params.groupBy}}},applyGrouping:function(a){if(this.groupField!==false){this.groupBy(this.groupField,true,this.groupDir);return true}else{if(a===true){this.fireEvent("datachanged",this)}return false}},getGroupState:function(){return this.groupOnSort&&this.groupField!==false?(this.sortInfo?this.sortInfo.field:undefined):this.groupField}});Ext.reg("groupingstore",Ext.data.GroupingStore);Ext.data.DirectProxy=function(a){Ext.apply(this,a);if(typeof this.paramOrder=="string"){this.paramOrder=this.paramOrder.split(/[\s,|]/)}Ext.data.DirectProxy.superclass.constructor.call(this,a)};Ext.extend(Ext.data.DirectProxy,Ext.data.DataProxy,{paramOrder:undefined,paramsAsHash:true,directFn:undefined,doRequest:function(b,c,a,e,k,l,n){var j=[],h=this.api[b]||this.directFn;switch(b){case Ext.data.Api.actions.create:j.push(a.jsonData);break;case Ext.data.Api.actions.read:if(h.directCfg.method.len>0){if(this.paramOrder){for(var d=0,g=this.paramOrder.length;d<g;d++){j.push(a[this.paramOrder[d]])}}else{if(this.paramsAsHash){j.push(a)}}}break;case Ext.data.Api.actions.update:j.push(a.jsonData);break;case Ext.data.Api.actions.destroy:j.push(a.jsonData);break}var m={params:a||{},request:{callback:k,scope:l,arg:n},reader:e};j.push(this.createCallback(b,c,m),this);h.apply(window,j)},createCallback:function(d,a,b){var c=this;return function(e,g){if(!g.status){if(d===Ext.data.Api.actions.read){c.fireEvent("loadexception",c,b,g,null)}c.fireEvent("exception",c,"remote",d,b,g,null);b.request.callback.call(b.request.scope,null,b.request.arg,false);return}if(d===Ext.data.Api.actions.read){c.onRead(d,b,e,g)}else{c.onWrite(d,b,e,g,a)}}},onRead:function(g,e,a,d){var b;try{b=e.reader.readRecords(a)}catch(c){this.fireEvent("loadexception",this,e,d,c);this.fireEvent("exception",this,"response",g,e,d,c);e.request.callback.call(e.request.scope,null,e.request.arg,false);return}this.fireEvent("load",this,d,e.request.arg);e.request.callback.call(e.request.scope,b,e.request.arg,true)},onWrite:function(g,d,a,c,b){var e=d.reader.extractData(d.reader.getRoot(a),false);var h=d.reader.getSuccess(a);h=(h!==false);if(h){this.fireEvent("write",this,g,e,c,b,d.request.arg)}else{this.fireEvent("exception",this,"remote",g,d,a,b)}d.request.callback.call(d.request.scope,e,c,h)}});Ext.data.DirectStore=Ext.extend(Ext.data.Store,{constructor:function(a){var b=Ext.apply({},{batchTransactions:false},a);Ext.data.DirectStore.superclass.constructor.call(this,Ext.apply(b,{proxy:Ext.isDefined(b.proxy)?b.proxy:new Ext.data.DirectProxy(Ext.copyTo({},b,"paramOrder,paramsAsHash,directFn,api")),reader:(!Ext.isDefined(b.reader)&&b.fields)?new Ext.data.JsonReader(Ext.copyTo({},b,"totalProperty,root,idProperty"),b.fields):b.reader}))}});Ext.reg("directstore",Ext.data.DirectStore);Ext.Direct=Ext.extend(Ext.util.Observable,{exceptions:{TRANSPORT:"xhr",PARSE:"parse",LOGIN:"login",SERVER:"exception"},constructor:function(){this.addEvents("event","exception");this.transactions={};this.providers={}},addProvider:function(e){var c=arguments;if(c.length>1){for(var d=0,b=c.length;d<b;d++){this.addProvider(c[d])}return}if(!e.events){e=new Ext.Direct.PROVIDERS[e.type](e)}e.id=e.id||Ext.id();this.providers[e.id]=e;e.on("data",this.onProviderData,this);e.on("exception",this.onProviderException,this);if(!e.isConnected()){e.connect()}return e},getProvider:function(a){return this.providers[a]},removeProvider:function(b){var a=b.id?b:this.providers[b];a.un("data",this.onProviderData,this);a.un("exception",this.onProviderException,this);delete this.providers[a.id];return a},addTransaction:function(a){this.transactions[a.tid]=a;return a},removeTransaction:function(a){delete this.transactions[a.tid||a];return a},getTransaction:function(a){return this.transactions[a.tid||a]},onProviderData:function(d,c){if(Ext.isArray(c)){for(var b=0,a=c.length;b<a;b++){this.onProviderData(d,c[b])}return}if(c.name&&c.name!="event"&&c.name!="exception"){this.fireEvent(c.name,c)}else{if(c.type=="exception"){this.fireEvent("exception",c)}}this.fireEvent("event",c,d)},createEvent:function(a,b){return new Ext.Direct.eventTypes[a.type](Ext.apply(a,b))}});Ext.Direct=new Ext.Direct();Ext.Direct.TID=1;Ext.Direct.PROVIDERS={};Ext.Direct.Transaction=function(a){Ext.apply(this,a);this.tid=++Ext.Direct.TID;this.retryCount=0};Ext.Direct.Transaction.prototype={send:function(){this.provider.queueTransaction(this)},retry:function(){this.retryCount++;this.send()},getProvider:function(){return this.provider}};Ext.Direct.Event=function(a){Ext.apply(this,a)};Ext.Direct.Event.prototype={status:true,getData:function(){return this.data}};Ext.Direct.RemotingEvent=Ext.extend(Ext.Direct.Event,{type:"rpc",getTransaction:function(){return this.transaction||Ext.Direct.getTransaction(this.tid)}});Ext.Direct.ExceptionEvent=Ext.extend(Ext.Direct.RemotingEvent,{status:false,type:"exception"});Ext.Direct.eventTypes={rpc:Ext.Direct.RemotingEvent,event:Ext.Direct.Event,exception:Ext.Direct.ExceptionEvent};Ext.direct.Provider=Ext.extend(Ext.util.Observable,{priority:1,constructor:function(a){Ext.apply(this,a);this.addEvents("connect","disconnect","data","exception");Ext.direct.Provider.superclass.constructor.call(this,a)},isConnected:function(){return false},connect:Ext.emptyFn,disconnect:Ext.emptyFn});Ext.direct.JsonProvider=Ext.extend(Ext.direct.Provider,{parseResponse:function(a){if(!Ext.isEmpty(a.responseText)){if(typeof a.responseText=="object"){return a.responseText}return Ext.decode(a.responseText)}return null},getEvents:function(j){var g=null;try{g=this.parseResponse(j)}catch(h){var d=new Ext.Direct.ExceptionEvent({data:h,xhr:j,code:Ext.Direct.exceptions.PARSE,message:"Error parsing json response: \n\n "+g});return[d]}var c=[];if(Ext.isArray(g)){for(var b=0,a=g.length;b<a;b++){c.push(Ext.Direct.createEvent(g[b]))}}else{c.push(Ext.Direct.createEvent(g))}return c}});Ext.direct.PollingProvider=Ext.extend(Ext.direct.JsonProvider,{priority:3,interval:3000,constructor:function(a){Ext.direct.PollingProvider.superclass.constructor.call(this,a);this.addEvents("beforepoll","poll")},isConnected:function(){return!!this.pollTask},connect:function(){if(this.url&&!this.pollTask){this.pollTask=Ext.TaskMgr.start({run:function(){if(this.fireEvent("beforepoll",this)!==false){if(typeof this.url=="function"){this.url(this.baseParams)}else{Ext.Ajax.request({url:this.url,callback:this.onData,scope:this,params:this.baseParams})}}},interval:this.interval,scope:this});this.fireEvent("connect",this)}else{if(!this.url){throw"Error initializing PollingProvider, no url configured."}}},disconnect:function(){if(this.pollTask){Ext.TaskMgr.stop(this.pollTask);delete this.pollTask;this.fireEvent("disconnect",this)}},onData:function(d,j,h){if(j){var c=this.getEvents(h);for(var b=0,a=c.length;b<a;b++){var g=c[b];this.fireEvent("data",this,g)}}else{var g=new Ext.Direct.ExceptionEvent({data:g,code:Ext.Direct.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:h});this.fireEvent("data",this,g)}}});Ext.Direct.PROVIDERS.polling=Ext.direct.PollingProvider;Ext.direct.RemotingProvider=Ext.extend(Ext.direct.JsonProvider,{enableBuffer:10,maxRetries:1,timeout:undefined,constructor:function(a){Ext.direct.RemotingProvider.superclass.constructor.call(this,a);this.addEvents("beforecall","call");this.namespace=(Ext.isString(this.namespace))?Ext.ns(this.namespace):this.namespace||window;this.transactions={};this.callBuffer=[]},initAPI:function(){var h=this.actions;for(var j in h){var d=this.namespace[j]||(this.namespace[j]={}),e=h[j];for(var g=0,b=e.length;g<b;g++){var a=e[g];d[a.name]=this.createMethod(j,a)}}},isConnected:function(){return!!this.connected},connect:function(){if(this.url){this.initAPI();this.connected=true;this.fireEvent("connect",this)}else{if(!this.url){throw"Error initializing RemotingProvider, no url configured."}}},disconnect:function(){if(this.connected){this.connected=false;this.fireEvent("disconnect",this)}},onData:function(a,h,j){if(h){var k=this.getEvents(j);for(var b=0,c=k.length;b<c;b++){var d=k[b],l=this.getTransaction(d);this.fireEvent("data",this,d);if(l){this.doCallback(l,d,true);Ext.Direct.removeTransaction(l)}}}else{var g=[].concat(a.ts);for(var b=0,c=g.length;b<c;b++){var l=this.getTransaction(g[b]);if(l&&l.retryCount<this.maxRetries){l.retry()}else{var d=new Ext.Direct.ExceptionEvent({data:d,transaction:l,code:Ext.Direct.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:j});this.fireEvent("data",this,d);if(l){this.doCallback(l,d,false);Ext.Direct.removeTransaction(l)}}}}},getCallData:function(a){return{action:a.action,method:a.method,data:a.data,type:"rpc",tid:a.tid}},doSend:function(d){var g={url:this.url,callback:this.onData,scope:this,ts:d,timeout:this.timeout},b;if(Ext.isArray(d)){b=[];for(var c=0,a=d.length;c<a;c++){b.push(this.getCallData(d[c]))}}else{b=this.getCallData(d)}if(this.enableUrlEncode){var e={};e[Ext.isString(this.enableUrlEncode)?this.enableUrlEncode:"data"]=Ext.encode(b);g.params=e}else{g.jsonData=b}Ext.Ajax.request(g)},combineAndSend:function(){var a=this.callBuffer.length;if(a>0){this.doSend(a==1?this.callBuffer[0]:this.callBuffer);this.callBuffer=[]}},queueTransaction:function(a){if(a.form){this.processForm(a);return}this.callBuffer.push(a);if(this.enableBuffer){if(!this.callTask){this.callTask=new Ext.util.DelayedTask(this.combineAndSend,this)}this.callTask.delay(Ext.isNumber(this.enableBuffer)?this.enableBuffer:10)}else{this.combineAndSend()}},doCall:function(i,a,b){var h=null,e=b[a.len],g=b[a.len+1];if(a.len!==0){h=b.slice(0,a.len)}var d=new Ext.Direct.Transaction({provider:this,args:b,action:i,method:a.name,data:h,cb:g&&Ext.isFunction(e)?e.createDelegate(g):e});if(this.fireEvent("beforecall",this,d,a)!==false){Ext.Direct.addTransaction(d);this.queueTransaction(d);this.fireEvent("call",this,d,a)}},doForm:function(j,b,g,i,e){var d=new Ext.Direct.Transaction({provider:this,action:j,method:b.name,args:[g,i,e],cb:e&&Ext.isFunction(i)?i.createDelegate(e):i,isForm:true});if(this.fireEvent("beforecall",this,d,b)!==false){Ext.Direct.addTransaction(d);var a=String(g.getAttribute("enctype")).toLowerCase()=="multipart/form-data",h={extTID:d.tid,extAction:j,extMethod:b.name,extType:"rpc",extUpload:String(a)};Ext.apply(d,{form:Ext.getDom(g),isUpload:a,params:i&&Ext.isObject(i.params)?Ext.apply(h,i.params):h});this.fireEvent("call",this,d,b);this.processForm(d)}},processForm:function(a){Ext.Ajax.request({url:this.url,params:a.params,callback:this.onData,scope:this,form:a.form,isUpload:a.isUpload,ts:a})},createMethod:function(d,a){var b;if(!a.formHandler){b=function(){this.doCall(d,a,Array.prototype.slice.call(arguments,0))}.createDelegate(this)}else{b=function(e,g,c){this.doForm(d,a,e,g,c)}.createDelegate(this)}b.directCfg={action:d,method:a};return b},getTransaction:function(a){return a&&a.tid?Ext.Direct.getTransaction(a.tid):null},doCallback:function(c,g){var d=g.status?"success":"failure";if(c&&c.cb){var b=c.cb,a=Ext.isDefined(g.result)?g.result:g.data;if(Ext.isFunction(b)){b(a,g)}else{Ext.callback(b[d],b.scope,[a,g]);Ext.callback(b.callback,b.scope,[a,g])}}}});Ext.Direct.PROVIDERS.remoting=Ext.direct.RemotingProvider;Ext.Resizable=Ext.extend(Ext.util.Observable,{constructor:function(d,e){this.el=Ext.get(d);if(e&&e.wrap){e.resizeChild=this.el;this.el=this.el.wrap(typeof e.wrap=="object"?e.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=e.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(e.resizeChild.getPositioning());e.resizeChild.clearPositioning();if(!e.width||!e.height){var g=e.resizeChild.getSize();this.el.setSize(g.width,g.height)}if(e.pinned&&!e.adjustments){e.adjustments="auto"}}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"},Ext.getBody());this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,e);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned")}var k=this.el.getStyle("position");if(k!="absolute"&&k!="fixed"){this.el.setStyle("position","relative")}if(!this.handles){this.handles="s,e,se";if(this.multiDirectional){this.handles+=",n,w"}}if(this.handles=="all"){this.handles="n s e w ne nw se sw"}var o=this.handles.split(/\s*?[,;]\s*?| /);var c=Ext.Resizable.positions;for(var j=0,l=o.length;j<l;j++){if(o[j]&&c[o[j]]){var n=c[o[j]];this[n]=new Ext.Resizable.Handle(this,n,this.disableTrackOver,this.transparent,this.handleCls)}}this.corner=this.southeast;if(this.handles.indexOf("n")!=-1||this.handles.indexOf("w")!=-1){this.updateBox=true}this.activeHandle=null;if(this.resizeChild){if(typeof this.resizeChild=="boolean"){this.resizeChild=Ext.get(this.el.dom.firstChild,true)}else{this.resizeChild=Ext.get(this.resizeChild,true)}}if(this.adjustments=="auto"){var b=this.resizeChild;var m=this.west,h=this.east,a=this.north,o=this.south;if(b&&(m||a)){b.position("relative");b.setLeft(m?m.el.getWidth():0);b.setTop(a?a.el.getHeight():0)}this.adjustments=[(h?-h.el.getWidth():0)+(m?-m.el.getWidth():0),(a?-a.el.getHeight():0)+(o?-o.el.getHeight():0)-1]}if(this.draggable){this.dd=this.dynamic?this.el.initDD(null):this.el.initDDProxy(null,{dragElId:this.proxy.id});this.dd.setHandleElId(this.resizeChild?this.resizeChild.id:this.el.id);if(this.constrainTo){this.dd.constrainTo(this.constrainTo)}}this.addEvents("beforeresize","resize");if(this.width!==null&&this.height!==null){this.resizeTo(this.width,this.height)}else{this.updateChildSize()}if(Ext.isIE){this.el.dom.style.zoom=1}Ext.Resizable.superclass.constructor.call(this)},adjustments:[0,0],animate:false,disableTrackOver:false,draggable:false,duration:0.35,dynamic:false,easing:"easeOutStrong",enabled:true,handles:false,multiDirectional:false,height:null,width:null,heightIncrement:0,widthIncrement:0,minHeight:5,minWidth:5,maxHeight:10000,maxWidth:10000,minX:0,minY:0,pinned:false,preserveRatio:false,resizeChild:false,transparent:false,resizeTo:function(b,a){this.el.setSize(b,a);this.updateChildSize();this.fireEvent("resize",this,b,a,null)},startSizing:function(c,b){this.fireEvent("beforeresize",this,c);if(this.enabled){if(!this.overlay){this.overlay=this.el.createProxy({tag:"div",cls:"x-resizable-overlay",html:"&#160;"},Ext.getBody());this.overlay.unselectable();this.overlay.enableDisplayMode("block");this.overlay.on({scope:this,mousemove:this.onMouseMove,mouseup:this.onMouseUp})}this.overlay.setStyle("cursor",b.el.getStyle("cursor"));this.resizing=true;this.startBox=this.el.getBox();this.startPoint=c.getXY();this.offsets=[(this.startBox.x+this.startBox.width)-this.startPoint[0],(this.startBox.y+this.startBox.height)-this.startPoint[1]];this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();if(this.constrainTo){var a=Ext.get(this.constrainTo);this.resizeRegion=a.getRegion().adjust(a.getFrameWidth("t"),a.getFrameWidth("l"),-a.getFrameWidth("b"),-a.getFrameWidth("r"))}this.proxy.setStyle("visibility","hidden");this.proxy.show();this.proxy.setBox(this.startBox);if(!this.dynamic){this.proxy.setStyle("visibility","visible")}}},onMouseDown:function(a,b){if(this.enabled){b.stopEvent();this.activeHandle=a;this.startSizing(b,a)}},onMouseUp:function(b){this.activeHandle=null;var a=this.resizeElement();this.resizing=false;this.handleOut();this.overlay.hide();this.proxy.hide();this.fireEvent("resize",this,a.width,a.height,b)},updateChildSize:function(){if(this.resizeChild){var d=this.el;var e=this.resizeChild;var c=this.adjustments;if(d.dom.offsetWidth){var a=d.getSize(true);e.setSize(a.width+c[0],a.height+c[1])}if(Ext.isIE){setTimeout(function(){if(d.dom.offsetWidth){var g=d.getSize(true);e.setSize(g.width+c[0],g.height+c[1])}},10)}}},snap:function(c,e,b){if(!e||!c){return c}var d=c;var a=c%e;if(a>0){if(a>(e/2)){d=c+(e-a)}else{d=c-a}}return Math.max(b,d)},resizeElement:function(){var a=this.proxy.getBox();if(this.updateBox){this.el.setBox(a,false,this.animate,this.duration,null,this.easing)}else{this.el.setSize(a.width,a.height,this.animate,this.duration,null,this.easing)}this.updateChildSize();if(!this.dynamic){this.proxy.hide()}if(this.draggable&&this.constrainTo){this.dd.resetConstraints();this.dd.constrainTo(this.constrainTo)}return a},constrain:function(b,c,a,d){if(b-c<a){c=b-a}else{if(b-c>d){c=b-d}}return c},onMouseMove:function(z){if(this.enabled&&this.activeHandle){try{if(this.resizeRegion&&!this.resizeRegion.contains(z.getPoint())){return}var t=this.curSize||this.startBox,l=this.startBox.x,k=this.startBox.y,c=l,b=k,m=t.width,u=t.height,d=m,o=u,n=this.minWidth,A=this.minHeight,s=this.maxWidth,D=this.maxHeight,i=this.widthIncrement,a=this.heightIncrement,B=z.getXY(),r=-(this.startPoint[0]-Math.max(this.minX,B[0])),p=-(this.startPoint[1]-Math.max(this.minY,B[1])),j=this.activeHandle.position,E,g;switch(j){case"east":m+=r;m=Math.min(Math.max(n,m),s);break;case"south":u+=p;u=Math.min(Math.max(A,u),D);break;case"southeast":m+=r;u+=p;m=Math.min(Math.max(n,m),s);u=Math.min(Math.max(A,u),D);break;case"north":p=this.constrain(u,p,A,D);k+=p;u-=p;break;case"west":r=this.constrain(m,r,n,s);l+=r;m-=r;break;case"northeast":m+=r;m=Math.min(Math.max(n,m),s);p=this.constrain(u,p,A,D);k+=p;u-=p;break;case"northwest":r=this.constrain(m,r,n,s);p=this.constrain(u,p,A,D);k+=p;u-=p;l+=r;m-=r;break;case"southwest":r=this.constrain(m,r,n,s);u+=p;u=Math.min(Math.max(A,u),D);l+=r;m-=r;break}var q=this.snap(m,i,n);var C=this.snap(u,a,A);if(q!=m||C!=u){switch(j){case"northeast":k-=C-u;break;case"north":k-=C-u;break;case"southwest":l-=q-m;break;case"west":l-=q-m;break;case"northwest":l-=q-m;k-=C-u;break}m=q;u=C}if(this.preserveRatio){switch(j){case"southeast":case"east":u=o*(m/d);u=Math.min(Math.max(A,u),D);m=d*(u/o);break;case"south":m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);break;case"northeast":m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);break;case"north":E=m;m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);l+=(E-m)/2;break;case"southwest":u=o*(m/d);u=Math.min(Math.max(A,u),D);E=m;m=d*(u/o);l+=E-m;break;case"west":g=u;u=o*(m/d);u=Math.min(Math.max(A,u),D);k+=(g-u)/2;E=m;m=d*(u/o);l+=E-m;break;case"northwest":E=m;g=u;u=o*(m/d);u=Math.min(Math.max(A,u),D);m=d*(u/o);k+=g-u;l+=E-m;break}}this.proxy.setBounds(l,k,m,u);if(this.dynamic){this.resizeElement()}}catch(v){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over")}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over")}},getEl:function(){return this.el},getResizeChild:function(){return this.resizeChild},destroy:function(b){Ext.destroy(this.dd,this.overlay,this.proxy);this.overlay=null;this.proxy=null;var c=Ext.Resizable.positions;for(var a in c){if(typeof c[a]!="function"&&this[c[a]]){this[c[a]].destroy()}}if(b){this.el.update("");Ext.destroy(this.el);this.el=null}this.purgeListeners()},syncHandleHeight:function(){var a=this.el.getHeight(true);if(this.west){this.west.el.setHeight(a)}if(this.east){this.east.el.setHeight(a)}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=Ext.extend(Object,{constructor:function(d,g,c,e,a){if(!this.tpl){var b=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});b.compile();Ext.Resizable.Handle.prototype.tpl=b}this.position=g;this.rz=d;this.el=this.tpl.append(d.el.dom,[this.position],true);this.el.unselectable();if(e){this.el.setOpacity(0)}if(!Ext.isEmpty(a)){this.el.addClass(a)}this.el.on("mousedown",this.onMouseDown,this);if(!c){this.el.on({scope:this,mouseover:this.onMouseOver,mouseout:this.onMouseOut})}},afterResize:function(a){},onMouseDown:function(a){this.rz.onMouseDown(this,a)},onMouseOver:function(a){this.rz.handleOver(this,a)},onMouseOut:function(a){this.rz.handleOut(this,a)},destroy:function(){Ext.destroy(this.el);this.el=null}});Ext.Window=Ext.extend(Ext.Panel,{baseCls:"x-window",resizable:true,draggable:true,closable:true,closeAction:"close",constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,collapsible:false,initHidden:undefined,hidden:true,elements:"header,body",frame:true,floating:true,initComponent:function(){this.initTools();Ext.Window.superclass.initComponent.call(this);this.addEvents("resize","maximize","minimize","restore");if(Ext.isDefined(this.initHidden)){this.hidden=this.initHidden}if(this.hidden===false){this.hidden=true;this.show()}},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox(true))},onRender:function(b,a){Ext.Window.superclass.onRender.call(this,b,a);if(this.plain){this.el.addClass("x-window-plain")}this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:"&#160;"});this.focusEl.swallowEvent("click",true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode("block");if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();this.mon(this.mask,"click",this.focus,this)}if(this.maximizable){this.mon(this.header,"dblclick",this.toggleMaximize,this)}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget)}if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction,handleCls:"x-window-handle"});this.resizer.window=this;this.mon(this.resizer,"beforeresize",this.beforeResize,this)}if(this.draggable){this.header.addClass("x-window-draggable")}this.mon(this.el,"mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);if(this.maximized){this.maximized=false;this.maximize()}if(this.closable){var a=this.getKeyMap();a.on(27,this.onEsc,this);a.disable()}},initDraggable:function(){this.dd=new Ext.Window.DD(this)},onEsc:function(a,b){b.stopEvent();this[this.closeAction]()},beforeDestroy:function(){if(this.rendered){this.hide();this.clearAnchor();Ext.destroy(this.focusEl,this.resizer,this.dd,this.proxy,this.mask)}Ext.Window.superclass.beforeDestroy.call(this)},onDestroy:function(){if(this.manager){this.manager.unregister(this)}Ext.Window.superclass.onDestroy.call(this)},initTools:function(){if(this.minimizable){this.addTool({id:"minimize",handler:this.minimize.createDelegate(this,[])})}if(this.maximizable){this.addTool({id:"maximize",handler:this.maximize.createDelegate(this,[])});this.addTool({id:"restore",handler:this.restore.createDelegate(this,[]),hidden:true})}if(this.closable){this.addTool({id:"close",handler:this[this.closeAction].createDelegate(this,[])})}},resizerAction:function(){var a=this.proxy.getBox();this.proxy.hide();this.window.handleResize(a);return a},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox()},updateHandles:function(){if(Ext.isIE&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint()}},handleResize:function(b){var a=this.resizeBox;if(a.x!=b.x||a.y!=b.y){this.updateBox(b)}else{this.setSize(b);if(Ext.isIE6&&Ext.isStrict){this.doLayout()}}this.focus();this.updateHandles();this.saveState()},focus:function(){var e=this.focusEl,a=this.defaultButton,c=typeof a,d,b;if(Ext.isDefined(a)){if(Ext.isNumber(a)&&this.fbar){e=this.fbar.items.get(a)}else{if(Ext.isString(a)){e=Ext.getCmp(a)}else{e=a}}d=e.getEl();b=Ext.getDom(this.container);if(d&&b){if(!Ext.lib.Region.getRegion(b).contains(Ext.lib.Region.getRegion(d.dom))){return}}}e=e||this.focusEl;e.focus.defer(10,e)},setAnimateTarget:function(a){a=Ext.get(a);this.animateTarget=a},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var a=this.el.getAlignToXY(this.container,"c-c");var b=this.el.translatePoints(a[0],a[1]);this.x=this.x===undefined?b.left:this.x;this.y=this.y===undefined?b.top:this.y}this.el.setLeftTop(this.x,this.y);if(this.expandOnShow){this.expand(false)}if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show()}},show:function(c,a,b){if(!this.rendered){this.render(Ext.getBody())}if(this.hidden===false){this.toFront();return this}if(this.fireEvent("beforeshow",this)===false){return this}if(a){this.on("show",a,b,{single:true})}this.hidden=false;if(Ext.isDefined(c)){this.setAnimateTarget(c)}this.beforeShow();if(this.animateTarget){this.animShow()}else{this.afterShow()}return this},afterShow:function(b){if(this.isDestroyed){return false}this.proxy.hide();this.el.setStyle("display","block");this.el.show();if(this.maximized){this.fitContainer()}if(Ext.isMac&&Ext.isGecko2){this.cascade(this.setAutoScroll)}if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.onWindowResize(this.onWindowResize,this)}this.doConstrain();this.doLayout();if(this.keyMap){this.keyMap.enable()}this.toFront();this.updateHandles();if(b&&(Ext.isIE||Ext.isWebKit)){var a=this.getSize();this.onResize(a.width,a.height)}this.onShow();this.fireEvent("show",this)},animShow:function(){this.proxy.show();this.proxy.setBox(this.animateTarget.getBox());this.proxy.setOpacity(0);var a=this.getBox();this.el.setStyle("display","none");this.proxy.shift(Ext.apply(a,{callback:this.afterShow.createDelegate(this,[true],false),scope:this,easing:"easeNone",duration:0.25,opacity:0.5}))},hide:function(c,a,b){if(this.hidden||this.fireEvent("beforehide",this)===false){return this}if(a){this.on("hide",a,b,{single:true})}this.hidden=true;if(c!==undefined){this.setAnimateTarget(c)}if(this.modal){this.mask.hide();Ext.getBody().removeClass("x-body-masked")}if(this.animateTarget){this.animHide()}else{this.el.hide();this.afterHide()}return this},afterHide:function(){this.proxy.hide();if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.removeResizeListener(this.onWindowResize,this)}if(this.keyMap){this.keyMap.disable()}this.onHide();this.fireEvent("hide",this)},animHide:function(){this.proxy.setOpacity(0.5);this.proxy.show();var a=this.getBox(false);this.proxy.setBox(a);this.el.hide();this.proxy.shift(Ext.apply(this.animateTarget.getBox(),{callback:this.afterHide,scope:this,duration:0.25,easing:"easeNone",opacity:0}))},onShow:Ext.emptyFn,onHide:Ext.emptyFn,onWindowResize:function(){if(this.maximized){this.fitContainer()}if(this.modal){this.mask.setSize("100%","100%");var a=this.mask.dom.offsetHeight;this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true))}this.doConstrain()},doConstrain:function(){if(this.constrain||this.constrainHeader){var b;if(this.constrain){b={right:this.el.shadowOffset,left:this.el.shadowOffset,bottom:this.el.shadowOffset}}else{var a=this.getSize();b={right:-(a.width-100),bottom:-(a.height-25)}}var c=this.el.getConstrainToXY(this.container,true,b);if(c){this.setPosition(c[0],c[1])}}},ghost:function(a){var c=this.createGhost(a);var b=this.getBox(true);c.setLeftTop(b.x,b.y);c.setWidth(b.width);this.el.hide();this.activeGhost=c;return c},unghost:function(b,a){if(!this.activeGhost){return}if(b!==false){this.el.show();this.focus.defer(10,this);if(Ext.isMac&&Ext.isGecko2){this.cascade(this.setAutoScroll)}}if(a!==false){this.setPosition(this.activeGhost.getLeft(true),this.activeGhost.getTop(true))}this.activeGhost.hide();this.activeGhost.remove();delete this.activeGhost},minimize:function(){this.fireEvent("minimize",this);return this},close:function(){if(this.fireEvent("beforeclose",this)!==false){if(this.hidden){this.doClose()}else{this.hide(null,this.doClose,this)}}},doClose:function(){this.fireEvent("close",this);this.destroy()},maximize:function(){if(!this.maximized){this.expand(false);this.restoreSize=this.getSize();this.restorePos=this.getPosition(true);if(this.maximizable){this.tools.maximize.hide();this.tools.restore.show()}this.maximized=true;this.el.disableShadow();if(this.dd){this.dd.lock()}if(this.collapsible){this.tools.toggle.hide()}this.el.addClass("x-window-maximized");this.container.addClass("x-window-maximized-ct");this.setPosition(0,0);this.fitContainer();this.fireEvent("maximize",this)}return this},restore:function(){if(this.maximized){var a=this.tools;this.el.removeClass("x-window-maximized");if(a.restore){a.restore.hide()}if(a.maximize){a.maximize.show()}this.setPosition(this.restorePos[0],this.restorePos[1]);this.setSize(this.restoreSize.width,this.restoreSize.height);delete this.restorePos;delete this.restoreSize;this.maximized=false;this.el.enableShadow(true);if(this.dd){this.dd.unlock()}if(this.collapsible&&a.toggle){a.toggle.show()}this.container.removeClass("x-window-maximized-ct");this.doConstrain();this.fireEvent("restore",this)}return this},toggleMaximize:function(){return this[this.maximized?"restore":"maximize"]()},fitContainer:function(){var a=this.container.getViewSize(false);this.setSize(a.width,a.height)},setZIndex:function(a){if(this.modal){this.mask.setStyle("z-index",a)}this.el.setZIndex(++a);a+=5;if(this.resizer){this.resizer.proxy.setStyle("z-index",++a)}this.lastZIndex=a},alignTo:function(b,a,c){var d=this.el.getAlignToXY(b,a,c);this.setPagePosition(d[0],d[1]);return this},anchorTo:function(c,e,d,b){this.clearAnchor();this.anchorTarget={el:c,alignment:e,offsets:d};Ext.EventManager.onWindowResize(this.doAnchor,this);var a=typeof b;if(a!="undefined"){Ext.EventManager.on(window,"scroll",this.doAnchor,this,{buffer:a=="number"?b:50})}return this.doAnchor()},doAnchor:function(){var a=this.anchorTarget;this.alignTo(a.el,a.alignment,a.offsets);return this},clearAnchor:function(){if(this.anchorTarget){Ext.EventManager.removeResizeListener(this.doAnchor,this);Ext.EventManager.un(window,"scroll",this.doAnchor,this);delete this.anchorTarget}return this},toFront:function(a){if(this.manager.bringToFront(this)){if(!a||!a.getTarget().focus){this.focus()}}return this},setActive:function(a){if(a){if(!this.maximized){this.el.enableShadow(true)}this.fireEvent("activate",this)}else{this.el.disableShadow();this.fireEvent("deactivate",this)}},toBack:function(){this.manager.sendToBack(this);return this},center:function(){var a=this.el.getAlignToXY(this.container,"c-c");this.setPagePosition(a[0],a[1]);return this}});Ext.reg("window",Ext.Window);Ext.Window.DD=function(a){this.win=a;Ext.Window.DD.superclass.constructor.call(this,a.el.id,"WindowDD-"+a.id);this.setHandleElId(a.header.id);this.scroll=false};Ext.extend(Ext.Window.DD,Ext.dd.DD,{moveOnly:true,headerOffsets:[100,25],startDrag:function(){var a=this.win;this.proxy=a.ghost();if(a.constrain!==false){var c=a.el.shadowOffset;this.constrainTo(a.container,{right:c,left:c,bottom:c})}else{if(a.constrainHeader!==false){var b=this.proxy.getSize();this.constrainTo(a.container,{right:-(b.width-this.headerOffsets[0]),bottom:-(b.height-this.headerOffsets[1])})}}},b4Drag:Ext.emptyFn,onDrag:function(a){this.alignElWithMouse(this.proxy,a.getPageX(),a.getPageY())},endDrag:function(a){this.win.unghost();this.win.saveState()}});Ext.WindowGroup=function(){var g={};var d=[];var e=null;var c=function(j,i){return(!j._lastAccess||j._lastAccess<i._lastAccess)?-1:1};var h=function(){var l=d,j=l.length;if(j>0){l.sort(c);var k=l[0].manager.zseed;for(var m=0;m<j;m++){var n=l[m];if(n&&!n.hidden){n.setZIndex(k+(m*10))}}}a()};var b=function(i){if(i!=e){if(e){e.setActive(false)}e=i;if(i){i.setActive(true)}}};var a=function(){for(var j=d.length-1;j>=0;--j){if(!d[j].hidden){b(d[j]);return}}b(null)};return{zseed:9000,register:function(i){if(i.manager){i.manager.unregister(i)}i.manager=this;g[i.id]=i;d.push(i);i.on("hide",a)},unregister:function(i){delete i.manager;delete g[i.id];i.un("hide",a);d.remove(i)},get:function(i){return typeof i=="object"?i:g[i]},bringToFront:function(i){i=this.get(i);if(i!=e){i._lastAccess=new Date().getTime();h();return true}return false},sendToBack:function(i){i=this.get(i);i._lastAccess=-(new Date().getTime());h();return i},hideAll:function(){for(var i in g){if(g[i]&&typeof g[i]!="function"&&g[i].isVisible()){g[i].hide()}}},getActive:function(){return e},getBy:function(l,k){var m=[];for(var j=d.length-1;j>=0;--j){var n=d[j];if(l.call(k||n,n)!==false){m.push(n)}}return m},each:function(j,i){for(var k in g){if(g[k]&&typeof g[k]!="function"){if(j.call(i||g[k],g[k])===false){return}}}}}};Ext.WindowMgr=new Ext.WindowGroup();Ext.MessageBox=function(){var u,b,q,t,h,l,s,a,n,p,j,g,r,v,o,i="",d="",m=["ok","yes","no","cancel"];var c=function(x){r[x].blur();if(u.isVisible()){u.hide();w();Ext.callback(b.fn,b.scope||window,[x,v.dom.value,b],1)}};var w=function(){if(b&&b.cls){u.el.removeClass(b.cls)}n.reset()};var e=function(z,x,y){if(b&&b.closable!==false){u.hide();w()}if(y){y.stopEvent()}};var k=function(x){var z=0,y;if(!x){Ext.each(m,function(A){r[A].hide()});return z}u.footer.dom.style.display="";Ext.iterate(r,function(A,B){y=x[A];if(y){B.show();B.setText(Ext.isString(y)?y:Ext.MessageBox.buttonText[A]);z+=B.getEl().getWidth()+15}else{B.hide()}});return z};return{getDialog:function(x){if(!u){var z=[];r={};Ext.each(m,function(A){z.push(r[A]=new Ext.Button({text:this.buttonText[A],handler:c.createCallback(A),hideMode:"offsets"}))},this);u=new Ext.Window({autoCreate:true,title:x,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(b&&b.buttons&&b.buttons.no&&!b.buttons.cancel){c("no")}else{c("cancel")}},fbar:new Ext.Toolbar({items:z,enableOverflow:false})});u.render(document.body);u.getEl().addClass("x-window-dlg");q=u.mask;h=u.body.createChild({html:'<div class="ext-mb-icon"></div><div class="ext-mb-content"><span class="ext-mb-text"></span><br /><div class="ext-mb-fix-cursor"><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea></div></div>'});j=Ext.get(h.dom.firstChild);var y=h.dom.childNodes[1];l=Ext.get(y.firstChild);s=Ext.get(y.childNodes[2].firstChild);s.enableDisplayMode();s.addKeyListener([10,13],function(){if(u.isVisible()&&b&&b.buttons){if(b.buttons.ok){c("ok")}else{if(b.buttons.yes){c("yes")}}}});a=Ext.get(y.childNodes[2].childNodes[1]);a.enableDisplayMode();n=new Ext.ProgressBar({renderTo:h});h.createChild({cls:"x-clear"})}return u},updateText:function(A){if(!u.isVisible()&&!b.width){u.setSize(this.maxWidth,100)}l.update(A||"&#160;");var y=d!=""?(j.getWidth()+j.getMargins("lr")):0,C=l.getWidth()+l.getMargins("lr"),z=u.getFrameWidth("lr"),B=u.body.getFrameWidth("lr"),x;if(Ext.isIE&&y>0){y+=3}x=Math.max(Math.min(b.width||y+C+z+B,b.maxWidth||this.maxWidth),Math.max(b.minWidth||this.minWidth,o||0));if(b.prompt===true){v.setWidth(x-y-z-B)}if(b.progress===true||b.wait===true){n.setSize(x-y-z-B)}if(Ext.isIE&&x==o){x+=4}u.setSize(x,"auto").center();return this},updateProgress:function(y,x,z){n.updateProgress(y,x);if(z){this.updateText(z)}return this},isVisible:function(){return u&&u.isVisible()},hide:function(){var x=u?u.activeGhost:null;if(this.isVisible()||x){u.hide();w();if(x){u.unghost(false,false)}}return this},show:function(A){if(this.isVisible()){this.hide()}b=A;var B=this.getDialog(b.title||"&#160;");B.setTitle(b.title||"&#160;");var x=(b.closable!==false&&b.progress!==true&&b.wait!==true);B.tools.close.setDisplayed(x);v=s;b.prompt=b.prompt||(b.multiline?true:false);if(b.prompt){if(b.multiline){s.hide();a.show();a.setHeight(Ext.isNumber(b.multiline)?b.multiline:this.defaultTextHeight);v=a}else{s.show();a.hide()}}else{s.hide();a.hide()}v.dom.value=b.value||"";if(b.prompt){B.focusEl=v}else{var z=b.buttons;var y=null;if(z&&z.ok){y=r.ok}else{if(z&&z.yes){y=r.yes}}if(y){B.focusEl=y}}if(Ext.isDefined(b.iconCls)){B.setIconClass(b.iconCls)}this.setIcon(Ext.isDefined(b.icon)?b.icon:i);o=k(b.buttons);n.setVisible(b.progress===true||b.wait===true);this.updateProgress(0,b.progressText);this.updateText(b.msg);if(b.cls){B.el.addClass(b.cls)}B.proxyDrag=b.proxyDrag===true;B.modal=b.modal!==false;B.mask=b.modal!==false?q:false;if(!B.isVisible()){document.body.appendChild(u.el.dom);B.setAnimateTarget(b.animEl);B.on("show",function(){if(x===true){B.keyMap.enable()}else{B.keyMap.disable()}},this,{single:true});B.show(b.animEl)}if(b.wait===true){n.wait(b.waitConfig)}return this},setIcon:function(x){if(!u){i=x;return}i=undefined;if(x&&x!=""){j.removeClass("x-hidden");j.replaceClass(d,x);h.addClass("x-dlg-icon");d=x}else{j.replaceClass(d,"x-hidden");h.removeClass("x-dlg-icon");d=""}return this},progress:function(z,y,x){this.show({title:z,msg:y,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:x});return this},wait:function(z,y,x){this.show({title:y,msg:z,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:x});return this},alert:function(A,z,y,x){this.show({title:A,msg:z,buttons:this.OK,fn:y,scope:x,minWidth:this.minWidth});return this},confirm:function(A,z,y,x){this.show({title:A,msg:z,buttons:this.YESNO,fn:y,scope:x,icon:this.QUESTION,minWidth:this.minWidth});return this},prompt:function(C,B,z,y,x,A){this.show({title:C,msg:B,buttons:this.OKCANCEL,fn:z,minWidth:this.minPromptWidth,scope:y,prompt:true,multiline:x,value:A});return this},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,minPromptWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.Msg=Ext.MessageBox;Ext.dd.PanelProxy=function(a,b){this.panel=a;this.id=this.panel.id+"-ddproxy";Ext.apply(this,b)};Ext.dd.PanelProxy.prototype={insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.el.dom.style.display="";this.ghost.remove();delete this.ghost}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(undefined,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY());if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"});this.proxy.setSize(this.panel.getSize())}this.panel.el.dom.style.display="none"}},repair:function(b,c,a){this.hide();if(typeof c=="function"){c.call(a||this)}},moveProxy:function(a,b){if(this.proxy){a.insertBefore(this.proxy.dom,b)}}};Ext.Panel.DD=function(b,a){this.panel=b;this.dragData={panel:b};this.proxy=new Ext.dd.PanelProxy(b,a);Ext.Panel.DD.superclass.constructor.call(this,b.el,a);var c=b.header;if(c){this.setHandleElId(c.id)}(c?c:this.panel.body).setStyle("cursor","move");this.scroll=false};Ext.extend(Ext.Panel.DD,Ext.dd.DragSource,{showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(a,b){this.proxy.show()},b4MouseDown:function(b){var a=b.getPageX();var c=b.getPageY();this.autoOffset(a,c)},onInitDrag:function(a,b){this.onStartDrag(a,b);return true},createFrame:Ext.emptyFn,getDragEl:function(a){return this.proxy.ghost.dom},endDrag:function(a){this.proxy.hide();this.panel.saveState()},autoOffset:function(a,b){a-=this.startPageX;b-=this.startPageY;this.setDelta(a,b)}});Ext.state.Provider=Ext.extend(Ext.util.Observable,{constructor:function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this)},get:function(b,a){return typeof this.state[b]=="undefined"?a:this.state[b]},clear:function(a){delete this.state[a];this.fireEvent("statechange",this,a,null)},set:function(a,b){this.state[a]=b;this.fireEvent("statechange",this,a,b)},decodeValue:function(b){var e=/^(a|n|d|b|s|o|e)\:(.*)$/,h=e.exec(unescape(b)),d,c,a,g;if(!h||!h[1]){return}c=h[1];a=h[2];switch(c){case"e":return null;case"n":return parseFloat(a);case"d":return new Date(Date.parse(a));case"b":return(a=="1");case"a":d=[];if(a!=""){Ext.each(a.split("^"),function(i){d.push(this.decodeValue(i))},this)}return d;case"o":d={};if(a!=""){Ext.each(a.split("^"),function(i){g=i.split("=");d[g[0]]=this.decodeValue(g[1])},this)}return d;default:return a}},encodeValue:function(c){var b,g="",e=0,a,d;if(c==null){return"e:1"}else{if(typeof c=="number"){b="n:"+c}else{if(typeof c=="boolean"){b="b:"+(c?"1":"0")}else{if(Ext.isDate(c)){b="d:"+c.toGMTString()}else{if(Ext.isArray(c)){for(a=c.length;e<a;e++){g+=this.encodeValue(c[e]);if(e!=a-1){g+="^"}}b="a:"+g}else{if(typeof c=="object"){for(d in c){if(typeof c[d]!="function"&&c[d]!==undefined){g+=d+"="+this.encodeValue(c[d])+"^"}}b="o:"+g.substring(0,g.length-1)}else{b="s:"+c}}}}}}return escape(b)}});Ext.state.Manager=function(){var a=new Ext.state.Provider();return{setProvider:function(b){a=b},get:function(c,b){return a.get(c,b)},set:function(b,c){a.set(b,c)},clear:function(b){a.clear(b)},getProvider:function(){return a}}}();Ext.state.CookieProvider=Ext.extend(Ext.state.Provider,{constructor:function(a){Ext.state.CookieProvider.superclass.constructor.call(this);this.path="/";this.expires=new Date(new Date().getTime()+(1000*60*60*24*7));this.domain=null;this.secure=false;Ext.apply(this,a);this.state=this.readCookies()},set:function(a,b){if(typeof b=="undefined"||b===null){this.clear(a);return}this.setCookie(a,b);Ext.state.CookieProvider.superclass.set.call(this,a,b)},clear:function(a){this.clearCookie(a);Ext.state.CookieProvider.superclass.clear.call(this,a)},readCookies:function(){var d={},h=document.cookie+";",b=/\s?(.*?)=(.*?);/g,g,a,e;while((g=b.exec(h))!=null){a=g[1];e=g[2];if(a&&a.substring(0,3)=="ys-"){d[a.substr(3)]=this.decodeValue(e)}}return d},setCookie:function(a,b){document.cookie="ys-"+a+"="+this.encodeValue(b)+((this.expires==null)?"":("; expires="+this.expires.toGMTString()))+((this.path==null)?"":("; path="+this.path))+((this.domain==null)?"":("; domain="+this.domain))+((this.secure==true)?"; secure":"")},clearCookie:function(a){document.cookie="ys-"+a+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+((this.path==null)?"":("; path="+this.path))+((this.domain==null)?"":("; domain="+this.domain))+((this.secure==true)?"; secure":"")}});Ext.DataView=Ext.extend(Ext.BoxComponent,{selectedClass:"x-view-selected",emptyText:"",deferEmptyText:true,trackOver:false,blockRefresh:false,last:false,initComponent:function(){Ext.DataView.superclass.initComponent.call(this);if(Ext.isString(this.tpl)||Ext.isArray(this.tpl)){this.tpl=new Ext.XTemplate(this.tpl)}this.addEvents("beforeclick","click","mouseenter","mouseleave","containerclick","dblclick","contextmenu","containercontextmenu","selectionchange","beforeselect");this.store=Ext.StoreMgr.lookup(this.store);this.all=new Ext.CompositeElementLite();this.selected=new Ext.CompositeElementLite()},afterRender:function(){Ext.DataView.superclass.afterRender.call(this);this.mon(this.getTemplateTarget(),{click:this.onClick,dblclick:this.onDblClick,contextmenu:this.onContextMenu,scope:this});if(this.overClass||this.trackOver){this.mon(this.getTemplateTarget(),{mouseover:this.onMouseOver,mouseout:this.onMouseOut,scope:this})}if(this.store){this.bindStore(this.store,true)}},refresh:function(){this.clearSelections(false,true);var b=this.getTemplateTarget();b.update("");var a=this.store.getRange();if(a.length<1){if(!this.deferEmptyText||this.hasSkippedEmptyText){b.update(this.emptyText)}this.all.clear()}else{this.tpl.overwrite(b,this.collectData(a,0));this.all.fill(Ext.query(this.itemSelector,b.dom));this.updateIndexes(0)}this.hasSkippedEmptyText=true},getTemplateTarget:function(){return this.el},prepareData:function(a){return a},collectData:function(b,e){var d=[];for(var c=0,a=b.length;c<a;c++){d[d.length]=this.prepareData(b[c].data,e+c,b[c])}return d},bufferRender:function(a){var b=document.createElement("div");this.tpl.overwrite(b,this.collectData(a));return Ext.query(this.itemSelector,b)},onUpdate:function(g,a){var b=this.store.indexOf(a);if(b>-1){var e=this.isSelected(b);var c=this.all.elements[b];var d=this.bufferRender([a],b)[0];this.all.replaceElement(b,d,true);if(e){this.selected.replaceElement(c,d);this.all.item(b).addClass(this.selectedClass)}this.updateIndexes(b,b)}},onAdd:function(g,d,e){if(this.all.getCount()===0){this.refresh();return}var c=this.bufferRender(d,e),h,b=this.all.elements;if(e<this.all.getCount()){h=this.all.item(e).insertSibling(c,"before",true);b.splice.apply(b,[e,0].concat(c))}else{h=this.all.last().insertSibling(c,"after",true);b.push.apply(b,c)}this.updateIndexes(e)},onRemove:function(c,a,b){this.deselect(b);this.all.removeElement(b,true);this.updateIndexes(b);if(this.store.getCount()===0){this.refresh()}},refreshNode:function(a){this.onUpdate(this.store,this.store.getAt(a))},updateIndexes:function(d,c){var b=this.all.elements;d=d||0;c=c||((c===0)?0:(b.length-1));for(var a=d;a<=c;a++){b[a].viewIndex=a}},getStore:function(){return this.store},bindStore:function(a,b){if(!b&&this.store){if(a!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("datachanged",this.onDataChanged,this);this.store.un("add",this.onAdd,this);this.store.un("remove",this.onRemove,this);this.store.un("update",this.onUpdate,this);this.store.un("clear",this.refresh,this)}if(!a){this.store=null}}if(a){a=Ext.StoreMgr.lookup(a);a.on({scope:this,beforeload:this.onBeforeLoad,datachanged:this.onDataChanged,add:this.onAdd,remove:this.onRemove,update:this.onUpdate,clear:this.refresh})}this.store=a;if(a){this.refresh()}},onDataChanged:function(){if(this.blockRefresh!==true){this.refresh.apply(this,arguments)}},findItemFromChild:function(a){return Ext.fly(a).findParent(this.itemSelector,this.getTemplateTarget())},onClick:function(c){var b=c.getTarget(this.itemSelector,this.getTemplateTarget());if(b){var a=this.indexOf(b);if(this.onItemClick(b,a,c)!==false){this.fireEvent("click",this,a,b,c)}}else{if(this.fireEvent("containerclick",this,c)!==false){this.onContainerClick(c)}}},onContainerClick:function(a){this.clearSelections()},onContextMenu:function(b){var a=b.getTarget(this.itemSelector,this.getTemplateTarget());if(a){this.fireEvent("contextmenu",this,this.indexOf(a),a,b)}else{this.fireEvent("containercontextmenu",this,b)}},onDblClick:function(b){var a=b.getTarget(this.itemSelector,this.getTemplateTarget());if(a){this.fireEvent("dblclick",this,this.indexOf(a),a,b)}},onMouseOver:function(b){var a=b.getTarget(this.itemSelector,this.getTemplateTarget());if(a&&a!==this.lastItem){this.lastItem=a;Ext.fly(a).addClass(this.overClass);this.fireEvent("mouseenter",this,this.indexOf(a),a,b)}},onMouseOut:function(a){if(this.lastItem){if(!a.within(this.lastItem,true,true)){Ext.fly(this.lastItem).removeClass(this.overClass);this.fireEvent("mouseleave",this,this.indexOf(this.lastItem),this.lastItem,a);delete this.lastItem}}},onItemClick:function(b,a,c){if(this.fireEvent("beforeclick",this,a,b,c)===false){return false}if(this.multiSelect){this.doMultiSelection(b,a,c);c.preventDefault()}else{if(this.singleSelect){this.doSingleSelection(b,a,c);c.preventDefault()}}return true},doSingleSelection:function(b,a,c){if(c.ctrlKey&&this.isSelected(a)){this.deselect(a)}else{this.select(a,false)}},doMultiSelection:function(c,a,d){if(d.shiftKey&&this.last!==false){var b=this.last;this.selectRange(b,a,d.ctrlKey);this.last=b}else{if((d.ctrlKey||this.simpleSelect)&&this.isSelected(a)){this.deselect(a)}else{this.select(a,d.ctrlKey||d.shiftKey||this.simpleSelect)}}},getSelectionCount:function(){return this.selected.getCount()},getSelectedNodes:function(){return this.selected.elements},getSelectedIndexes:function(){var b=[],d=this.selected.elements;for(var c=0,a=d.length;c<a;c++){b.push(d[c].viewIndex)}return b},getSelectedRecords:function(){var d=[],c=this.selected.elements;for(var b=0,a=c.length;b<a;b++){d[d.length]=this.store.getAt(c[b].viewIndex)}return d},getRecords:function(b){var e=[],d=b;for(var c=0,a=d.length;c<a;c++){e[e.length]=this.store.getAt(d[c].viewIndex)}return e},getRecord:function(a){return this.store.getAt(a.viewIndex)},clearSelections:function(a,b){if((this.multiSelect||this.singleSelect)&&this.selected.getCount()>0){if(!b){this.selected.removeClass(this.selectedClass)}this.selected.clear();this.last=false;if(!a){this.fireEvent("selectionchange",this,this.selected.elements)}}},isSelected:function(a){return this.selected.contains(this.getNode(a))},deselect:function(a){if(this.isSelected(a)){a=this.getNode(a);this.selected.removeElement(a);if(this.last==a.viewIndex){this.last=false}Ext.fly(a).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements)}},select:function(d,g,b){if(Ext.isArray(d)){if(!g){this.clearSelections(true)}for(var c=0,a=d.length;c<a;c++){this.select(d[c],true,true)}if(!b){this.fireEvent("selectionchange",this,this.selected.elements)}}else{var e=this.getNode(d);if(!g){this.clearSelections(true)}if(e&&!this.isSelected(e)){if(this.fireEvent("beforeselect",this,e,this.selected.elements)!==false){Ext.fly(e).addClass(this.selectedClass);this.selected.add(e);this.last=e.viewIndex;if(!b){this.fireEvent("selectionchange",this,this.selected.elements)}}}}},selectRange:function(c,a,b){if(!b){this.clearSelections(true)}this.select(this.getNodes(c,a),true)},getNode:function(b){if(Ext.isString(b)){return document.getElementById(b)}else{if(Ext.isNumber(b)){return this.all.elements[b]}else{if(b instanceof Ext.data.Record){var a=this.store.indexOf(b);return this.all.elements[a]}}}return b},getNodes:function(e,a){var d=this.all.elements;e=e||0;a=!Ext.isDefined(a)?Math.max(d.length-1,0):a;var b=[],c;if(e<=a){for(c=e;c<=a&&d[c];c++){b.push(d[c])}}else{for(c=e;c>=a&&d[c];c--){b.push(d[c])}}return b},indexOf:function(a){a=this.getNode(a);if(Ext.isNumber(a.viewIndex)){return a.viewIndex}return this.all.indexOf(a)},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.getTemplateTarget().update('<div class="loading-indicator">'+this.loadingText+"</div>");this.all.clear()}},onDestroy:function(){this.all.clear();this.selected.clear();Ext.DataView.superclass.onDestroy.call(this);this.bindStore(null)}});Ext.DataView.prototype.setStore=Ext.DataView.prototype.bindStore;Ext.reg("dataview",Ext.DataView);Ext.list.ListView=Ext.extend(Ext.DataView,{itemSelector:"dl",selectedClass:"x-list-selected",overClass:"x-list-over",scrollOffset:undefined,columnResize:true,columnSort:true,maxColumnWidth:Ext.isIE?99:100,initComponent:function(){if(this.columnResize){this.colResizer=new Ext.list.ColumnResizer(this.colResizer);this.colResizer.init(this)}if(this.columnSort){this.colSorter=new Ext.list.Sorter(this.columnSort);this.colSorter.init(this)}if(!this.internalTpl){this.internalTpl=new Ext.XTemplate('<div class="x-list-header"><div class="x-list-header-inner">','<tpl for="columns">','<div style="width:{[values.width*100]}%;text-align:{align};"><em unselectable="on" id="',this.id,'-xlhd-{#}">',"{header}","</em></div>","</tpl>",'<div class="x-clear"></div>',"</div></div>",'<div class="x-list-body"><div class="x-list-body-inner">',"</div></div>")}if(!this.tpl){this.tpl=new Ext.XTemplate('<tpl for="rows">',"<dl>",'<tpl for="parent.columns">','<dt style="width:{[values.width*100]}%;text-align:{align};">','<em unselectable="on"<tpl if="cls"> class="{cls}</tpl>">',"{[values.tpl.apply(parent)]}","</em></dt>","</tpl>",'<div class="x-clear"></div>',"</dl>","</tpl>")}var l=this.columns,h=0,k=0,m=l.length,b=[];for(var g=0;g<m;g++){var n=l[g];if(!n.isColumn){n.xtype=n.xtype?(/^lv/.test(n.xtype)?n.xtype:"lv"+n.xtype):"lvcolumn";n=Ext.create(n)}if(n.width){h+=n.width*100;k++}b.push(n)}l=this.columns=b;if(k<m){var d=m-k;if(h<this.maxColumnWidth){var a=((this.maxColumnWidth-h)/d)/100;for(var e=0;e<m;e++){var n=l[e];if(!n.width){n.width=a}}}}Ext.list.ListView.superclass.initComponent.call(this)},onRender:function(){this.autoEl={cls:"x-list-wrap"};Ext.list.ListView.superclass.onRender.apply(this,arguments);this.internalTpl.overwrite(this.el,{columns:this.columns});this.innerBody=Ext.get(this.el.dom.childNodes[1].firstChild);this.innerHd=Ext.get(this.el.dom.firstChild.firstChild);if(this.hideHeaders){this.el.dom.firstChild.style.display="none"}},getTemplateTarget:function(){return this.innerBody},collectData:function(){var a=Ext.list.ListView.superclass.collectData.apply(this,arguments);return{columns:this.columns,rows:a}},verifyInternalSize:function(){if(this.lastSize){this.onResize(this.lastSize.width,this.lastSize.height)}},onResize:function(b,d){var e=this.innerBody.dom;var g=this.innerHd.dom;if(!e){return}var c=e.parentNode;if(Ext.isNumber(b)){var a=b-Ext.num(this.scrollOffset,Ext.getScrollBarWidth());if(this.reserveScrollOffset||((c.offsetWidth-c.clientWidth)>10)){e.style.width=a+"px";g.style.width=a+"px"}else{e.style.width=b+"px";g.style.width=b+"px";setTimeout(function(){if((c.offsetWidth-c.clientWidth)>10){e.style.width=a+"px";g.style.width=a+"px"}},10)}}if(Ext.isNumber(d)){c.style.height=(d-g.parentNode.offsetHeight)+"px"}},updateIndexes:function(){Ext.list.ListView.superclass.updateIndexes.apply(this,arguments);this.verifyInternalSize()},findHeaderIndex:function(e){e=e.dom||e;var a=e.parentNode,d=a.parentNode.childNodes;for(var b=0,g;g=d[b];b++){if(g==a){return b}}return-1},setHdWidths:function(){var c=this.innerHd.dom.getElementsByTagName("div");for(var b=0,d=this.columns,a=d.length;b<a;b++){c[b].style.width=(d[b].width*100)+"%"}}});Ext.reg("listview",Ext.list.ListView);Ext.ListView=Ext.list.ListView;Ext.list.Column=Ext.extend(Object,{isColumn:true,align:"left",header:"",width:null,cls:"",constructor:function(a){if(!a.tpl){a.tpl=new Ext.XTemplate("{"+a.dataIndex+"}")}else{if(Ext.isString(a.tpl)){a.tpl=new Ext.XTemplate(a.tpl)}}Ext.apply(this,a)}});Ext.reg("lvcolumn",Ext.list.Column);Ext.list.NumberColumn=Ext.extend(Ext.list.Column,{format:"0,000.00",constructor:function(a){a.tpl=a.tpl||new Ext.XTemplate("{"+a.dataIndex+':number("'+(a.format||this.format)+'")}');Ext.list.NumberColumn.superclass.constructor.call(this,a)}});Ext.reg("lvnumbercolumn",Ext.list.NumberColumn);Ext.list.DateColumn=Ext.extend(Ext.list.Column,{format:"m/d/Y",constructor:function(a){a.tpl=a.tpl||new Ext.XTemplate("{"+a.dataIndex+':date("'+(a.format||this.format)+'")}');Ext.list.DateColumn.superclass.constructor.call(this,a)}});Ext.reg("lvdatecolumn",Ext.list.DateColumn);Ext.list.BooleanColumn=Ext.extend(Ext.list.Column,{trueText:"true",falseText:"false",undefinedText:"&#160;",constructor:function(e){e.tpl=e.tpl||new Ext.XTemplate("{"+e.dataIndex+":this.format}");var b=this.trueText,d=this.falseText,a=this.undefinedText;e.tpl.format=function(c){if(c===undefined){return a}if(!c||c==="false"){return d}return b};Ext.list.DateColumn.superclass.constructor.call(this,e)}});Ext.reg("lvbooleancolumn",Ext.list.BooleanColumn);Ext.list.ColumnResizer=Ext.extend(Ext.util.Observable,{minPct:0.05,constructor:function(a){Ext.apply(this,a);Ext.list.ColumnResizer.superclass.constructor.call(this)},init:function(a){this.view=a;a.on("render",this.initEvents,this)},initEvents:function(a){a.mon(a.innerHd,"mousemove",this.handleHdMove,this);this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeStart.createDelegate(this),onStart:this.onStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(a.innerHd);a.on("beforedestroy",this.tracker.destroy,this.tracker)},handleHdMove:function(j,g){var b=5,a=j.getPageX(),i=j.getTarget("em",3,true);if(i){var h=i.getRegion(),d=i.dom.style,c=i.dom.parentNode;if(a-h.left<=b&&c!=c.parentNode.firstChild){this.activeHd=Ext.get(c.previousSibling.firstChild);d.cursor=Ext.isWebKit?"e-resize":"col-resize"}else{if(h.right-a<=b&&c!=c.parentNode.lastChild.previousSibling){this.activeHd=i;d.cursor=Ext.isWebKit?"w-resize":"col-resize"}else{delete this.activeHd;d.cursor=""}}}},onBeforeStart:function(a){this.dragHd=this.activeHd;return!!this.dragHd},onStart:function(c){this.view.disableHeaders=true;this.proxy=this.view.el.createChild({cls:"x-list-resizer"});this.proxy.setHeight(this.view.el.getHeight());var a=this.tracker.getXY()[0],b=this.view.innerHd.getWidth();this.hdX=this.dragHd.getX();this.hdIndex=this.view.findHeaderIndex(this.dragHd);this.proxy.setX(this.hdX);this.proxy.setWidth(a-this.hdX);this.minWidth=b*this.minPct;this.maxWidth=b-(this.minWidth*(this.view.columns.length-1-this.hdIndex))},onDrag:function(b){var a=this.tracker.getXY()[0];this.proxy.setWidth((a-this.hdX).constrain(this.minWidth,this.maxWidth))},onEnd:function(m){var k=this.proxy.getWidth();this.proxy.remove();var j=this.hdIndex,o=this.view,h=o.columns,l=h.length,q=this.view.innerHd.getWidth(),g=this.minPct*100,r=Math.ceil((k*o.maxColumnWidth)/q),p=(h[j].width*100)-r,a=Math.floor(p/(l-1-j)),n=p-(a*(l-1-j));for(var d=j+1;d<l;d++){var c=(h[d].width*100)+a,b=Math.max(g,c);if(c!=b){n+=c-b}h[d].width=b/100}h[j].width=r/100;h[j+1].width+=(n/100);delete this.dragHd;o.setHdWidths();o.refresh();setTimeout(function(){o.disableHeaders=false},100)}});Ext.ListView.ColumnResizer=Ext.list.ColumnResizer;Ext.list.Sorter=Ext.extend(Ext.util.Observable,{sortClasses:["sort-asc","sort-desc"],constructor:function(a){Ext.apply(this,a);Ext.list.Sorter.superclass.constructor.call(this)},init:function(a){this.view=a;a.on("render",this.initEvents,this)},initEvents:function(a){a.mon(a.innerHd,"click",this.onHdClick,this);a.innerHd.setStyle("cursor","pointer");a.mon(a.store,"datachanged",this.updateSortState,this);this.updateSortState.defer(10,this,[a.store])},updateSortState:function(c){var g=c.getSortState();if(!g){return}this.sortState=g;var e=this.view.columns,h=-1;for(var d=0,a=e.length;d<a;d++){if(e[d].dataIndex==g.field){h=d;break}}if(h!=-1){var b=g.direction;this.updateSortIcon(h,b)}},updateSortIcon:function(b,a){var d=this.sortClasses;var c=this.view.innerHd.select("em").removeClass(d);c.item(b).addClass(d[a=="DESC"?1:0])},onHdClick:function(c){var b=c.getTarget("em",3);if(b&&!this.view.disableHeaders){var a=this.view.findHeaderIndex(b);this.view.store.sort(this.view.columns[a].dataIndex)}}});Ext.ListView.Sorter=Ext.list.Sorter;Ext.TabPanel=Ext.extend(Ext.Panel,{deferredRender:true,tabWidth:120,minTabWidth:30,resizeTabs:false,enableTabScroll:false,scrollIncrement:0,scrollRepeatInterval:400,scrollDuration:0.35,animScroll:true,tabPosition:"top",baseCls:"x-tab-panel",autoTabs:false,autoTabSelector:"div.x-tab",activeTab:undefined,tabMargin:2,plain:false,wheelIncrement:20,idDelimiter:"__",itemCls:"x-tab-item",elements:"body",headerAsText:false,frame:false,hideBorders:true,initComponent:function(){this.frame=false;Ext.TabPanel.superclass.initComponent.call(this);this.addEvents("beforetabchange","tabchange","contextmenu");this.setLayout(new Ext.layout.CardLayout(Ext.apply({layoutOnCardChange:this.layoutOnTabChange,deferredRender:this.deferredRender},this.layoutConfig)));if(this.tabPosition=="top"){this.elements+=",header";this.stripTarget="header"}else{this.elements+=",footer";this.stripTarget="footer"}if(!this.stack){this.stack=Ext.TabPanel.AccessStack()}this.initItems()},onRender:function(c,a){Ext.TabPanel.superclass.onRender.call(this,c,a);if(this.plain){var g=this.tabPosition=="top"?"header":"footer";this[g].addClass("x-tab-panel-"+g+"-plain")}var b=this[this.stripTarget];this.stripWrap=b.createChild({cls:"x-tab-strip-wrap",cn:{tag:"ul",cls:"x-tab-strip x-tab-strip-"+this.tabPosition}});var e=(this.tabPosition=="bottom"?this.stripWrap:null);b.createChild({cls:"x-tab-strip-spacer"},e);this.strip=new Ext.Element(this.stripWrap.dom.firstChild);this.edge=this.strip.createChild({tag:"li",cls:"x-tab-edge",cn:[{tag:"span",cls:"x-tab-strip-text",cn:"&#160;"}]});this.strip.createChild({cls:"x-clear"});this.body.addClass("x-tab-panel-body-"+this.tabPosition);if(!this.itemTpl){var d=new Ext.Template('<li class="{cls}" id="{id}"><a class="x-tab-strip-close"></a>','<a class="x-tab-right" href="#"><em class="x-tab-left">','<span class="x-tab-strip-inner"><span class="x-tab-strip-text {iconCls}">{text}</span></span>',"</em></a></li>");d.disableFormats=true;d.compile();Ext.TabPanel.prototype.itemTpl=d}this.items.each(this.initTab,this)},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false)}if(this.activeTab!==undefined){var a=Ext.isObject(this.activeTab)?this.activeTab:this.items.get(this.activeTab);delete this.activeTab;this.setActiveTab(a)}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.mon(this.strip,{scope:this,mousedown:this.onStripMouseDown,contextmenu:this.onStripContextMenu});if(this.enableTabScroll){this.mon(this.strip,"mousewheel",this.onWheel,this)}},findTargets:function(c){var b=null,a=c.getTarget("li:not(.x-tab-edge)",this.strip);if(a){b=this.getComponent(a.id.split(this.idDelimiter)[1]);if(b.disabled){return{close:null,item:null,el:null}}}return{close:c.getTarget(".x-tab-strip-close",this.strip),item:b,el:a}},onStripMouseDown:function(b){if(b.button!==0){return}b.preventDefault();var a=this.findTargets(b);if(a.close){if(a.item.fireEvent("beforeclose",a.item)!==false){a.item.fireEvent("close",a.item);this.remove(a.item)}return}if(a.item&&a.item!=this.activeTab){this.setActiveTab(a.item)}},onStripContextMenu:function(b){b.preventDefault();var a=this.findTargets(b);if(a.item){this.fireEvent("contextmenu",this,a.item,b)}},readTabs:function(d){if(d===true){this.items.each(function(h){this.remove(h)},this)}var c=this.el.query(this.autoTabSelector);for(var b=0,a=c.length;b<a;b++){var e=c[b],g=e.getAttribute("title");e.removeAttribute("title");this.add({title:g,contentEl:e})}},initTab:function(d,b){var e=this.strip.dom.childNodes[b],g=this.getTemplateArgs(d),c=e?this.itemTpl.insertBefore(e,g):this.itemTpl.append(this.strip,g),a="x-tab-strip-over",h=Ext.get(c);h.hover(function(){if(!d.disabled){h.addClass(a)}},function(){h.removeClass(a)});if(d.tabTip){h.child("span.x-tab-strip-text",true).qtip=d.tabTip}d.tabEl=c;h.select("a").on("click",function(i){if(!i.getPageX()){this.onStripMouseDown(i)}},this,{preventDefault:true});d.on({scope:this,disable:this.onItemDisabled,enable:this.onItemEnabled,titlechange:this.onItemTitleChanged,iconchange:this.onItemIconChanged,beforeshow:this.onBeforeShowItem})},getTemplateArgs:function(b){var a=b.closable?"x-tab-strip-closable":"";if(b.disabled){a+=" x-item-disabled"}if(b.iconCls){a+=" x-tab-with-icon"}if(b.tabCls){a+=" "+b.tabCls}return{id:this.id+this.idDelimiter+b.getItemId(),text:b.title,cls:a,iconCls:b.iconCls||""}},onAdd:function(b){Ext.TabPanel.superclass.onAdd.call(this,b);if(this.rendered){var a=this.items;this.initTab(b,a.indexOf(b));this.delegateUpdates()}},onBeforeAdd:function(b){var a=b.events?(this.items.containsKey(b.getItemId())?b:null):this.items.get(b);if(a){this.setActiveTab(b);return false}Ext.TabPanel.superclass.onBeforeAdd.apply(this,arguments);var c=b.elements;b.elements=c?c.replace(",header",""):c;b.border=(b.border===true)},onRemove:function(d){var b=Ext.get(d.tabEl);if(b){b.select("a").removeAllListeners();Ext.destroy(b)}Ext.TabPanel.superclass.onRemove.call(this,d);this.stack.remove(d);delete d.tabEl;d.un("disable",this.onItemDisabled,this);d.un("enable",this.onItemEnabled,this);d.un("titlechange",this.onItemTitleChanged,this);d.un("iconchange",this.onItemIconChanged,this);d.un("beforeshow",this.onBeforeShowItem,this);if(d==this.activeTab){var a=this.stack.next();if(a){this.setActiveTab(a)}else{if(this.items.getCount()>0){this.setActiveTab(0)}else{this.setActiveTab(null)}}}if(!this.destroying){this.delegateUpdates()}},onBeforeShowItem:function(a){if(a!=this.activeTab){this.setActiveTab(a);return false}},onItemDisabled:function(b){var a=this.getTabEl(b);if(a){Ext.fly(a).addClass("x-item-disabled")}this.stack.remove(b)},onItemEnabled:function(b){var a=this.getTabEl(b);if(a){Ext.fly(a).removeClass("x-item-disabled")}},onItemTitleChanged:function(b){var a=this.getTabEl(b);if(a){Ext.fly(a).child("span.x-tab-strip-text",true).innerHTML=b.title}},onItemIconChanged:function(d,a,c){var b=this.getTabEl(d);if(b){b=Ext.get(b);b.child("span.x-tab-strip-text").replaceClass(c,a);b[Ext.isEmpty(a)?"removeClass":"addClass"]("x-tab-with-icon")}},getTabEl:function(a){var b=this.getComponent(a);return b?b.tabEl:null},onResize:function(){Ext.TabPanel.superclass.onResize.apply(this,arguments);this.delegateUpdates()},beginUpdate:function(){this.suspendUpdates=true},endUpdate:function(){this.suspendUpdates=false;this.delegateUpdates()},hideTabStripItem:function(b){b=this.getComponent(b);var a=this.getTabEl(b);if(a){a.style.display="none";this.delegateUpdates()}this.stack.remove(b)},unhideTabStripItem:function(b){b=this.getComponent(b);var a=this.getTabEl(b);if(a){a.style.display="";this.delegateUpdates()}},delegateUpdates:function(){if(this.suspendUpdates){return}if(this.resizeTabs&&this.rendered){this.autoSizeTabs()}if(this.enableTabScroll&&this.rendered){this.autoScrollTabs()}},autoSizeTabs:function(){var h=this.items.length,b=this.tabPosition!="bottom"?"header":"footer",c=this[b].dom.offsetWidth,a=this[b].dom.clientWidth;if(!this.resizeTabs||h<1||!a){return}var k=Math.max(Math.min(Math.floor((a-4)/h)-this.tabMargin,this.tabWidth),this.minTabWidth);this.lastTabWidth=k;var m=this.strip.query("li:not(.x-tab-edge)");for(var e=0,j=m.length;e<j;e++){var l=m[e],n=Ext.fly(l).child(".x-tab-strip-inner",true),g=l.offsetWidth,d=n.offsetWidth;n.style.width=(k-(g-d))+"px"}},adjustBodyWidth:function(a){if(this.header){this.header.setWidth(a)}if(this.footer){this.footer.setWidth(a)}return a},setActiveTab:function(c){c=this.getComponent(c);if(this.fireEvent("beforetabchange",this,c,this.activeTab)===false){return}if(!this.rendered){this.activeTab=c;return}if(this.activeTab!=c){if(this.activeTab){var a=this.getTabEl(this.activeTab);if(a){Ext.fly(a).removeClass("x-tab-strip-active")}}this.activeTab=c;if(c){var b=this.getTabEl(c);Ext.fly(b).addClass("x-tab-strip-active");this.stack.add(c);this.layout.setActiveItem(c);if(this.scrolling){this.scrollToTab(c,this.animScroll)}}this.fireEvent("tabchange",this,c)}},getActiveTab:function(){return this.activeTab||null},getItem:function(a){return this.getComponent(a)},autoScrollTabs:function(){this.pos=this.tabPosition=="bottom"?this.footer:this.header;var h=this.items.length,d=this.pos.dom.offsetWidth,c=this.pos.dom.clientWidth,g=this.stripWrap,e=g.dom,b=e.offsetWidth,i=this.getScrollPos(),a=this.edge.getOffsetsTo(this.stripWrap)[0]+i;if(!this.enableTabScroll||b<20){return}if(h==0||a<=c){e.scrollLeft=0;g.setWidth(c);if(this.scrolling){this.scrolling=false;this.pos.removeClass("x-tab-scrolling");this.scrollLeft.hide();this.scrollRight.hide();if(Ext.isAir||Ext.isWebKit){e.style.marginLeft="";e.style.marginRight=""}}}else{if(!this.scrolling){this.pos.addClass("x-tab-scrolling");if(Ext.isAir||Ext.isWebKit){e.style.marginLeft="18px";e.style.marginRight="18px"}}c-=g.getMargins("lr");g.setWidth(c>20?c:20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers()}else{this.scrollLeft.show();this.scrollRight.show()}}this.scrolling=true;if(i>(a-c)){e.scrollLeft=a-c}else{this.scrollToTab(this.activeTab,false)}this.updateScrollButtons()}},createScrollers:function(){this.pos.addClass("x-tab-scrolling-"+this.tabPosition);var c=this.stripWrap.dom.offsetHeight;var a=this.pos.insertFirst({cls:"x-tab-scroller-left"});a.setHeight(c);a.addClassOnOver("x-tab-scroller-left-over");this.leftRepeater=new Ext.util.ClickRepeater(a,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=a;var b=this.pos.insertFirst({cls:"x-tab-scroller-right"});b.setHeight(c);b.addClassOnOver("x-tab-scroller-right-over");this.rightRepeater=new Ext.util.ClickRepeater(b,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=b},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos()},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100)},scrollToTab:function(e,a){if(!e){return}var c=this.getTabEl(e),h=this.getScrollPos(),d=this.getScrollArea(),g=Ext.fly(c).getOffsetsTo(this.stripWrap)[0]+h,b=g+c.offsetWidth;if(g<h){this.scrollTo(g,a)}else{if(b>(h+d)){this.scrollTo(b-d,a)}}},scrollTo:function(b,a){this.stripWrap.scrollTo("left",b,a?this.getScrollAnim():false);if(!a){this.updateScrollButtons()}},onWheel:function(g){var h=g.getWheelDelta()*this.wheelIncrement*-1;g.stopEvent();var i=this.getScrollPos(),c=i+h,a=this.getScrollWidth()-this.getScrollArea();var b=Math.max(0,Math.min(a,c));if(b!=i){this.scrollTo(b,false)}},onScrollRight:function(){var a=this.getScrollWidth()-this.getScrollArea(),c=this.getScrollPos(),b=Math.min(a,c+this.getScrollIncrement());if(b!=c){this.scrollTo(b,this.animScroll)}},onScrollLeft:function(){var b=this.getScrollPos(),a=Math.max(0,b-this.getScrollIncrement());if(a!=b){this.scrollTo(a,this.animScroll)}},updateScrollButtons:function(){var a=this.getScrollPos();this.scrollLeft[a===0?"addClass":"removeClass"]("x-tab-scroller-left-disabled");this.scrollRight[a>=(this.getScrollWidth()-this.getScrollArea())?"addClass":"removeClass"]("x-tab-scroller-right-disabled")},beforeDestroy:function(){Ext.destroy(this.leftRepeater,this.rightRepeater);this.deleteMembers("strip","edge","scrollLeft","scrollRight","stripWrap");this.activeTab=null;Ext.TabPanel.superclass.beforeDestroy.apply(this)}});Ext.reg("tabpanel",Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var a=[];return{add:function(b){a.push(b);if(a.length>10){a.shift()}},remove:function(e){var d=[];for(var c=0,b=a.length;c<b;c++){if(a[c]!=e){d.push(a[c])}}a=d},next:function(){return a.pop()}}};Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:"button",menuClassTarget:"tr:nth(2)",clickEvent:"click",handleMouseEvents:true,tooltipType:"qtip",buttonSelector:"button:first-child",scale:"small",iconAlign:"left",arrowAlign:"right",initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle","mouseover","mouseout","menushow","menuhide","menutriggerover","menutriggerout");if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu)}if(Ext.isString(this.toggleGroup)){this.enableToggle=true}},getTemplateArgs:function(){return[this.type,"x-btn-"+this.scale+" x-btn-icon-"+this.scale+"-"+this.iconAlign,this.getMenuClass(),this.cls,this.id]},setButtonClass:function(){if(this.useSetClass){if(!Ext.isEmpty(this.oldCls)){this.el.removeClass([this.oldCls,"x-btn-pressed"])}this.oldCls=(this.iconCls||this.icon)?(this.text?"x-btn-text-icon":"x-btn-icon"):"x-btn-noicon";this.el.addClass([this.oldCls,this.pressed?"x-btn-pressed":null])}},getMenuClass:function(){return this.menu?(this.arrowAlign!="bottom"?"x-btn-arrow":"x-btn-arrow-bottom"):""},onRender:function(c,a){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template('<table id="{4}" cellspacing="0" class="x-btn {3}"><tbody class="{1}">','<tr><td class="x-btn-tl"><i>&#160;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-ml"><i>&#160;</i></td><td class="x-btn-mc"><em class="{2}" unselectable="on"><button type="{0}"></button></em></td><td class="x-btn-mr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-bl"><i>&#160;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&#160;</i></td></tr>',"</tbody></table>");Ext.Button.buttonTemplate.compile()}this.template=Ext.Button.buttonTemplate}var b,d=this.getTemplateArgs();if(a){b=this.template.insertBefore(a,d,true)}else{b=this.template.append(c,d,true)}this.btnEl=b.child(this.buttonSelector);this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur});this.initButtonEl(b,this.btnEl);Ext.ButtonToggleMgr.register(this)},initButtonEl:function(b,c){this.el=b;this.setIcon(this.icon);this.setText(this.text);this.setIconClass(this.iconCls);if(Ext.isDefined(this.tabIndex)){c.dom.tabIndex=this.tabIndex}if(this.tooltip){this.setTooltip(this.tooltip,true)}if(this.handleMouseEvents){this.mon(b,{scope:this,mouseover:this.onMouseOver,mousedown:this.onMouseDown})}if(this.menu){this.mon(this.menu,{scope:this,show:this.onMenuShow,hide:this.onMenuHide})}if(this.repeat){var a=new Ext.util.ClickRepeater(b,Ext.isObject(this.repeat)?this.repeat:{});this.mon(a,"click",this.onRepeatClick,this)}else{this.mon(b,this.clickEvent,this.onClick,this)}},afterRender:function(){Ext.Button.superclass.afterRender.call(this);this.useSetClass=true;this.setButtonClass();this.doc=Ext.getDoc();this.doAutoWidth()},setIconClass:function(a){this.iconCls=a;if(this.el){this.btnEl.dom.className="";this.btnEl.addClass(["x-btn-text",a||""]);this.setButtonClass()}return this},setTooltip:function(b,a){if(this.rendered){if(!a){this.clearTip()}if(Ext.isObject(b)){Ext.QuickTips.register(Ext.apply({target:this.btnEl.id},b));this.tooltip=b}else{this.btnEl.dom[this.tooltipType]=b}}else{this.tooltip=b}return this},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.QuickTips.unregister(this.btnEl)}},beforeDestroy:function(){if(this.rendered){this.clearTip()}if(this.menu&&this.destroyMenu!==false){Ext.destroy(this.btnEl,this.menu)}Ext.destroy(this.repeater)},onDestroy:function(){if(this.rendered){this.doc.un("mouseover",this.monitorMouseOver,this);this.doc.un("mouseup",this.onMouseUp,this);delete this.doc;delete this.btnEl;Ext.ButtonToggleMgr.unregister(this)}Ext.Button.superclass.onDestroy.call(this)},doAutoWidth:function(){if(this.autoWidth!==false&&this.el&&this.text&&this.width===undefined){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var a=this.btnEl;if(a&&a.getWidth()>20){a.clip();a.setWidth(Ext.util.TextMetrics.measure(a,this.text).width+a.getFrameWidth("lr"))}}if(this.minWidth){if(this.el.getWidth()<this.minWidth){this.el.setWidth(this.minWidth)}}}},setHandler:function(b,a){this.handler=b;this.scope=a;return this},setText:function(a){this.text=a;if(this.el){this.btnEl.update(a||"&#160;");this.setButtonClass()}this.doAutoWidth();return this},setIcon:function(a){this.icon=a;if(this.el){this.btnEl.setStyle("background-image",a?"url("+a+")":"");this.setButtonClass()}return this},getText:function(){return this.text},toggle:function(b,a){b=b===undefined?!this.pressed:!!b;if(b!=this.pressed){if(this.rendered){this.el[b?"addClass":"removeClass"]("x-btn-pressed")}this.pressed=b;if(!a){this.fireEvent("toggle",this,b);if(this.toggleHandler){this.toggleHandler.call(this.scope||this,this,b)}}}return this},onDisable:function(){this.onDisableChange(true)},onEnable:function(){this.onDisableChange(false)},onDisableChange:function(a){if(this.el){if(!Ext.isIE6||!this.text){this.el[a?"addClass":"removeClass"](this.disabledClass)}this.el.dom.disabled=a}this.disabled=a},showMenu:function(){if(this.rendered&&this.menu){if(this.tooltip){Ext.QuickTips.getQuickTip().cancelShow(this.btnEl)}if(this.menu.isVisible()){this.menu.hide()}this.menu.ownerCt=this;this.menu.show(this.el,this.menuAlign)}return this},hideMenu:function(){if(this.hasVisibleMenu()){this.menu.hide()}return this},hasVisibleMenu:function(){return this.menu&&this.menu.ownerCt==this&&this.menu.isVisible()},onRepeatClick:function(a,b){this.onClick(b)},onClick:function(a){if(a){a.preventDefault()}if(a.button!==0){return}if(!this.disabled){if(this.enableToggle&&(this.allowDepress!==false||!this.pressed)){this.toggle()}if(this.menu&&!this.hasVisibleMenu()&&!this.ignoreNextClick){this.showMenu()}this.fireEvent("click",this,a);if(this.handler){this.handler.call(this.scope||this,this,a)}}},isMenuTriggerOver:function(b,a){return this.menu&&!a},isMenuTriggerOut:function(b,a){return this.menu&&!a},onMouseOver:function(b){if(!this.disabled){var a=b.within(this.el,true);if(!a){this.el.addClass("x-btn-over");if(!this.monitoringMouseOver){this.doc.on("mouseover",this.monitorMouseOver,this);this.monitoringMouseOver=true}this.fireEvent("mouseover",this,b)}if(this.isMenuTriggerOver(b,a)){this.fireEvent("menutriggerover",this,this.menu,b)}}},monitorMouseOver:function(a){if(a.target!=this.el.dom&&!a.within(this.el)){if(this.monitoringMouseOver){this.doc.un("mouseover",this.monitorMouseOver,this);this.monitoringMouseOver=false}this.onMouseOut(a)}},onMouseOut:function(b){var a=b.within(this.el)&&b.target!=this.el.dom;this.el.removeClass("x-btn-over");this.fireEvent("mouseout",this,b);if(this.isMenuTriggerOut(b,a)){this.fireEvent("menutriggerout",this,this.menu,b)}},focus:function(){this.btnEl.focus()},blur:function(){this.btnEl.blur()},onFocus:function(a){if(!this.disabled){this.el.addClass("x-btn-focus")}},onBlur:function(a){this.el.removeClass("x-btn-focus")},getClickEl:function(b,a){return this.el},onMouseDown:function(a){if(!this.disabled&&a.button===0){this.getClickEl(a).addClass("x-btn-click");this.doc.on("mouseup",this.onMouseUp,this)}},onMouseUp:function(a){if(a.button===0){this.getClickEl(a,true).removeClass("x-btn-click");this.doc.un("mouseup",this.onMouseUp,this)}},onMenuShow:function(a){if(this.menu.ownerCt==this){this.menu.ownerCt=this;this.ignoreNextClick=0;this.el.addClass("x-btn-menu-active");this.fireEvent("menushow",this,this.menu)}},onMenuHide:function(a){if(this.menu.ownerCt==this){this.el.removeClass("x-btn-menu-active");this.ignoreNextClick=this.restoreClick.defer(250,this);this.fireEvent("menuhide",this,this.menu);delete this.menu.ownerCt}},restoreClick:function(){this.ignoreNextClick=0}});Ext.reg("button",Ext.Button);Ext.ButtonToggleMgr=function(){var a={};function b(e,j){if(j){var h=a[e.toggleGroup];for(var d=0,c=h.length;d<c;d++){if(h[d]!=e){h[d].toggle(false)}}}}return{register:function(c){if(!c.toggleGroup){return}var d=a[c.toggleGroup];if(!d){d=a[c.toggleGroup]=[]}d.push(c);c.on("toggle",b)},unregister:function(c){if(!c.toggleGroup){return}var d=a[c.toggleGroup];if(d){d.remove(c);c.un("toggle",b)}},getPressed:function(h){var e=a[h];if(e){for(var d=0,c=e.length;d<c;d++){if(e[d].pressed===true){return e[d]}}}return null}}}();Ext.SplitButton=Ext.extend(Ext.Button,{arrowSelector:"em",split:true,initComponent:function(){Ext.SplitButton.superclass.initComponent.call(this);this.addEvents("arrowclick")},onRender:function(){Ext.SplitButton.superclass.onRender.apply(this,arguments);if(this.arrowTooltip){this.el.child(this.arrowSelector).dom[this.tooltipType]=this.arrowTooltip}},setArrowHandler:function(b,a){this.arrowHandler=b;this.scope=a},getMenuClass:function(){return"x-btn-split"+(this.arrowAlign=="bottom"?"-bottom":"")},isClickOnArrow:function(c){if(this.arrowAlign!="bottom"){var b=this.el.child("em.x-btn-split");var a=b.getRegion().right-b.getPadding("r");return c.getPageX()>a}else{return c.getPageY()>this.btnEl.getRegion().bottom}},onClick:function(b,a){b.preventDefault();if(!this.disabled){if(this.isClickOnArrow(b)){if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu()}this.fireEvent("arrowclick",this,b);if(this.arrowHandler){this.arrowHandler.call(this.scope||this,this,b)}}else{if(this.enableToggle){this.toggle()}this.fireEvent("click",this,b);if(this.handler){this.handler.call(this.scope||this,this,b)}}}},isMenuTriggerOver:function(a){return this.menu&&a.target.tagName==this.arrowSelector},isMenuTriggerOut:function(b,a){return this.menu&&b.target.tagName!=this.arrowSelector}});Ext.reg("splitbutton",Ext.SplitButton);Ext.CycleButton=Ext.extend(Ext.SplitButton,{getItemText:function(a){if(a&&this.showText===true){var b="";if(this.prependText){b+=this.prependText}b+=a.text;return b}return undefined},setActiveItem:function(c,a){if(!Ext.isObject(c)){c=this.menu.getComponent(c)}if(c){if(!this.rendered){this.text=this.getItemText(c);this.iconCls=c.iconCls}else{var b=this.getItemText(c);if(b){this.setText(b)}this.setIconClass(c.iconCls)}this.activeItem=c;if(!c.checked){c.setChecked(true,false)}if(this.forceIcon){this.setIconClass(this.forceIcon)}if(!a){this.fireEvent("change",this,c)}}},getActiveItem:function(){return this.activeItem},initComponent:function(){this.addEvents("change");if(this.changeHandler){this.on("change",this.changeHandler,this.scope||this);delete this.changeHandler}this.itemCount=this.items.length;this.menu={cls:"x-cycle-menu",items:[]};var a=0;Ext.each(this.items,function(c,b){Ext.apply(c,{group:c.group||this.id,itemIndex:b,checkHandler:this.checkHandler,scope:this,checked:c.checked||false});this.menu.items.push(c);if(c.checked){a=b}},this);Ext.CycleButton.superclass.initComponent.call(this);this.on("click",this.toggleSelected,this);this.setActiveItem(a,true)},checkHandler:function(a,b){if(b){this.setActiveItem(a)}},toggleSelected:function(){var a=this.menu;a.render();if(!a.hasLayout){a.doLayout()}var d,b;for(var c=1;c<this.itemCount;c++){d=(this.activeItem.itemIndex+c)%this.itemCount;b=a.items.itemAt(d);if(!b.disabled){b.setChecked(true);break}}}});Ext.reg("cycle",Ext.CycleButton);Ext.Toolbar=function(a){if(Ext.isArray(a)){a={items:a,layout:"toolbar"}}else{a=Ext.apply({layout:"toolbar"},a);if(a.buttons){a.items=a.buttons}}Ext.Toolbar.superclass.constructor.call(this,a)};(function(){var a=Ext.Toolbar;Ext.extend(a,Ext.Container,{defaultType:"button",enableOverflow:false,trackMenus:true,internalDefaults:{removeMode:"container",hideParent:true},toolbarCls:"x-toolbar",initComponent:function(){a.superclass.initComponent.call(this);this.addEvents("overflowchange")},onRender:function(c,b){if(!this.el){if(!this.autoCreate){this.autoCreate={cls:this.toolbarCls+" x-small-editor"}}this.el=c.createChild(Ext.apply({id:this.id},this.autoCreate),b);Ext.Toolbar.superclass.onRender.apply(this,arguments)}},lookupComponent:function(b){if(Ext.isString(b)){if(b=="-"){b=new a.Separator()}else{if(b==" "){b=new a.Spacer()}else{if(b=="->"){b=new a.Fill()}else{b=new a.TextItem(b)}}}this.applyDefaults(b)}else{if(b.isFormField||b.render){b=this.createComponent(b)}else{if(b.tag){b=new a.Item({autoEl:b})}else{if(b.tagName){b=new a.Item({el:b})}else{if(Ext.isObject(b)){b=b.xtype?this.createComponent(b):this.constructButton(b)}}}}}return b},applyDefaults:function(e){if(!Ext.isString(e)){e=Ext.Toolbar.superclass.applyDefaults.call(this,e);var b=this.internalDefaults;if(e.events){Ext.applyIf(e.initialConfig,b);Ext.apply(e,b)}else{Ext.applyIf(e,b)}}return e},addSeparator:function(){return this.add(new a.Separator())},addSpacer:function(){return this.add(new a.Spacer())},addFill:function(){this.add(new a.Fill())},addElement:function(b){return this.addItem(new a.Item({el:b}))},addItem:function(b){return this.add.apply(this,arguments)},addButton:function(c){if(Ext.isArray(c)){var e=[];for(var d=0,b=c.length;d<b;d++){e.push(this.addButton(c[d]))}return e}return this.add(this.constructButton(c))},addText:function(b){return this.addItem(new a.TextItem(b))},addDom:function(b){return this.add(new a.Item({autoEl:b}))},addField:function(b){return this.add(b)},insertButton:function(c,g){if(Ext.isArray(g)){var e=[];for(var d=0,b=g.length;d<b;d++){e.push(this.insertButton(c+d,g[d]))}return e}return Ext.Toolbar.superclass.insert.call(this,c,g)},trackMenu:function(c,b){if(this.trackMenus&&c.menu){var d=b?"mun":"mon";this[d](c,"menutriggerover",this.onButtonTriggerOver,this);this[d](c,"menushow",this.onButtonMenuShow,this);this[d](c,"menuhide",this.onButtonMenuHide,this)}},constructButton:function(d){var c=d.events?d:this.createComponent(d,d.split?"splitbutton":this.defaultType);return c},onAdd:function(b){Ext.Toolbar.superclass.onAdd.call(this);this.trackMenu(b);if(this.disabled){b.disable()}},onRemove:function(b){Ext.Toolbar.superclass.onRemove.call(this);this.trackMenu(b,true)},onDisable:function(){this.items.each(function(b){if(b.disable){b.disable()}})},onEnable:function(){this.items.each(function(b){if(b.enable){b.enable()}})},onButtonTriggerOver:function(b){if(this.activeMenuBtn&&this.activeMenuBtn!=b){this.activeMenuBtn.hideMenu();b.showMenu();this.activeMenuBtn=b}},onButtonMenuShow:function(b){this.activeMenuBtn=b},onButtonMenuHide:function(b){delete this.activeMenuBtn}});Ext.reg("toolbar",Ext.Toolbar);a.Item=Ext.extend(Ext.BoxComponent,{hideParent:true,enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg("tbitem",a.Item);a.Separator=Ext.extend(a.Item,{onRender:function(c,b){this.el=c.createChild({tag:"span",cls:"xtb-sep"},b)}});Ext.reg("tbseparator",a.Separator);a.Spacer=Ext.extend(a.Item,{onRender:function(c,b){this.el=c.createChild({tag:"div",cls:"xtb-spacer",style:this.width?"width:"+this.width+"px":""},b)}});Ext.reg("tbspacer",a.Spacer);a.Fill=Ext.extend(a.Item,{render:Ext.emptyFn,isFill:true});Ext.reg("tbfill",a.Fill);a.TextItem=Ext.extend(a.Item,{constructor:function(b){a.TextItem.superclass.constructor.call(this,Ext.isString(b)?{text:b}:b)},onRender:function(c,b){this.autoEl={cls:"xtb-text",html:this.text||""};a.TextItem.superclass.onRender.call(this,c,b)},setText:function(b){if(this.rendered){this.el.update(b)}else{this.text=b}}});Ext.reg("tbtext",a.TextItem);a.Button=Ext.extend(Ext.Button,{});a.SplitButton=Ext.extend(Ext.SplitButton,{});Ext.reg("tbbutton",a.Button);Ext.reg("tbsplit",a.SplitButton)})();Ext.ButtonGroup=Ext.extend(Ext.Panel,{baseCls:"x-btn-group",layout:"table",defaultType:"button",frame:true,internalDefaults:{removeMode:"container",hideParent:true},initComponent:function(){this.layoutConfig=this.layoutConfig||{};Ext.applyIf(this.layoutConfig,{columns:this.columns});if(!this.title){this.addClass("x-btn-group-notitle")}this.on("afterlayout",this.onAfterLayout,this);Ext.ButtonGroup.superclass.initComponent.call(this)},applyDefaults:function(b){b=Ext.ButtonGroup.superclass.applyDefaults.call(this,b);var a=this.internalDefaults;if(b.events){Ext.applyIf(b.initialConfig,a);Ext.apply(b,a)}else{Ext.applyIf(b,a)}return b},onAfterLayout:function(){var a=this.body.getFrameWidth("lr")+this.body.dom.firstChild.offsetWidth;this.body.setWidth(a);this.el.setWidth(a+this.getFrameWidth())}});Ext.reg("buttongroup",Ext.ButtonGroup);(function(){var a=Ext.Toolbar;Ext.PagingToolbar=Ext.extend(Ext.Toolbar,{pageSize:20,displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display",beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",initComponent:function(){var c=[this.first=new a.Button({tooltip:this.firstText,overflowText:this.firstText,iconCls:"x-tbar-page-first",disabled:true,handler:this.moveFirst,scope:this}),this.prev=new a.Button({tooltip:this.prevText,overflowText:this.prevText,iconCls:"x-tbar-page-prev",disabled:true,handler:this.movePrevious,scope:this}),"-",this.beforePageText,this.inputItem=new Ext.form.NumberField({cls:"x-tbar-page-number",allowDecimals:false,allowNegative:false,enableKeyEvents:true,selectOnFocus:true,submitValue:false,listeners:{scope:this,keydown:this.onPagingKeyDown,blur:this.onPagingBlur}}),this.afterTextItem=new a.TextItem({text:String.format(this.afterPageText,1)}),"-",this.next=new a.Button({tooltip:this.nextText,overflowText:this.nextText,iconCls:"x-tbar-page-next",disabled:true,handler:this.moveNext,scope:this}),this.last=new a.Button({tooltip:this.lastText,overflowText:this.lastText,iconCls:"x-tbar-page-last",disabled:true,handler:this.moveLast,scope:this}),"-",this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this})];var b=this.items||this.buttons||[];if(this.prependButtons){this.items=b.concat(c)}else{this.items=c.concat(b)}delete this.buttons;if(this.displayInfo){this.items.push("->");this.items.push(this.displayItem=new a.TextItem({}))}Ext.PagingToolbar.superclass.initComponent.call(this);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.cursor=0;this.bindStore(this.store,true)},onFirstLayout:function(){if(this.dsLoaded){this.onLoad.apply(this,this.dsLoaded)}},updateInfo:function(){if(this.displayItem){var b=this.store.getCount();var c=b==0?this.emptyMsg:String.format(this.displayMsg,this.cursor+1,this.cursor+b,this.store.getTotalCount());this.displayItem.setText(c)}},onLoad:function(b,e,j){if(!this.rendered){this.dsLoaded=[b,e,j];return}var g=this.getParams();this.cursor=(j.params&&j.params[g.start])?j.params[g.start]:0;var i=this.getPageData(),c=i.activePage,h=i.pages;this.afterTextItem.setText(String.format(this.afterPageText,i.pages));this.inputItem.setValue(c);this.first.setDisabled(c==1);this.prev.setDisabled(c==1);this.next.setDisabled(c==h);this.last.setDisabled(c==h);this.refresh.enable();this.updateInfo();this.fireEvent("change",this,i)},getPageData:function(){var b=this.store.getTotalCount();return{total:b,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:b<this.pageSize?1:Math.ceil(b/this.pageSize)}},changePage:function(b){this.doLoad(((b-1)*this.pageSize).constrain(0,this.store.getTotalCount()))},onLoadError:function(){if(!this.rendered){return}this.refresh.enable()},readPage:function(e){var b=this.inputItem.getValue(),c;if(!b||isNaN(c=parseInt(b,10))){this.inputItem.setValue(e.activePage);return false}return c},onPagingFocus:function(){this.inputItem.select()},onPagingBlur:function(b){this.inputItem.setValue(this.getPageData().activePage)},onPagingKeyDown:function(i,h){var c=h.getKey(),j=this.getPageData(),g;if(c==h.RETURN){h.stopEvent();g=this.readPage(j);if(g!==false){g=Math.min(Math.max(1,g),j.pages)-1;this.doLoad(g*this.pageSize)}}else{if(c==h.HOME||c==h.END){h.stopEvent();g=c==h.HOME?1:j.pages;i.setValue(g)}else{if(c==h.UP||c==h.PAGEUP||c==h.DOWN||c==h.PAGEDOWN){h.stopEvent();if((g=this.readPage(j))){var b=h.shiftKey?10:1;if(c==h.DOWN||c==h.PAGEDOWN){b*=-1}g+=b;if(g>=1&g<=j.pages){i.setValue(g)}}}}}},getParams:function(){return this.paramNames||this.store.paramNames},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},doLoad:function(d){var c={},b=this.getParams();c[b.start]=d;c[b.limit]=this.pageSize;if(this.fireEvent("beforechange",this,c)!==false){this.store.load({params:c})}},moveFirst:function(){this.doLoad(0)},movePrevious:function(){this.doLoad(Math.max(0,this.cursor-this.pageSize))},moveNext:function(){this.doLoad(this.cursor+this.pageSize)},moveLast:function(){var c=this.store.getTotalCount(),b=c%this.pageSize;this.doLoad(b?(c-b):c-this.pageSize)},doRefresh:function(){this.doLoad(this.cursor)},bindStore:function(c,d){var b;if(!d&&this.store){if(c!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoadError,this)}if(!c){this.store=null}}if(c){c=Ext.StoreMgr.lookup(c);c.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError});b=true}this.store=c;if(b){this.onLoad(c,null,{})}},unbind:function(b){this.bindStore(null)},bind:function(b){this.bindStore(b)},onDestroy:function(){this.bindStore(null);Ext.PagingToolbar.superclass.onDestroy.call(this)}})})();Ext.reg("paging",Ext.PagingToolbar);Ext.History=(function(){var e,c;var k=false;var d;function g(){var l=top.location.href,m=l.indexOf("#");return m>=0?l.substr(m+1):null}function a(){c.value=d}function h(l){d=l;Ext.History.fireEvent("change",l)}function i(m){var l=['<html><body><div id="state">',Ext.util.Format.htmlEncode(m),"</div></body></html>"].join("");try{var o=e.contentWindow.document;o.open();o.write(l);o.close();return true}catch(n){return false}}function b(){if(!e.contentWindow||!e.contentWindow.document){setTimeout(b,10);return}var o=e.contentWindow.document;var m=o.getElementById("state");var l=m?m.innerText:null;var n=g();setInterval(function(){o=e.contentWindow.document;m=o.getElementById("state");var q=m?m.innerText:null;var p=g();if(q!==l){l=q;h(l);top.location.hash=l;n=l;a()}else{if(p!==n){n=p;i(p)}}},50);k=true;Ext.History.fireEvent("ready",Ext.History)}function j(){d=c.value?c.value:g();if(Ext.isIE){b()}else{var l=g();setInterval(function(){var m=g();if(m!==l){l=m;h(l);a()}},50);k=true;Ext.History.fireEvent("ready",Ext.History)}}return{fieldId:"x-history-field",iframeId:"x-history-frame",events:{},init:function(m,l){if(k){Ext.callback(m,l,[this]);return}if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(m,l)});return}c=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){e=Ext.getDom(Ext.History.iframeId)}this.addEvents("ready","change");if(m){this.on("ready",m,l,{single:true})}j()},add:function(l,m){if(m!==false){if(this.getToken()==l){return true}}if(Ext.isIE){return i(l)}else{top.location.hash=l;return true}},back:function(){history.go(-1)},forward:function(){history.go(1)},getToken:function(){return k?d:g()}}})();Ext.apply(Ext.History,new Ext.util.Observable());Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:"x-tip",floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,closeAction:"hide",initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title){this.elements+=",header"}},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable){this.addTool({id:"close",handler:this[this.closeAction],scope:this})}},showAt:function(a){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!="number")){this.doAutoWidth()}if(this.constrainPosition){a=this.el.adjustForConstraints(a)}this.setPagePosition(a[0],a[1])},doAutoWidth:function(a){a=a||0;var b=this.body.getTextWidth();if(this.title){b=Math.max(b,this.header.child("span").getTextWidth(this.title))}b+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr")+a;this.setWidth(b.constrain(this.minWidth,this.maxWidth));if(Ext.isIE7&&!this.repainted){this.el.repaint();this.repainted=true}},showBy:function(a,b){if(!this.rendered){this.render(Ext.getBody())}this.showAt(this.el.getAlignToXY(a,b||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=="boolean"?null:this.draggable);this.header.addClass("x-tip-draggable")}});Ext.reg("tip",Ext.Tip);Ext.Tip.DD=function(b,a){Ext.apply(this,a);this.tip=b;Ext.Tip.DD.superclass.constructor.call(this,b.el.id,"WindowDD-"+b.id);this.setHandleElId(b.header.id);this.scroll=false};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(a){this.tip.el.enableShadow(true)}});Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5000,trackMouse:false,anchorToTarget:true,anchorOffset:0,targetCounter:0,constrainPosition:false,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date();this.initTarget(this.target);this.origAnchor=this.anchor},onRender:function(b,a){Ext.ToolTip.superclass.onRender.call(this,b,a);this.anchorCls="x-tip-anchor-"+this.getAnchorPosition();this.anchorEl=this.el.createChild({cls:"x-tip-anchor "+this.anchorCls})},afterRender:function(){Ext.ToolTip.superclass.afterRender.call(this);this.anchorEl.setStyle("z-index",this.el.getZIndex()+1).setVisibilityMode(Ext.Element.DISPLAY)},initTarget:function(c){var a;if((a=Ext.get(c))){if(this.target){var b=Ext.get(this.target);this.mun(b,"mouseover",this.onTargetOver,this);this.mun(b,"mouseout",this.onTargetOut,this);this.mun(b,"mousemove",this.onMouseMove,this)}this.mon(a,{mouseover:this.onTargetOver,mouseout:this.onTargetOut,mousemove:this.onMouseMove,scope:this});this.target=a}if(this.anchor){this.anchorTarget=this.target}},onMouseMove:function(b){var a=this.delegate?b.getTarget(this.delegate):this.triggerElement=true;if(a){this.targetXY=b.getXY();if(a===this.triggerElement){if(!this.hidden&&this.trackMouse){this.setPagePosition(this.getTargetXY())}}else{this.hide();this.lastActive=new Date(0);this.onTargetOver(b)}}else{if(!this.closable&&this.isVisible()){this.hide()}}},getTargetXY:function(){if(this.delegate){this.anchorTarget=this.triggerElement}if(this.anchor){this.targetCounter++;var c=this.getOffsets(),l=(this.anchorToTarget&&!this.trackMouse)?this.el.getAlignToXY(this.anchorTarget,this.getAnchorAlign()):this.targetXY,a=Ext.lib.Dom.getViewWidth()-5,h=Ext.lib.Dom.getViewHeight()-5,i=document.documentElement,e=document.body,k=(i.scrollLeft||e.scrollLeft||0)+5,j=(i.scrollTop||e.scrollTop||0)+5,b=[l[0]+c[0],l[1]+c[1]],g=this.getSize();this.anchorEl.removeClass(this.anchorCls);if(this.targetCounter<2){if(b[0]<k){if(this.anchorToTarget){this.defaultAlign="l-r";if(this.mouseOffset){this.mouseOffset[0]*=-1}}this.anchor="left";return this.getTargetXY()}if(b[0]+g.width>a){if(this.anchorToTarget){this.defaultAlign="r-l";if(this.mouseOffset){this.mouseOffset[0]*=-1}}this.anchor="right";return this.getTargetXY()}if(b[1]<j){if(this.anchorToTarget){this.defaultAlign="t-b";if(this.mouseOffset){this.mouseOffset[1]*=-1}}this.anchor="top";return this.getTargetXY()}if(b[1]+g.height>h){if(this.anchorToTarget){this.defaultAlign="b-t";if(this.mouseOffset){this.mouseOffset[1]*=-1}}this.anchor="bottom";return this.getTargetXY()}}this.anchorCls="x-tip-anchor-"+this.getAnchorPosition();this.anchorEl.addClass(this.anchorCls);this.targetCounter=0;return b}else{var d=this.getMouseOffset();return[this.targetXY[0]+d[0],this.targetXY[1]+d[1]]}},getMouseOffset:function(){var a=this.anchor?[0,0]:[15,18];if(this.mouseOffset){a[0]+=this.mouseOffset[0];a[1]+=this.mouseOffset[1]}return a},getAnchorPosition:function(){if(this.anchor){this.tipAnchor=this.anchor.charAt(0)}else{var a=this.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!a){throw"AnchorTip.defaultAlign is invalid"}this.tipAnchor=a[1].charAt(0)}switch(this.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var b,a=this.getAnchorPosition().charAt(0);if(this.anchorToTarget&&!this.trackMouse){switch(a){case"t":b=[0,9];break;case"b":b=[0,-13];break;case"r":b=[-13,0];break;default:b=[9,0];break}}else{switch(a){case"t":b=[-15-this.anchorOffset,30];break;case"b":b=[-19-this.anchorOffset,-13-this.el.dom.offsetHeight];break;case"r":b=[-15-this.el.dom.offsetWidth,-13-this.anchorOffset];break;default:b=[25,-13-this.anchorOffset];break}}var c=this.getMouseOffset();b[0]+=c[0];b[1]+=c[1];return b},onTargetOver:function(b){if(this.disabled||b.within(this.target.dom,true)){return}var a=b.getTarget(this.delegate);if(a){this.triggerElement=a;this.clearTimer("hide");this.targetXY=b.getXY();this.delayShow()}},delayShow:function(){if(this.hidden&&!this.showTimer){if(this.lastActive.getElapsed()<this.quickShowInterval){this.show()}else{this.showTimer=this.show.defer(this.showDelay,this)}}else{if(!this.hidden&&this.autoHide!==false){this.show()}}},onTargetOut:function(a){if(this.disabled||a.within(this.target.dom,true)){return}this.clearTimer("show");if(this.autoHide!==false){this.delayHide()}},delayHide:function(){if(!this.hidden&&!this.hideTimer){this.hideTimer=this.hide.defer(this.hideDelay,this)}},hide:function(){this.clearTimer("dismiss");this.lastActive=new Date();if(this.anchorEl){this.anchorEl.hide()}Ext.ToolTip.superclass.hide.call(this);delete this.triggerElement},show:function(){if(this.anchor){this.showAt([-1000,-1000]);this.origConstrainPosition=this.constrainPosition;this.constrainPosition=false;this.anchor=this.origAnchor}this.showAt(this.getTargetXY());if(this.anchor){this.syncAnchor();this.anchorEl.show();this.constrainPosition=this.origConstrainPosition}else{this.anchorEl.hide()}},showAt:function(a){this.lastActive=new Date();this.clearTimers();Ext.ToolTip.superclass.showAt.call(this,a);if(this.dismissDelay&&this.autoHide!==false){this.dismissTimer=this.hide.defer(this.dismissDelay,this)}if(this.anchor&&!this.anchorEl.isVisible()){this.syncAnchor();this.anchorEl.show()}else{this.anchorEl.hide()}},syncAnchor:function(){var a,b,c;switch(this.tipAnchor.charAt(0)){case"t":a="b";b="tl";c=[20+this.anchorOffset,2];break;case"r":a="l";b="tr";c=[-2,11+this.anchorOffset];break;case"b":a="t";b="bl";c=[20+this.anchorOffset,-2];break;default:a="r";b="tl";c=[2,11+this.anchorOffset];break}this.anchorEl.alignTo(this.el,a+"-"+b,c)},setPagePosition:function(a,b){Ext.ToolTip.superclass.setPagePosition.call(this,a,b);if(this.anchor){this.syncAnchor()}},clearTimer:function(a){a=a+"Timer";clearTimeout(this[a]);delete this[a]},clearTimers:function(){this.clearTimer("show");this.clearTimer("dismiss");this.clearTimer("hide")},onShow:function(){Ext.ToolTip.superclass.onShow.call(this);Ext.getDoc().on("mousedown",this.onDocMouseDown,this)},onHide:function(){Ext.ToolTip.superclass.onHide.call(this);Ext.getDoc().un("mousedown",this.onDocMouseDown,this)},onDocMouseDown:function(a){if(this.autoHide!==true&&!this.closable&&!a.within(this.el.dom)){this.disable();this.doEnable.defer(100,this)}},doEnable:function(){if(!this.isDestroyed){this.enable()}},onDisable:function(){this.clearTimers();this.hide()},adjustPosition:function(a,d){if(this.contstrainPosition){var c=this.targetXY[1],b=this.getSize().height;if(d<=c&&(d+b)>=c){d=c-b-5}}return{x:a,y:d}},beforeDestroy:function(){this.clearTimers();Ext.destroy(this.anchorEl);delete this.anchorEl;delete this.target;delete this.anchorTarget;delete this.triggerElement;Ext.ToolTip.superclass.beforeDestroy.call(this)},onDestroy:function(){Ext.getDoc().un("mousedown",this.onDocMouseDown,this);Ext.ToolTip.superclass.onDestroy.call(this)}});Ext.reg("tooltip",Ext.ToolTip);Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this)},register:function(e){var h=Ext.isArray(e)?e:arguments;for(var g=0,a=h.length;g<a;g++){var l=h[g];var k=l.target;if(k){if(Ext.isArray(k)){for(var d=0,b=k.length;d<b;d++){this.targets[Ext.id(k[d])]=l}}else{this.targets[Ext.id(k)]=l}}}},unregister:function(a){delete this.targets[Ext.id(a)]},cancelShow:function(b){var a=this.activeTarget;b=Ext.get(b).dom;if(this.isVisible()){if(a&&a.el==b){this.hide()}}else{if(a&&a.el==b){this.clearTimer("show")}}},getTipCfg:function(d){var b=d.getTarget(),c,a;if(this.interceptTitles&&b.title&&Ext.isString(b.title)){c=b.title;b.qtip=c;b.removeAttribute("title");d.preventDefault()}else{a=this.tagConfig;c=b.qtip||Ext.fly(b).getAttribute(a.attribute,a.namespace)}return c},onTargetOver:function(i){if(this.disabled){return}this.targetXY=i.getXY();var c=i.getTarget();if(!c||c.nodeType!==1||c==document||c==document.body){return}if(this.activeTarget&&((c==this.activeTarget.el)||Ext.fly(this.activeTarget.el).contains(c))){this.clearTimer("hide");this.show();return}if(c&&this.targets[c.id]){this.activeTarget=this.targets[c.id];this.activeTarget.el=c;this.anchor=this.activeTarget.anchor;if(this.anchor){this.anchorTarget=c}this.delayShow();return}var g,h=Ext.fly(c),b=this.tagConfig,d=b.namespace;if(g=this.getTipCfg(i)){var a=h.getAttribute(b.hide,d);this.activeTarget={el:c,text:g,width:h.getAttribute(b.width,d),autoHide:a!="user"&&a!=="false",title:h.getAttribute(b.title,d),cls:h.getAttribute(b.cls,d),align:h.getAttribute(b.align,d)};this.anchor=h.getAttribute(b.anchor,d);if(this.anchor){this.anchorTarget=c}this.delayShow()}},onTargetOut:function(a){if(this.activeTarget&&a.within(this.activeTarget.el)&&!this.getTipCfg(a)){return}this.clearTimer("show");if(this.autoHide!==false){this.delayHide()}},showAt:function(b){var a=this.activeTarget;if(a){if(!this.rendered){this.render(Ext.getBody());this.activeTarget=a}if(a.width){this.setWidth(a.width);this.body.setWidth(this.adjustBodyWidth(a.width-this.getFrameWidth()));this.measureWidth=false}else{this.measureWidth=true}this.setTitle(a.title||"");this.body.update(a.text);this.autoHide=a.autoHide;this.dismissDelay=a.dismissDelay||this.dismissDelay;if(this.lastCls){this.el.removeClass(this.lastCls);delete this.lastCls}if(a.cls){this.el.addClass(a.cls);this.lastCls=a.cls}if(this.anchor){this.constrainPosition=false}else{if(a.align){b=this.el.getAlignToXY(a.el,a.align);this.constrainPosition=false}else{this.constrainPosition=true}}}Ext.QuickTip.superclass.showAt.call(this,b)},hide:function(){delete this.activeTarget;Ext.QuickTip.superclass.hide.call(this)}});Ext.reg("quicktip",Ext.QuickTip);Ext.QuickTips=function(){var b,a=[];return{init:function(c){if(!b){if(!Ext.isReady){Ext.onReady(function(){Ext.QuickTips.init(c)});return}b=new Ext.QuickTip({elements:"header,body"});if(c!==false){b.render(Ext.getBody())}}},enable:function(){if(b){a.pop();if(a.length<1){b.enable()}}},disable:function(){if(b){b.disable()}a.push(1)},isEnabled:function(){return b!==undefined&&!b.disabled},getQuickTip:function(){return b},register:function(){b.register.apply(b,arguments)},unregister:function(){b.unregister.apply(b,arguments)},tips:function(){b.register.apply(b,arguments)}}}();Ext.slider.Tip=Ext.extend(Ext.Tip,{minWidth:10,offsets:[0,-10],init:function(a){a.on({scope:this,dragstart:this.onSlide,drag:this.onSlide,dragend:this.hide,destroy:this.destroy})},onSlide:function(b,c,a){this.show();this.body.update(this.getText(a));this.doAutoWidth();this.el.alignTo(a.el,"b-t?",this.offsets)},getText:function(a){return String(a.value)}});Ext.ux.SliderTip=Ext.slider.Tip;Ext.tree.TreePanel=Ext.extend(Ext.Panel,{rootVisible:true,animate:Ext.enableFx,lines:true,enableDD:false,hlDrop:Ext.enableFx,pathSeparator:"/",bubbleEvents:[],initComponent:function(){Ext.tree.TreePanel.superclass.initComponent.call(this);if(!this.eventModel){this.eventModel=new Ext.tree.TreeEventModel(this)}var a=this.loader;if(!a){a=new Ext.tree.TreeLoader({dataUrl:this.dataUrl,requestMethod:this.requestMethod})}else{if(Ext.isObject(a)&&!a.load){a=new Ext.tree.TreeLoader(a)}}this.loader=a;this.nodeHash={};if(this.root){var b=this.root;delete this.root;this.setRootNode(b)}this.addEvents("append","remove","movenode","insert","beforeappend","beforeremove","beforemovenode","beforeinsert","beforeload","load","textchange","beforeexpandnode","beforecollapsenode","expandnode","disabledchange","collapsenode","beforeclick","click","containerclick","checkchange","beforedblclick","dblclick","containerdblclick","contextmenu","containercontextmenu","beforechildrenrendered","startdrag","enddrag","dragdrop","beforenodedrop","nodedrop","nodedragover");if(this.singleExpand){this.on("beforeexpandnode",this.restrictExpand,this)}},proxyNodeEvent:function(c,b,a,h,g,e,d){if(c=="collapse"||c=="expand"||c=="beforecollapse"||c=="beforeexpand"||c=="move"||c=="beforemove"){c=c+"node"}return this.fireEvent(c,b,a,h,g,e,d)},getRootNode:function(){return this.root},setRootNode:function(b){this.destroyRoot();if(!b.render){b=this.loader.createNode(b)}this.root=b;b.ownerTree=this;b.isRoot=true;this.registerNode(b);if(!this.rootVisible){var a=b.attributes.uiProvider;b.ui=a?new a(b):new Ext.tree.RootTreeNodeUI(b)}if(this.innerCt){this.clearInnerCt();this.renderRoot()}return b},clearInnerCt:function(){this.innerCt.update("")},renderRoot:function(){this.root.render();if(!this.rootVisible){this.root.renderChildren()}},getNodeById:function(a){return this.nodeHash[a]},registerNode:function(a){this.nodeHash[a.id]=a},unregisterNode:function(a){delete this.nodeHash[a.id]},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]"},restrictExpand:function(a){var b=a.parentNode;if(b){if(b.expandedChild&&b.expandedChild.parentNode==b){b.expandedChild.collapse()}b.expandedChild=a}},getChecked:function(b,c){c=c||this.root;var d=[];var e=function(){if(this.attributes.checked){d.push(!b?this:(b=="id"?this.id:this.attributes[b]))}};c.cascade(e);return d},getLoader:function(){return this.loader},expandAll:function(){this.root.expand(true)},collapseAll:function(){this.root.collapse(true)},getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.tree.DefaultSelectionModel()}return this.selModel},expandPath:function(g,a,h){if(Ext.isEmpty(g)){if(h){h(false,undefined)}return}a=a||"id";var d=g.split(this.pathSeparator);var c=this.root;if(c.attributes[a]!=d[1]){if(h){h(false,null)}return}var b=1;var e=function(){if(++b==d.length){if(h){h(true,c)}return}var i=c.findChild(a,d[b]);if(!i){if(h){h(false,c)}return}c=i;i.expand(false,false,e)};c.expand(false,false,e)},selectPath:function(e,a,g){if(Ext.isEmpty(e)){if(g){g(false,undefined)}return}a=a||"id";var c=e.split(this.pathSeparator),b=c.pop();if(c.length>1){var d=function(i,h){if(i&&h){var j=h.findChild(a,b);if(j){j.select();if(g){g(true,j)}}else{if(g){g(false,j)}}}else{if(g){g(false,j)}}};this.expandPath(c.join(this.pathSeparator),a,d)}else{this.root.select();if(g){g(true,this.root)}}},getTreeEl:function(){return this.body},onRender:function(b,a){Ext.tree.TreePanel.superclass.onRender.call(this,b,a);this.el.addClass("x-tree");this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")})},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll){Ext.dd.ScrollManager.register(this.body)}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true})}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll})}this.getSelectionModel().init(this)},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.renderRoot()},beforeDestroy:function(){if(this.rendered){Ext.dd.ScrollManager.unregister(this.body);Ext.destroy(this.dropZone,this.dragZone)}this.destroyRoot();Ext.destroy(this.loader);this.nodeHash=this.root=this.loader=null;Ext.tree.TreePanel.superclass.beforeDestroy.call(this)},destroyRoot:function(){if(this.root&&this.root.destroy){this.root.destroy(true)}}});Ext.tree.TreePanel.nodeTypes={};Ext.reg("treepanel",Ext.tree.TreePanel);Ext.tree.TreeEventModel=function(a){this.tree=a;this.tree.on("render",this.initEvents,this)};Ext.tree.TreeEventModel.prototype={initEvents:function(){var a=this.tree;if(a.trackMouseOver!==false){a.mon(a.innerCt,{scope:this,mouseover:this.delegateOver,mouseout:this.delegateOut})}a.mon(a.getTreeEl(),{scope:this,click:this.delegateClick,dblclick:this.delegateDblClick,contextmenu:this.delegateContextMenu})},getNode:function(b){var a;if(a=b.getTarget(".x-tree-node-el",10)){var c=Ext.fly(a,"_treeEvents").getAttribute("tree-node-id","ext");if(c){return this.tree.getNodeById(c)}}return null},getNodeTarget:function(b){var a=b.getTarget(".x-tree-node-icon",1);if(!a){a=b.getTarget(".x-tree-node-el",6)}return a},delegateOut:function(b,a){if(!this.beforeEvent(b)){return}if(b.getTarget(".x-tree-ec-icon",1)){var c=this.getNode(b);this.onIconOut(b,c);if(c==this.lastEcOver){delete this.lastEcOver}}if((a=this.getNodeTarget(b))&&!b.within(a,true)){this.onNodeOut(b,this.getNode(b))}},delegateOver:function(b,a){if(!this.beforeEvent(b)){return}if(Ext.isGecko&&!this.trackingDoc){Ext.getBody().on("mouseover",this.trackExit,this);this.trackingDoc=true}if(this.lastEcOver){this.onIconOut(b,this.lastEcOver);delete this.lastEcOver}if(b.getTarget(".x-tree-ec-icon",1)){this.lastEcOver=this.getNode(b);this.onIconOver(b,this.lastEcOver)}if(a=this.getNodeTarget(b)){this.onNodeOver(b,this.getNode(b))}},trackExit:function(a){if(this.lastOverNode){if(this.lastOverNode.ui&&!a.within(this.lastOverNode.ui.getEl())){this.onNodeOut(a,this.lastOverNode)}delete this.lastOverNode;Ext.getBody().un("mouseover",this.trackExit,this);this.trackingDoc=false}},delegateClick:function(b,a){if(this.beforeEvent(b)){if(b.getTarget("input[type=checkbox]",1)){this.onCheckboxClick(b,this.getNode(b))}else{if(b.getTarget(".x-tree-ec-icon",1)){this.onIconClick(b,this.getNode(b))}else{if(this.getNodeTarget(b)){this.onNodeClick(b,this.getNode(b))}}}}else{this.checkContainerEvent(b,"click")}},delegateDblClick:function(b,a){if(this.beforeEvent(b)){if(this.getNodeTarget(b)){this.onNodeDblClick(b,this.getNode(b))}}else{this.checkContainerEvent(b,"dblclick")}},delegateContextMenu:function(b,a){if(this.beforeEvent(b)){if(this.getNodeTarget(b)){this.onNodeContextMenu(b,this.getNode(b))}}else{this.checkContainerEvent(b,"contextmenu")}},checkContainerEvent:function(b,a){if(this.disabled){b.stopEvent();return false}this.onContainerEvent(b,a)},onContainerEvent:function(b,a){this.tree.fireEvent("container"+a,this.tree,b)},onNodeClick:function(b,a){a.ui.onClick(b)},onNodeOver:function(b,a){this.lastOverNode=a;a.ui.onOver(b)},onNodeOut:function(b,a){a.ui.onOut(b)},onIconOver:function(b,a){a.ui.addClass("x-tree-ec-over")},onIconOut:function(b,a){a.ui.removeClass("x-tree-ec-over")},onIconClick:function(b,a){a.ui.ecClick(b)},onCheckboxClick:function(b,a){a.ui.onCheckChange(b)},onNodeDblClick:function(b,a){a.ui.onDblClick(b)},onNodeContextMenu:function(b,a){a.ui.onContextMenu(b)},beforeEvent:function(b){var a=this.getNode(b);if(this.disabled||!a||!a.ui){b.stopEvent();return false}return true},disable:function(){this.disabled=true},enable:function(){this.disabled=false}};Ext.tree.DefaultSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(a){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,a);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this)},init:function(a){this.tree=a;a.mon(a.getTreeEl(),"keydown",this.onKeyDown,this);a.on("click",this.onNodeClick,this)},onNodeClick:function(a,b){this.select(a)},select:function(c,a){if(!Ext.fly(c.ui.wrap).isVisible()&&a){return a.call(this,c)}var b=this.selNode;if(c==b){c.ui.onSelectedChange(true)}else{if(this.fireEvent("beforeselect",this,c,b)!==false){if(b&&b.ui){b.ui.onSelectedChange(false)}this.selNode=c;c.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,c,b)}}return c},unselect:function(b,a){if(this.selNode==b){this.clearSelections(a)}},clearSelections:function(a){var b=this.selNode;if(b){b.ui.onSelectedChange(false);this.selNode=null;if(a!==true){this.fireEvent("selectionchange",this,null)}}return b},getSelectedNode:function(){return this.selNode},isSelected:function(a){return this.selNode==a},selectPrevious:function(a){if(!(a=a||this.selNode||this.lastSelNode)){return null}var c=a.previousSibling;if(c){if(!c.isExpanded()||c.childNodes.length<1){return this.select(c,this.selectPrevious)}else{var b=c.lastChild;while(b&&b.isExpanded()&&Ext.fly(b.ui.wrap).isVisible()&&b.childNodes.length>0){b=b.lastChild}return this.select(b,this.selectPrevious)}}else{if(a.parentNode&&(this.tree.rootVisible||!a.parentNode.isRoot)){return this.select(a.parentNode,this.selectPrevious)}}return null},selectNext:function(b){if(!(b=b||this.selNode||this.lastSelNode)){return null}if(b.firstChild&&b.isExpanded()&&Ext.fly(b.ui.wrap).isVisible()){return this.select(b.firstChild,this.selectNext)}else{if(b.nextSibling){return this.select(b.nextSibling,this.selectNext)}else{if(b.parentNode){var a=null;b.parentNode.bubble(function(){if(this.nextSibling){a=this.getOwnerTree().selModel.select(this.nextSibling,this.selectNext);return false}});return a}}}return null},onKeyDown:function(c){var b=this.selNode||this.lastSelNode;var d=this;if(!b){return}var a=c.getKey();switch(a){case c.DOWN:c.stopEvent();this.selectNext();break;case c.UP:c.stopEvent();this.selectPrevious();break;case c.RIGHT:c.preventDefault();if(b.hasChildNodes()){if(!b.isExpanded()){b.expand()}else{if(b.firstChild){this.select(b.firstChild,c)}}}break;case c.LEFT:c.preventDefault();if(b.hasChildNodes()&&b.isExpanded()){b.collapse()}else{if(b.parentNode&&(this.tree.rootVisible||b.parentNode!=this.tree.getRootNode())){this.select(b.parentNode,c)}}break}}});Ext.tree.MultiSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(a){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,a);Ext.tree.MultiSelectionModel.superclass.constructor.call(this)},init:function(a){this.tree=a;a.mon(a.getTreeEl(),"keydown",this.onKeyDown,this);a.on("click",this.onNodeClick,this)},onNodeClick:function(a,b){if(b.ctrlKey&&this.isSelected(a)){this.unselect(a)}else{this.select(a,b,b.ctrlKey)}},select:function(a,c,b){if(b!==true){this.clearSelections(true)}if(this.isSelected(a)){this.lastSelNode=a;return a}this.selNodes.push(a);this.selMap[a.id]=a;this.lastSelNode=a;a.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return a},unselect:function(b){if(this.selMap[b.id]){b.ui.onSelectedChange(false);var c=this.selNodes;var a=c.indexOf(b);if(a!=-1){this.selNodes.splice(a,1)}delete this.selMap[b.id];this.fireEvent("selectionchange",this,this.selNodes)}},clearSelections:function(b){var d=this.selNodes;if(d.length>0){for(var c=0,a=d.length;c<a;c++){d[c].ui.onSelectedChange(false)}this.selNodes=[];this.selMap={};if(b!==true){this.fireEvent("selectionchange",this,this.selNodes)}}},isSelected:function(a){return this.selMap[a.id]?true:false},getSelectedNodes:function(){return this.selNodes.concat([])},onKeyDown:Ext.tree.DefaultSelectionModel.prototype.onKeyDown,selectNext:Ext.tree.DefaultSelectionModel.prototype.selectNext,selectPrevious:Ext.tree.DefaultSelectionModel.prototype.selectPrevious});Ext.data.Tree=function(a){this.nodeHash={};this.root=null;if(a){this.setRootNode(a)}this.addEvents("append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert");Ext.data.Tree.superclass.constructor.call(this)};Ext.extend(Ext.data.Tree,Ext.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments)},getRootNode:function(){return this.root},setRootNode:function(a){this.root=a;a.ownerTree=this;a.isRoot=true;this.registerNode(a);return a},getNodeById:function(a){return this.nodeHash[a]},registerNode:function(a){this.nodeHash[a.id]=a},unregisterNode:function(a){delete this.nodeHash[a.id]},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]"}});Ext.data.Node=function(a){this.attributes=a||{};this.leaf=this.attributes.leaf;this.id=this.attributes.id;if(!this.id){this.id=Ext.id(null,"xnode-");this.attributes.id=this.id}this.childNodes=[];if(!this.childNodes.indexOf){this.childNodes.indexOf=function(d){for(var c=0,b=this.length;c<b;c++){if(this[c]==d){return c}}return-1}}this.parentNode=null;this.firstChild=null;this.lastChild=null;this.previousSibling=null;this.nextSibling=null;this.addEvents({append:true,remove:true,move:true,insert:true,beforeappend:true,beforeremove:true,beforemove:true,beforeinsert:true});this.listeners=this.attributes.listeners;Ext.data.Node.superclass.constructor.call(this)};Ext.extend(Ext.data.Node,Ext.util.Observable,{fireEvent:function(b){if(Ext.data.Node.superclass.fireEvent.apply(this,arguments)===false){return false}var a=this.getOwnerTree();if(a){if(a.proxyNodeEvent.apply(a,arguments)===false){return false}}return true},isLeaf:function(){return this.leaf===true},setFirstChild:function(a){this.firstChild=a},setLastChild:function(a){this.lastChild=a},isLast:function(){return(!this.parentNode?true:this.parentNode.lastChild==this)},isFirst:function(){return(!this.parentNode?true:this.parentNode.firstChild==this)},hasChildNodes:function(){return!this.isLeaf()&&this.childNodes.length>0},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes()},appendChild:function(e){var g=false;if(Ext.isArray(e)){g=e}else{if(arguments.length>1){g=arguments}}if(g){for(var d=0,a=g.length;d<a;d++){this.appendChild(g[d])}}else{if(this.fireEvent("beforeappend",this.ownerTree,this,e)===false){return false}var b=this.childNodes.length;var c=e.parentNode;if(c){if(e.fireEvent("beforemove",e.getOwnerTree(),e,c,this,b)===false){return false}c.removeChild(e)}b=this.childNodes.length;if(b===0){this.setFirstChild(e)}this.childNodes.push(e);e.parentNode=this;var h=this.childNodes[b-1];if(h){e.previousSibling=h;h.nextSibling=e}else{e.previousSibling=null}e.nextSibling=null;this.setLastChild(e);e.setOwnerTree(this.getOwnerTree());this.fireEvent("append",this.ownerTree,this,e,b);if(c){e.fireEvent("move",this.ownerTree,e,c,this,b)}return e}},removeChild:function(c,b){var a=this.childNodes.indexOf(c);if(a==-1){return false}if(this.fireEvent("beforeremove",this.ownerTree,this,c)===false){return false}this.childNodes.splice(a,1);if(c.previousSibling){c.previousSibling.nextSibling=c.nextSibling}if(c.nextSibling){c.nextSibling.previousSibling=c.previousSibling}if(this.firstChild==c){this.setFirstChild(c.nextSibling)}if(this.lastChild==c){this.setLastChild(c.previousSibling)}this.fireEvent("remove",this.ownerTree,this,c);if(b){c.destroy(true)}else{c.clear()}return c},clear:function(a){this.setOwnerTree(null,a);this.parentNode=this.previousSibling=this.nextSibling=null;if(a){this.firstChild=this.lastChild=null}},destroy:function(a){if(a===true){this.purgeListeners();this.clear(true);Ext.each(this.childNodes,function(b){b.destroy(true)});this.childNodes=null}else{this.remove(true)}},insertBefore:function(d,a){if(!a){return this.appendChild(d)}if(d==a){return false}if(this.fireEvent("beforeinsert",this.ownerTree,this,d,a)===false){return false}var b=this.childNodes.indexOf(a);var c=d.parentNode;var e=b;if(c==this&&this.childNodes.indexOf(d)<b){e--}if(c){if(d.fireEvent("beforemove",d.getOwnerTree(),d,c,this,b,a)===false){return false}c.removeChild(d)}if(e===0){this.setFirstChild(d)}this.childNodes.splice(e,0,d);d.parentNode=this;var g=this.childNodes[e-1];if(g){d.previousSibling=g;g.nextSibling=d}else{d.previousSibling=null}d.nextSibling=a;a.previousSibling=d;d.setOwnerTree(this.getOwnerTree());this.fireEvent("insert",this.ownerTree,this,d,a);if(c){d.fireEvent("move",this.ownerTree,d,c,this,e,a)}return d},remove:function(a){if(this.parentNode){this.parentNode.removeChild(this,a)}return this},removeAll:function(a){var c=this.childNodes,b;while((b=c[0])){this.removeChild(b,a)}return this},item:function(a){return this.childNodes[a]},replaceChild:function(a,c){var b=c?c.nextSibling:null;this.removeChild(c);this.insertBefore(a,b);return c},indexOf:function(a){return this.childNodes.indexOf(a)},getOwnerTree:function(){if(!this.ownerTree){var a=this;while(a){if(a.ownerTree){this.ownerTree=a.ownerTree;break}a=a.parentNode}}return this.ownerTree},getDepth:function(){var b=0;var a=this;while(a.parentNode){++b;a=a.parentNode}return b},setOwnerTree:function(a,b){if(a!=this.ownerTree){if(this.ownerTree){this.ownerTree.unregisterNode(this)}this.ownerTree=a;if(b!==true){Ext.each(this.childNodes,function(c){c.setOwnerTree(a)})}if(a){a.registerNode(this)}}},setId:function(b){if(b!==this.id){var a=this.ownerTree;if(a){a.unregisterNode(this)}this.id=this.attributes.id=b;if(a){a.registerNode(this)}this.onIdChange(b)}},onIdChange:Ext.emptyFn,getPath:function(c){c=c||"id";var e=this.parentNode;var a=[this.attributes[c]];while(e){a.unshift(e.attributes[c]);e=e.parentNode}var d=this.getOwnerTree().pathSeparator;return d+a.join(d)},bubble:function(c,b,a){var d=this;while(d){if(c.apply(b||d,a||[d])===false){break}d=d.parentNode}},cascade:function(g,e,b){if(g.apply(e||this,b||[this])!==false){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){d[c].cascade(g,e,b)}}},eachChild:function(g,e,b){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){if(g.apply(e||this,b||[d[c]])===false){break}}},findChild:function(b,c,a){return this.findChildBy(function(){return this.attributes[b]==c},null,a)},findChildBy:function(h,g,b){var e=this.childNodes,a=e.length,d=0,j,c;for(;d<a;d++){j=e[d];if(h.call(g||j,j)===true){return j}else{if(b){c=j.findChildBy(h,g,b);if(c!=null){return c}}}}return null},sort:function(e,d){var c=this.childNodes;var a=c.length;if(a>0){var g=d?function(){e.apply(d,arguments)}:e;c.sort(g);for(var b=0;b<a;b++){var h=c[b];h.previousSibling=c[b-1];h.nextSibling=c[b+1];if(b===0){this.setFirstChild(h)}if(b==a-1){this.setLastChild(h)}}}},contains:function(a){return a.isAncestor(this)},isAncestor:function(a){var b=this.parentNode;while(b){if(b==a){return true}b=b.parentNode}return false},toString:function(){return"[Node"+(this.id?" "+this.id:"")+"]"}});Ext.tree.TreeNode=function(a){a=a||{};if(Ext.isString(a)){a={text:a}}this.childrenRendered=false;this.rendered=false;Ext.tree.TreeNode.superclass.constructor.call(this,a);this.expanded=a.expanded===true;this.isTarget=a.isTarget!==false;this.draggable=a.draggable!==false&&a.allowDrag!==false;this.allowChildren=a.allowChildren!==false&&a.allowDrop!==false;this.text=a.text;this.disabled=a.disabled===true;this.hidden=a.hidden===true;this.addEvents("textchange","beforeexpand","beforecollapse","expand","disabledchange","collapse","beforeclick","click","checkchange","beforedblclick","dblclick","contextmenu","beforechildrenrendered");var b=this.attributes.uiProvider||this.defaultUI||Ext.tree.TreeNodeUI;this.ui=new b(this)};Ext.extend(Ext.tree.TreeNode,Ext.data.Node,{preventHScroll:true,isExpanded:function(){return this.expanded},getUI:function(){return this.ui},getLoader:function(){var a;return this.loader||((a=this.getOwnerTree())&&a.loader?a.loader:(this.loader=new Ext.tree.TreeLoader()))},setFirstChild:function(a){var b=this.firstChild;Ext.tree.TreeNode.superclass.setFirstChild.call(this,a);if(this.childrenRendered&&b&&a!=b){b.renderIndent(true,true)}if(this.rendered){this.renderIndent(true,true)}},setLastChild:function(b){var a=this.lastChild;Ext.tree.TreeNode.superclass.setLastChild.call(this,b);if(this.childrenRendered&&a&&b!=a){a.renderIndent(true,true)}if(this.rendered){this.renderIndent(true,true)}},appendChild:function(b){if(!b.render&&!Ext.isArray(b)){b=this.getLoader().createNode(b)}var a=Ext.tree.TreeNode.superclass.appendChild.call(this,b);if(a&&this.childrenRendered){a.render()}this.ui.updateExpandIcon();return a},removeChild:function(b,a){this.ownerTree.getSelectionModel().unselect(b);Ext.tree.TreeNode.superclass.removeChild.apply(this,arguments);if(!a){if(b.ui.rendered){b.ui.remove()}if(this.childNodes.length<1){this.collapse(false,false)}else{this.ui.updateExpandIcon()}if(!this.firstChild&&!this.isHiddenRoot()){this.childrenRendered=false}}return b},insertBefore:function(c,a){if(!c.render){c=this.getLoader().createNode(c)}var b=Ext.tree.TreeNode.superclass.insertBefore.call(this,c,a);if(b&&a&&this.childrenRendered){c.render()}this.ui.updateExpandIcon();return b},setText:function(b){var a=this.text;this.text=this.attributes.text=b;if(this.rendered){this.ui.onTextChange(this,b,a)}this.fireEvent("textchange",this,b,a)},select:function(){var a=this.getOwnerTree();if(a){a.getSelectionModel().select(this)}},unselect:function(a){var b=this.getOwnerTree();if(b){b.getSelectionModel().unselect(this,a)}},isSelected:function(){var a=this.getOwnerTree();return a?a.getSelectionModel().isSelected(this):false},expand:function(a,c,d,b){if(!this.expanded){if(this.fireEvent("beforeexpand",this,a,c)===false){return}if(!this.childrenRendered){this.renderChildren()}this.expanded=true;if(!this.isHiddenRoot()&&(this.getOwnerTree().animate&&c!==false)||c){this.ui.animExpand(function(){this.fireEvent("expand",this);this.runCallback(d,b||this,[this]);if(a===true){this.expandChildNodes(true)}}.createDelegate(this));return}else{this.ui.expand();this.fireEvent("expand",this);this.runCallback(d,b||this,[this])}}else{this.runCallback(d,b||this,[this])}if(a===true){this.expandChildNodes(true)}},runCallback:function(a,c,b){if(Ext.isFunction(a)){a.apply(c,b)}},isHiddenRoot:function(){return this.isRoot&&!this.getOwnerTree().rootVisible},collapse:function(b,g,h,e){if(this.expanded&&!this.isHiddenRoot()){if(this.fireEvent("beforecollapse",this,b,g)===false){return}this.expanded=false;if((this.getOwnerTree().animate&&g!==false)||g){this.ui.animCollapse(function(){this.fireEvent("collapse",this);this.runCallback(h,e||this,[this]);if(b===true){this.collapseChildNodes(true)}}.createDelegate(this));return}else{this.ui.collapse();this.fireEvent("collapse",this);this.runCallback(h,e||this,[this])}}else{if(!this.expanded){this.runCallback(h,e||this,[this])}}if(b===true){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){d[c].collapse(true,false)}}},delayedExpand:function(a){if(!this.expandProcId){this.expandProcId=this.expand.defer(a,this)}},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId)}this.expandProcId=false},toggle:function(){if(this.expanded){this.collapse()}else{this.expand()}},ensureVisible:function(c,b){var a=this.getOwnerTree();a.expandPath(this.parentNode?this.parentNode.getPath():this.getPath(),false,function(){var d=a.getNodeById(this.id);a.getTreeEl().scrollChildIntoView(d.ui.anchor);this.runCallback(c,b||this,[this])}.createDelegate(this))},expandChildNodes:function(b){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){d[c].expand(b)}},collapseChildNodes:function(b){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){d[c].collapse(b)}},disable:function(){this.disabled=true;this.unselect();if(this.rendered&&this.ui.onDisableChange){this.ui.onDisableChange(this,true)}this.fireEvent("disabledchange",this,true)},enable:function(){this.disabled=false;if(this.rendered&&this.ui.onDisableChange){this.ui.onDisableChange(this,false)}this.fireEvent("disabledchange",this,false)},renderChildren:function(b){if(b!==false){this.fireEvent("beforechildrenrendered",this)}var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){d[c].render(true)}this.childrenRendered=true},sort:function(e,d){Ext.tree.TreeNode.superclass.sort.apply(this,arguments);if(this.childrenRendered){var c=this.childNodes;for(var b=0,a=c.length;b<a;b++){c[b].render(true)}}},render:function(a){this.ui.render(a);if(!this.rendered){this.getOwnerTree().registerNode(this);this.rendered=true;if(this.expanded){this.expanded=false;this.expand(false,false)}}},renderIndent:function(b,e){if(e){this.ui.childIndent=null}this.ui.renderIndent();if(b===true&&this.childrenRendered){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++){d[c].renderIndent(true,e)}}},beginUpdate:function(){this.childrenRendered=false},endUpdate:function(){if(this.expanded&&this.rendered){this.renderChildren()}},destroy:function(a){if(a===true){this.unselect(true)}Ext.tree.TreeNode.superclass.destroy.call(this,a);Ext.destroy(this.ui,this.loader);this.ui=this.loader=null},onIdChange:function(a){this.ui.onIdChange(a)}});Ext.tree.TreePanel.nodeTypes.node=Ext.tree.TreeNode;Ext.tree.AsyncTreeNode=function(a){this.loaded=a&&a.loaded===true;this.loading=false;Ext.tree.AsyncTreeNode.superclass.constructor.apply(this,arguments);this.addEvents("beforeload","load")};Ext.extend(Ext.tree.AsyncTreeNode,Ext.tree.TreeNode,{expand:function(b,e,h,c){if(this.loading){var g;var d=function(){if(!this.loading){clearInterval(g);this.expand(b,e,h,c)}}.createDelegate(this);g=setInterval(d,200);return}if(!this.loaded){if(this.fireEvent("beforeload",this)===false){return}this.loading=true;this.ui.beforeLoad(this);var a=this.loader||this.attributes.loader||this.getOwnerTree().getLoader();if(a){a.load(this,this.loadComplete.createDelegate(this,[b,e,h,c]),this);return}}Ext.tree.AsyncTreeNode.superclass.expand.call(this,b,e,h,c)},isLoading:function(){return this.loading},loadComplete:function(a,c,d,b){this.loading=false;this.loaded=true;this.ui.afterLoad(this);this.fireEvent("load",this);this.expand(a,c,d,b)},isLoaded:function(){return this.loaded},hasChildNodes:function(){if(!this.isLeaf()&&!this.loaded){return true}else{return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this)}},reload:function(b,a){this.collapse(false,false);while(this.firstChild){this.removeChild(this.firstChild).destroy()}this.childrenRendered=false;this.loaded=false;if(this.isHiddenRoot()){this.expanded=false}this.expand(false,false,b,a)}});Ext.tree.TreePanel.nodeTypes.async=Ext.tree.AsyncTreeNode;Ext.tree.TreeNodeUI=function(a){this.node=a;this.rendered=false;this.animating=false;this.wasLeaf=true;this.ecc="x-tree-ec-icon x-tree-elbow";this.emptyIcon=Ext.BLANK_IMAGE_URL};Ext.tree.TreeNodeUI.prototype={removeChild:function(a){if(this.rendered){this.ctNode.removeChild(a.ui.getEl())}},beforeLoad:function(){this.addClass("x-tree-node-loading")},afterLoad:function(){this.removeClass("x-tree-node-loading")},onTextChange:function(b,c,a){if(this.rendered){this.textNode.innerHTML=c}},onDisableChange:function(a,b){this.disabled=b;if(this.checkbox){this.checkbox.disabled=b}if(b){this.addClass("x-tree-node-disabled")}else{this.removeClass("x-tree-node-disabled")}},onSelectedChange:function(a){if(a){this.focus();this.addClass("x-tree-selected")}else{this.removeClass("x-tree-selected")}},onMove:function(a,h,e,g,d,b){this.childIndent=null;if(this.rendered){var i=g.ui.getContainer();if(!i){this.holder=document.createElement("div");this.holder.appendChild(this.wrap);return}var c=b?b.ui.getEl():null;if(c){i.insertBefore(this.wrap,c)}else{i.appendChild(this.wrap)}this.node.renderIndent(true,e!=g)}},addClass:function(a){if(this.elNode){Ext.fly(this.elNode).addClass(a)}},removeClass:function(a){if(this.elNode){Ext.fly(this.elNode).removeClass(a)}},remove:function(){if(this.rendered){this.holder=document.createElement("div");this.holder.appendChild(this.wrap)}},fireEvent:function(){return this.node.fireEvent.apply(this.node,arguments)},initEvents:function(){this.node.on("move",this.onMove,this);if(this.node.disabled){this.onDisableChange(this.node,true)}if(this.node.hidden){this.hide()}var b=this.node.getOwnerTree();var a=b.enableDD||b.enableDrag||b.enableDrop;if(a&&(!this.node.isRoot||b.rootVisible)){Ext.dd.Registry.register(this.elNode,{node:this.node,handles:this.getDDHandles(),isHandle:false})}},getDDHandles:function(){return[this.iconNode,this.textNode,this.elNode]},hide:function(){this.node.hidden=true;if(this.wrap){this.wrap.style.display="none"}},show:function(){this.node.hidden=false;if(this.wrap){this.wrap.style.display=""}},onContextMenu:function(a){if(this.node.hasListener("contextmenu")||this.node.getOwnerTree().hasListener("contextmenu")){a.preventDefault();this.focus();this.fireEvent("contextmenu",this.node,a)}},onClick:function(c){if(this.dropping){c.stopEvent();return}if(this.fireEvent("beforeclick",this.node,c)!==false){var b=c.getTarget("a");if(!this.disabled&&this.node.attributes.href&&b){this.fireEvent("click",this.node,c);return}else{if(b&&c.ctrlKey){c.stopEvent()}}c.preventDefault();if(this.disabled){return}if(this.node.attributes.singleClickExpand&&!this.animating&&this.node.isExpandable()){this.node.toggle()}this.fireEvent("click",this.node,c)}else{c.stopEvent()}},onDblClick:function(a){a.preventDefault();if(this.disabled){return}if(this.fireEvent("beforedblclick",this.node,a)!==false){if(this.checkbox){this.toggleCheck()}if(!this.animating&&this.node.isExpandable()){this.node.toggle()}this.fireEvent("dblclick",this.node,a)}},onOver:function(a){this.addClass("x-tree-node-over")},onOut:function(a){this.removeClass("x-tree-node-over")},onCheckChange:function(){var a=this.checkbox.checked;this.checkbox.defaultChecked=a;this.node.attributes.checked=a;this.fireEvent("checkchange",this.node,a)},ecClick:function(a){if(!this.animating&&this.node.isExpandable()){this.node.toggle()}},startDrop:function(){this.dropping=true},endDrop:function(){setTimeout(function(){this.dropping=false}.createDelegate(this),50)},expand:function(){this.updateExpandIcon();this.ctNode.style.display=""},focus:function(){if(!this.node.preventHScroll){try{this.anchor.focus()}catch(c){}}else{try{var b=this.node.getOwnerTree().getTreeEl().dom;var a=b.scrollLeft;this.anchor.focus();b.scrollLeft=a}catch(c){}}},toggleCheck:function(b){var a=this.checkbox;if(a){a.checked=(b===undefined?!a.checked:b);this.onCheckChange()}},blur:function(){try{this.anchor.blur()}catch(a){}},animExpand:function(b){var a=Ext.get(this.ctNode);a.stopFx();if(!this.node.isExpandable()){this.updateExpandIcon();this.ctNode.style.display="";Ext.callback(b);return}this.animating=true;this.updateExpandIcon();a.slideIn("t",{callback:function(){this.animating=false;Ext.callback(b)},scope:this,duration:this.node.ownerTree.duration||0.25})},highlight:function(){var a=this.node.getOwnerTree();Ext.fly(this.wrap).highlight(a.hlColor||"C3DAF9",{endColor:a.hlBaseColor})},collapse:function(){this.updateExpandIcon();this.ctNode.style.display="none"},animCollapse:function(b){var a=Ext.get(this.ctNode);a.enableDisplayMode("block");a.stopFx();this.animating=true;this.updateExpandIcon();a.slideOut("t",{callback:function(){this.animating=false;Ext.callback(b)},scope:this,duration:this.node.ownerTree.duration||0.25})},getContainer:function(){return this.ctNode},getEl:function(){return this.wrap},appendDDGhost:function(a){a.appendChild(this.elNode.cloneNode(true))},getDDRepairXY:function(){return Ext.lib.Dom.getXY(this.iconNode)},onRender:function(){this.render()},render:function(c){var e=this.node,b=e.attributes;var d=e.parentNode?e.parentNode.ui.getContainer():e.ownerTree.innerCt.dom;if(!this.rendered){this.rendered=true;this.renderElements(e,b,d,c);if(b.qtip){if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext","qtip",b.qtip);if(b.qtipTitle){this.textNode.setAttributeNS("ext","qtitle",b.qtipTitle)}}else{this.textNode.setAttribute("ext:qtip",b.qtip);if(b.qtipTitle){this.textNode.setAttribute("ext:qtitle",b.qtipTitle)}}}else{if(b.qtipCfg){b.qtipCfg.target=Ext.id(this.textNode);Ext.QuickTips.register(b.qtipCfg)}}this.initEvents();if(!this.node.expanded){this.updateExpandIcon(true)}}else{if(c===true){d.appendChild(this.wrap)}}},renderElements:function(e,k,j,l){this.indentMarkup=e.parentNode?e.parentNode.ui.getChildIndent():"";var g=Ext.isBoolean(k.checked),b,c=k.href?k.href:Ext.isGecko?"":"#",d=['<li class="x-tree-node"><div ext:tree-node-id="',e.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',k.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img src="',k.icon||this.emptyIcon,'" class="x-tree-node-icon',(k.icon?" x-tree-node-inline-icon":""),(k.iconCls?" "+k.iconCls:""),'" unselectable="on" />',g?('<input class="x-tree-node-cb" type="checkbox" '+(k.checked?'checked="checked" />':"/>")):"",'<a hidefocus="on" class="x-tree-node-anchor" href="',c,'" tabIndex="1" ',k.hrefTarget?' target="'+k.hrefTarget+'"':"",'><span unselectable="on">',e.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");if(l!==true&&e.nextSibling&&(b=e.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,d)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",j,d)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var i=this.elNode.childNodes;this.indentNode=i[0];this.ecNode=i[1];this.iconNode=i[2];var h=3;if(g){this.checkbox=i[3];this.checkbox.defaultChecked=this.checkbox.checked;h++}this.anchor=i[h];this.textNode=i[h].firstChild},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return this.checkbox?this.checkbox.checked:false},updateExpandIcon:function(){if(this.rendered){var g=this.node,d,c,a=g.isLast()?"x-tree-elbow-end":"x-tree-elbow",e=g.hasChildNodes();if(e||g.attributes.expandable){if(g.expanded){a+="-minus";d="x-tree-node-collapsed";c="x-tree-node-expanded"}else{a+="-plus";d="x-tree-node-expanded";c="x-tree-node-collapsed"}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false}if(this.c1!=d||this.c2!=c){Ext.fly(this.elNode).replaceClass(d,c);this.c1=d;this.c2=c}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-collapsed");delete this.c1;delete this.c2;this.wasLeaf=true}}var b="x-tree-ec-icon "+a;if(this.ecc!=b){this.ecNode.className=b;this.ecc=b}}},onIdChange:function(a){if(this.rendered){this.elNode.setAttribute("ext:tree-node-id",a)}},getChildIndent:function(){if(!this.childIndent){var a=[],b=this.node;while(b){if(!b.isRoot||(b.isRoot&&b.ownerTree.rootVisible)){if(!b.isLast()){a.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line" />')}else{a.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon" />')}}b=b.parentNode}this.childIndent=a.join("")}return this.childIndent},renderIndent:function(){if(this.rendered){var a="",b=this.node.parentNode;if(b){a=b.ui.getChildIndent()}if(this.indentMarkup!=a){this.indentNode.innerHTML=a;this.indentMarkup=a}this.updateExpandIcon()}},destroy:function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id)}Ext.each(["textnode","anchor","checkbox","indentNode","ecNode","iconNode","elNode","ctNode","wrap","holder"],function(a){if(this[a]){Ext.fly(this[a]).remove();delete this[a]}},this);delete this.node}};Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var a=this.node.ownerTree.innerCt.dom;this.node.expanded=true;a.innerHTML='<div class="x-tree-root-node"></div>';this.wrap=this.ctNode=a.firstChild}},collapse:Ext.emptyFn,expand:Ext.emptyFn});Ext.tree.TreeLoader=function(a){this.baseParams={};Ext.apply(this,a);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this);if(Ext.isString(this.paramOrder)){this.paramOrder=this.paramOrder.split(/[\s,|]/)}};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,paramOrder:undefined,paramsAsHash:false,nodeParameter:"node",directFn:undefined,load:function(b,c,a){if(this.clearOnLoad){while(b.firstChild){b.removeChild(b.firstChild)}}if(this.doPreload(b)){this.runCallback(c,a||b,[b])}else{if(this.directFn||this.dataUrl||this.url){this.requestData(b,c,a||b)}}},doPreload:function(d){if(d.attributes.children){if(d.childNodes.length<1){var c=d.attributes.children;d.beginUpdate();for(var b=0,a=c.length;b<a;b++){var e=d.appendChild(this.createNode(c[b]));if(this.preloadChildren){this.doPreload(e)}}d.endUpdate()}return true}return false},getParams:function(g){var e=Ext.apply({},this.baseParams),h=this.nodeParameter,b=this.paramOrder;h&&(e[h]=g.id);if(this.directFn){var c=[g.id];if(b){if(h&&b.indexOf(h)>-1){c=[]}for(var d=0,a=b.length;d<a;d++){c.push(e[b[d]])}}else{if(this.paramsAsHash){c=[e]}}return c}else{return e}},requestData:function(c,d,b){if(this.fireEvent("beforeload",this,c,d)!==false){if(this.directFn){var a=this.getParams(c);a.push(this.processDirectResponse.createDelegate(this,[{callback:d,node:c,scope:b}],true));this.directFn.apply(window,a)}else{this.transId=Ext.Ajax.request({method:this.requestMethod,url:this.dataUrl||this.url,success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{callback:d,node:c,scope:b},params:this.getParams(c)})}}else{this.runCallback(d,b||c,[])}},processDirectResponse:function(a,b,c){if(b.status){this.handleResponse({responseData:Ext.isArray(a)?a:null,responseText:a,argument:c})}else{this.handleFailure({argument:c})}},runCallback:function(a,c,b){if(Ext.isFunction(a)){a.apply(c,b)}},isLoading:function(){return!!this.transId},abort:function(){if(this.isLoading()){Ext.Ajax.abort(this.transId)}},createNode:function(attr){if(this.baseAttrs){Ext.applyIf(attr,this.baseAttrs)}if(this.applyLoader!==false&&!attr.loader){attr.loader=this}if(Ext.isString(attr.uiProvider)){attr.uiProvider=this.uiProviders[attr.uiProvider]||eval(attr.uiProvider)}if(attr.nodeType){return new Ext.tree.TreePanel.nodeTypes[attr.nodeType](attr)}else{return attr.leaf?new Ext.tree.TreeNode(attr):new Ext.tree.AsyncTreeNode(attr)}},processResponse:function(d,c,k,l){var m=d.responseText;try{var a=d.responseData||Ext.decode(m);c.beginUpdate();for(var g=0,h=a.length;g<h;g++){var b=this.createNode(a[g]);if(b){c.appendChild(b)}}c.endUpdate();this.runCallback(k,l||c,[c])}catch(j){this.handleFailure(d)}},handleResponse:function(c){this.transId=false;var b=c.argument;this.processResponse(c,b.node,b.callback,b.scope);this.fireEvent("load",this,b.node,c)},handleFailure:function(c){this.transId=false;var b=c.argument;this.fireEvent("loadexception",this,b.node,c);this.runCallback(b.callback,b.scope||b.node,[b.node])},destroy:function(){this.abort();this.purgeListeners()}});Ext.tree.TreeFilter=function(a,b){this.tree=a;this.filtered={};Ext.apply(this,b)};Ext.tree.TreeFilter.prototype={clearBlank:false,reverse:false,autoClear:false,remove:false,filter:function(d,a,b){a=a||"text";var c;if(typeof d=="string"){var e=d.length;if(e==0&&this.clearBlank){this.clear();return}d=d.toLowerCase();c=function(g){return g.attributes[a].substr(0,e).toLowerCase()==d}}else{if(d.exec){c=function(g){return d.test(g.attributes[a])}}else{throw"Illegal filter type, must be string or regex"}}this.filterBy(c,null,b)},filterBy:function(d,c,b){b=b||this.tree.root;if(this.autoClear){this.clear()}var a=this.filtered,i=this.reverse;var e=function(k){if(k==b){return true}if(a[k.id]){return false}var j=d.call(c||k,k);if(!j||i){a[k.id]=k;k.ui.hide();return false}return true};b.cascade(e);if(this.remove){for(var h in a){if(typeof h!="function"){var g=a[h];if(g&&g.parentNode){g.parentNode.removeChild(g)}}}}},clear:function(){var b=this.tree;var a=this.filtered;for(var d in a){if(typeof d!="function"){var c=a[d];if(c){c.ui.show()}}}this.filtered={}}};Ext.tree.TreeSorter=function(b,c){Ext.apply(this,c);b.on("beforechildrenrendered",this.doSort,this);b.on("append",this.updateSort,this);b.on("insert",this.updateSort,this);b.on("textchange",this.updateSortParent,this);var e=this.dir&&this.dir.toLowerCase()=="desc";var g=this.property||"text";var h=this.sortType;var a=this.folderSort;var d=this.caseSensitive===true;var i=this.leafAttr||"leaf";this.sortFn=function(k,j){if(a){if(k.attributes[i]&&!j.attributes[i]){return 1}if(!k.attributes[i]&&j.attributes[i]){return-1}}var m=h?h(k):(d?k.attributes[g]:k.attributes[g].toUpperCase());var l=h?h(j):(d?j.attributes[g]:j.attributes[g].toUpperCase());if(m<l){return e?+1:-1}else{if(m>l){return e?-1:+1}else{return 0}}}};Ext.tree.TreeSorter.prototype={doSort:function(a){a.sort(this.sortFn)},compareNodes:function(b,a){return(b.text.toUpperCase()>a.text.toUpperCase()?1:-1)},updateSort:function(a,b){if(b.childrenRendered){this.doSort.defer(1,this,[b])}},updateSortParent:function(a){var b=a.parentNode;if(b&&b.childrenRendered){this.doSort.defer(1,this,[b])}}};if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(a,b){this.allowParentInsert=b.allowParentInsert||false;this.allowContainerDrop=b.allowContainerDrop||false;this.appendOnly=b.appendOnly||false;Ext.tree.TreeDropZone.superclass.constructor.call(this,a.getTreeEl(),b);this.tree=a;this.dragOverData={};this.lastInsertClass="x-tree-no-status"};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(a){if(a.hasChildNodes()&&!a.isExpanded()){a.expand(false,null,this.triggerCacheRefresh.createDelegate(this))}},queueExpand:function(a){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[a])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},isValidDropPoint:function(a,k,i,d,c){if(!a||!c){return false}var g=a.node;var h=c.node;if(!(g&&g.isTarget&&k)){return false}if(k=="append"&&g.allowChildren===false){return false}if((k=="above"||k=="below")&&(g.parentNode&&g.parentNode.allowChildren===false)){return false}if(h&&(g==h||h.contains(g))){return false}var b=this.dragOverData;b.tree=this.tree;b.target=g;b.data=c;b.point=k;b.source=i;b.rawEvent=d;b.dropNode=h;b.cancel=false;var j=this.tree.fireEvent("nodedragover",b);return b.cancel===false&&j!==false},getDropPoint:function(h,g,l){var m=g.node;if(m.isRoot){return m.allowChildren!==false?"append":false}var c=g.ddel;var o=Ext.lib.Dom.getY(c),j=o+c.offsetHeight;var i=Ext.lib.Event.getPageY(h);var k=m.allowChildren===false||m.isLeaf();if(this.appendOnly||m.parentNode.allowChildren===false){return k?false:"append"}var d=false;if(!this.allowParentInsert){d=m.hasChildNodes()&&m.isExpanded()}var a=(j-o)/(k?2:3);if(i>=o&&i<(o+a)){return"above"}else{if(!d&&(k||i>=j-a&&i<=j)){return"below"}else{return"append"}}},onNodeEnter:function(d,a,c,b){this.cancelExpand()},onContainerOver:function(a,c,b){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",a,c,b)){return this.dropAllowed}return this.dropNotAllowed},onNodeOver:function(b,i,h,g){var k=this.getDropPoint(h,b,i);var c=b.node;if(!this.expandProcId&&k=="append"&&c.hasChildNodes()&&!b.node.isExpanded()){this.queueExpand(c)}else{if(k!="append"){this.cancelExpand()}}var d=this.dropNotAllowed;if(this.isValidDropPoint(b,k,i,h,g)){if(k){var a=b.ddel;var j;if(k=="above"){d=b.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";j="x-tree-drag-insert-above"}else{if(k=="below"){d=b.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";j="x-tree-drag-insert-below"}else{d="x-tree-drop-ok-append";j="x-tree-drag-append"}}if(this.lastInsertClass!=j){Ext.fly(a).replaceClass(this.lastInsertClass,j);this.lastInsertClass=j}}}return d},onNodeOut:function(d,a,c,b){this.cancelExpand();this.removeDropIndicators(d)},onNodeDrop:function(i,b,h,d){var a=this.getDropPoint(h,i,b);var g=i.node;g.ui.startDrop();if(!this.isValidDropPoint(i,a,b,h,d)){g.ui.endDrop();return false}var c=d.node||(b.getTreeNode?b.getTreeNode(d,g,a,h):null);return this.processDrop(g,d,a,b,h,c)},onContainerDrop:function(a,g,c){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",a,g,c)){var d=this.tree.getRootNode();d.ui.startDrop();var b=c.node||(a.getTreeNode?a.getTreeNode(c,d,"append",g):null);return this.processDrop(d,c,"append",a,g,b)}return false},processDrop:function(j,h,b,a,i,d){var g={tree:this.tree,target:j,data:h,point:b,source:a,rawEvent:i,dropNode:d,cancel:!d,dropStatus:false};var c=this.tree.fireEvent("beforenodedrop",g);if(c===false||g.cancel===true||!g.dropNode){j.ui.endDrop();return g.dropStatus}j=g.target;if(b=="append"&&!j.isExpanded()){j.expand(false,null,function(){this.completeDrop(g)}.createDelegate(this))}else{this.completeDrop(g)}return true},completeDrop:function(h){var d=h.dropNode,e=h.point,c=h.target;if(!Ext.isArray(d)){d=[d]}var g;for(var b=0,a=d.length;b<a;b++){g=d[b];if(e=="above"){c.parentNode.insertBefore(g,c)}else{if(e=="below"){c.parentNode.insertBefore(g,c.nextSibling)}else{c.appendChild(g)}}}g.ui.focus();if(Ext.enableFx&&this.tree.hlDrop){g.ui.highlight()}c.ui.endDrop();this.tree.fireEvent("nodedrop",h)},afterNodeMoved:function(a,c,g,d,b){if(Ext.enableFx&&this.tree.hlDrop){b.ui.focus();b.ui.highlight()}this.tree.fireEvent("nodedrop",this.tree,d,c,a,g)},getTree:function(){return this.tree},removeDropIndicators:function(b){if(b&&b.ddel){var a=b.ddel;Ext.fly(a).removeClass(["x-tree-drag-insert-above","x-tree-drag-insert-below","x-tree-drag-append"]);this.lastInsertClass="_noclass"}},beforeDragDrop:function(b,a,c){this.cancelExpand();return true},afterRepair:function(a){if(a&&Ext.enableFx){a.node.ui.highlight()}this.hideProxy()}})}if(Ext.dd.DragZone){Ext.tree.TreeDragZone=function(a,b){Ext.tree.TreeDragZone.superclass.constructor.call(this,a.innerCt,b);this.tree=a};Ext.extend(Ext.tree.TreeDragZone,Ext.dd.DragZone,{ddGroup:"TreeDD",onBeforeDrag:function(a,b){var c=a.node;return c&&c.draggable&&!c.disabled},onInitDrag:function(b){var a=this.dragData;this.tree.getSelectionModel().select(a.node);this.tree.eventModel.disable();this.proxy.update("");a.node.ui.appendDDGhost(this.proxy.ghost.dom);this.tree.fireEvent("startdrag",this.tree,a.node,b)},getRepairXY:function(b,a){return a.node.ui.getDDRepairXY()},onEndDrag:function(a,b){this.tree.eventModel.enable.defer(100,this.tree.eventModel);this.tree.fireEvent("enddrag",this.tree,a.node,b)},onValidDrop:function(a,b,c){this.tree.fireEvent("dragdrop",this.tree,this.dragData.node,a,b);this.hideProxy()},beforeInvalidDrop:function(a,c){var b=this.tree.getSelectionModel();b.clearSelections();b.select(this.dragData.node)},afterRepair:function(){if(Ext.enableFx&&this.tree.hlDrop){Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9")}this.dragging=false}})}Ext.tree.TreeEditor=function(a,c,b){c=c||{};var d=c.events?c:new Ext.form.TextField(c);Ext.tree.TreeEditor.superclass.constructor.call(this,d,b);this.tree=a;if(!a.rendered){a.on("render",this.initEditor,this)}else{this.initEditor(a)}};Ext.extend(Ext.tree.TreeEditor,Ext.Editor,{alignment:"l-l",autoSize:false,hideEl:false,cls:"x-small-editor x-tree-editor",shim:false,shadow:"frame",maxWidth:250,editDelay:350,initEditor:function(a){a.on({scope:this,beforeclick:this.beforeNodeClick,dblclick:this.onNodeDblClick});this.on({scope:this,complete:this.updateNode,beforestartedit:this.fitToTree,specialkey:this.onSpecialKey});this.on("startedit",this.bindScroll,this,{delay:10})},fitToTree:function(b,c){var e=this.tree.getTreeEl().dom,d=c.dom;if(e.scrollLeft>d.offsetLeft){e.scrollLeft=d.offsetLeft}var a=Math.min(this.maxWidth,(e.clientWidth>20?e.clientWidth:e.offsetWidth)-Math.max(0,d.offsetLeft-e.scrollLeft)-5);this.setSize(a,"")},triggerEdit:function(a,c){this.completeEdit();if(a.attributes.editable!==false){this.editNode=a;if(this.tree.autoScroll){Ext.fly(a.ui.getEl()).scrollIntoView(this.tree.body)}var b=a.text||"";if(!Ext.isGecko&&Ext.isEmpty(a.text)){a.setText("&#160;")}this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[a.ui.textNode,b]);return false}},bindScroll:function(){this.tree.getTreeEl().on("scroll",this.cancelEdit,this)},beforeNodeClick:function(a,b){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(a)){b.stopEvent();return this.triggerEdit(a)}},onNodeDblClick:function(a,b){clearTimeout(this.autoEditTimer)},updateNode:function(a,b){this.tree.getTreeEl().un("scroll",this.cancelEdit,this);this.editNode.setText(b)},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50,this.editNode.ui)}},onSpecialKey:function(c,b){var a=b.getKey();if(a==b.ESC){b.stopEvent();this.cancelEdit()}else{if(a==b.ENTER&&!b.hasModifier()){b.stopEvent();this.completeEdit()}}},onDestroy:function(){clearTimeout(this.autoEditTimer);Ext.tree.TreeEditor.superclass.onDestroy.call(this);var a=this.tree;a.un("beforeclick",this.beforeNodeClick,this);a.un("dblclick",this.onNodeDblClick,this)}});var swfobject=function(){var E="undefined",s="object",T="Shockwave Flash",X="ShockwaveFlash.ShockwaveFlash",r="application/x-shockwave-flash",S="SWFObjectExprInst",y="onreadystatechange",P=window,k=document,u=navigator,U=false,V=[i],p=[],O=[],J=[],m,R,F,C,K=false,a=false,o,H,n=true,N=function(){var ab=typeof k.getElementById!=E&&typeof k.getElementsByTagName!=E&&typeof k.createElement!=E,ai=u.userAgent.toLowerCase(),Z=u.platform.toLowerCase(),af=Z?/win/.test(Z):/win/.test(ai),ad=Z?/mac/.test(Z):/mac/.test(ai),ag=/webkit/.test(ai)?parseFloat(ai.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,Y=!+"\v1",ah=[0,0,0],ac=null;if(typeof u.plugins!=E&&typeof u.plugins[T]==s){ac=u.plugins[T].description;if(ac&&!(typeof u.mimeTypes!=E&&u.mimeTypes[r]&&!u.mimeTypes[r].enabledPlugin)){U=true;Y=false;ac=ac.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ah[0]=parseInt(ac.replace(/^(.*)\..*$/,"$1"),10);ah[1]=parseInt(ac.replace(/^.*\.(.*)\s.*$/,"$1"),10);ah[2]=/[a-zA-Z]/.test(ac)?parseInt(ac.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof P.ActiveXObject!=E){try{var ae=new ActiveXObject(X);if(ae){ac=ae.GetVariable("$version");if(ac){Y=true;ac=ac.split(" ")[1].split(",");ah=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}}catch(aa){}}}return{w3:ab,pv:ah,wk:ag,ie:Y,win:af,mac:ad}}(),l=function(){if(!N.w3){return}if((typeof k.readyState!=E&&k.readyState=="complete")||(typeof k.readyState==E&&(k.getElementsByTagName("body")[0]||k.body))){g()}if(!K){if(typeof k.addEventListener!=E){k.addEventListener("DOMContentLoaded",g,false)}if(N.ie&&N.win){k.attachEvent(y,function(){if(k.readyState=="complete"){k.detachEvent(y,arguments.callee);g()}});if(P==top){(function(){if(K){return}try{k.documentElement.doScroll("left")}catch(Y){setTimeout(arguments.callee,0);return}g()})()}}if(N.wk){(function(){if(K){return}if(!/loaded|complete/.test(k.readyState)){setTimeout(arguments.callee,0);return}g()})()}t(g)}}();function g(){if(K){return}try{var aa=k.getElementsByTagName("body")[0].appendChild(D("span"));aa.parentNode.removeChild(aa)}catch(ab){return}K=true;var Y=V.length;for(var Z=0;Z<Y;Z++){V[Z]()}}function L(Y){if(K){Y()}else{V[V.length]=Y}}function t(Z){if(typeof P.addEventListener!=E){P.addEventListener("load",Z,false)}else{if(typeof k.addEventListener!=E){k.addEventListener("load",Z,false)}else{if(typeof P.attachEvent!=E){j(P,"onload",Z)}else{if(typeof P.onload=="function"){var Y=P.onload;P.onload=function(){Y();Z()}}else{P.onload=Z}}}}}function i(){if(U){W()}else{I()}}function W(){var Y=k.getElementsByTagName("body")[0];var ab=D(s);ab.setAttribute("type",r);var aa=Y.appendChild(ab);if(aa){var Z=0;(function(){if(typeof aa.GetVariable!=E){var ac=aa.GetVariable("$version");if(ac){ac=ac.split(" ")[1].split(",");N.pv=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}else{if(Z<10){Z++;setTimeout(arguments.callee,10);return}}Y.removeChild(ab);aa=null;I()})()}else{I()}}function I(){var ah=p.length;if(ah>0){for(var ag=0;ag<ah;ag++){var Z=p[ag].id;var ac=p[ag].callbackFn;var ab={success:false,id:Z};if(N.pv[0]>0){var af=c(Z);if(af){if(G(p[ag].swfVersion)&&!(N.wk&&N.wk<312)){x(Z,true);if(ac){ab.success=true;ab.ref=A(Z);ac(ab)}}else{if(p[ag].expressInstall&&B()){var aj={};aj.data=p[ag].expressInstall;aj.width=af.getAttribute("width")||"0";aj.height=af.getAttribute("height")||"0";if(af.getAttribute("class")){aj.styleclass=af.getAttribute("class")}if(af.getAttribute("align")){aj.align=af.getAttribute("align")}var ai={};var Y=af.getElementsByTagName("param");var ad=Y.length;for(var ae=0;ae<ad;ae++){if(Y[ae].getAttribute("name").toLowerCase()!="movie"){ai[Y[ae].getAttribute("name")]=Y[ae].getAttribute("value")}}Q(aj,ai,Z,ac)}else{q(af);if(ac){ac(ab)}}}}}else{x(Z,true);if(ac){var aa=A(Z);if(aa&&typeof aa.SetVariable!=E){ab.success=true;ab.ref=aa}ac(ab)}}}}}function A(ab){var Y=null;var Z=c(ab);if(Z&&Z.nodeName=="OBJECT"){if(typeof Z.SetVariable!=E){Y=Z}else{var aa=Z.getElementsByTagName(s)[0];if(aa){Y=aa}}}return Y}function B(){return!a&&G("6.0.65")&&(N.win||N.mac)&&!(N.wk&&N.wk<312)}function Q(ab,ac,Y,aa){a=true;F=aa||null;C={success:false,id:Y};var af=c(Y);if(af){if(af.nodeName=="OBJECT"){m=h(af);R=null}else{m=af;R=Y}ab.id=S;if(typeof ab.width==E||(!/%$/.test(ab.width)&&parseInt(ab.width,10)<310)){ab.width="310"}if(typeof ab.height==E||(!/%$/.test(ab.height)&&parseInt(ab.height,10)<137)){ab.height="137"}k.title=k.title.slice(0,47)+" - Flash Player Installation";var ae=N.ie&&N.win?"ActiveX":"PlugIn",ad="MMredirectURL="+P.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ae+"&MMdoctitle="+k.title;if(typeof ac.flashvars!=E){ac.flashvars+="&"+ad}else{ac.flashvars=ad}if(N.ie&&N.win&&af.readyState!=4){var Z=D("div");Y+="SWFObjectNew";Z.setAttribute("id",Y);af.parentNode.insertBefore(Z,af);af.style.display="none";(function(){if(af.readyState==4){af.parentNode.removeChild(af)}else{setTimeout(arguments.callee,10)}})()}v(ab,ac,Y)}}function q(Z){if(N.ie&&N.win&&Z.readyState!=4){var Y=D("div");Z.parentNode.insertBefore(Y,Z);Y.parentNode.replaceChild(h(Z),Y);Z.style.display="none";(function(){if(Z.readyState==4){Z.parentNode.removeChild(Z)}else{setTimeout(arguments.callee,10)}})()}else{Z.parentNode.replaceChild(h(Z),Z)}}function h(ad){var ab=D("div");if(N.win&&N.ie){ab.innerHTML=ad.innerHTML}else{var Z=ad.getElementsByTagName(s)[0];if(Z){var ae=Z.childNodes;if(ae){var Y=ae.length;for(var aa=0;aa<Y;aa++){if(!(ae[aa].nodeType==1&&ae[aa].nodeName=="PARAM")&&!(ae[aa].nodeType==8)){ab.appendChild(ae[aa].cloneNode(true))}}}}}return ab}function v(aj,ah,Z){var Y,ab=c(Z);if(N.wk&&N.wk<312){return Y}if(ab){if(typeof aj.id==E){aj.id=Z}if(N.ie&&N.win){var ai="";for(var af in aj){if(aj[af]!=Object.prototype[af]){if(af.toLowerCase()=="data"){ah.movie=aj[af]}else{if(af.toLowerCase()=="styleclass"){ai+=' class="'+aj[af]+'"'}else{if(af.toLowerCase()!="classid"){ai+=" "+af+'="'+aj[af]+'"'}}}}}var ag="";for(var ae in ah){if(ah[ae]!=Object.prototype[ae]){ag+='<param name="'+ae+'" value="'+ah[ae]+'" />'}}ab.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ai+">"+ag+"</object>";O[O.length]=aj.id;Y=c(aj.id)}else{var aa=D(s);aa.setAttribute("type",r);for(var ad in aj){if(aj[ad]!=Object.prototype[ad]){if(ad.toLowerCase()=="styleclass"){aa.setAttribute("class",aj[ad])}else{if(ad.toLowerCase()!="classid"){aa.setAttribute(ad,aj[ad])}}}}for(var ac in ah){if(ah[ac]!=Object.prototype[ac]&&ac.toLowerCase()!="movie"){e(aa,ac,ah[ac])}}ab.parentNode.replaceChild(aa,ab);Y=aa}}return Y}function e(aa,Y,Z){var ab=D("param");ab.setAttribute("name",Y);ab.setAttribute("value",Z);aa.appendChild(ab)}function z(Z){var Y=c(Z);if(Y&&Y.nodeName=="OBJECT"){if(N.ie&&N.win){Y.style.display="none";(function(){if(Y.readyState==4){b(Z)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.removeChild(Y)}}}function b(aa){var Z=c(aa);if(Z){for(var Y in Z){if(typeof Z[Y]=="function"){Z[Y]=null}}Z.parentNode.removeChild(Z)}}function c(aa){var Y=null;try{Y=k.getElementById(aa)}catch(Z){}return Y}function D(Y){return k.createElement(Y)}function j(aa,Y,Z){aa.attachEvent(Y,Z);J[J.length]=[aa,Y,Z]}function G(aa){var Z=N.pv,Y=aa.split(".");Y[0]=parseInt(Y[0],10);Y[1]=parseInt(Y[1],10)||0;Y[2]=parseInt(Y[2],10)||0;return(Z[0]>Y[0]||(Z[0]==Y[0]&&Z[1]>Y[1])||(Z[0]==Y[0]&&Z[1]==Y[1]&&Z[2]>=Y[2]))?true:false}function w(ad,Z,ae,ac){if(N.ie&&N.mac){return}var ab=k.getElementsByTagName("head")[0];if(!ab){return}var Y=(ae&&typeof ae=="string")?ae:"screen";if(ac){o=null;H=null}if(!o||H!=Y){var aa=D("style");aa.setAttribute("type","text/css");aa.setAttribute("media",Y);o=ab.appendChild(aa);if(N.ie&&N.win&&typeof k.styleSheets!=E&&k.styleSheets.length>0){o=k.styleSheets[k.styleSheets.length-1]}H=Y}if(N.ie&&N.win){if(o&&typeof o.addRule==s){o.addRule(ad,Z)}}else{if(o&&typeof k.createTextNode!=E){o.appendChild(k.createTextNode(ad+" {"+Z+"}"))}}}function x(aa,Y){if(!n){return}var Z=Y?"visible":"hidden";if(K&&c(aa)){c(aa).style.visibility=Z}else{w("#"+aa,"visibility:"+Z)}}function M(Z){var aa=/[\\\"<>\.;]/;var Y=aa.exec(Z)!=null;return Y&&typeof encodeURIComponent!=E?encodeURIComponent(Z):Z}var d=function(){if(N.ie&&N.win){window.attachEvent("onunload",function(){var ad=J.length;for(var ac=0;ac<ad;ac++){J[ac][0].detachEvent(J[ac][1],J[ac][2])}var aa=O.length;for(var ab=0;ab<aa;ab++){z(O[ab])}for(var Z in N){N[Z]=null}N=null;for(var Y in swfobject){swfobject[Y]=null}swfobject=null})}}();return{registerObject:function(ac,Y,ab,aa){if(N.w3&&ac&&Y){var Z={};Z.id=ac;Z.swfVersion=Y;Z.expressInstall=ab;Z.callbackFn=aa;p[p.length]=Z;x(ac,false)}else{if(aa){aa({success:false,id:ac})}}},getObjectById:function(Y){if(N.w3){return A(Y)}},embedSWF:function(ac,ai,af,ah,Z,ab,aa,ae,ag,ad){var Y={success:false,id:ai};if(N.w3&&!(N.wk&&N.wk<312)&&ac&&ai&&af&&ah&&Z){x(ai,false);L(function(){af+="";ah+="";var ak={};if(ag&&typeof ag===s){for(var am in ag){ak[am]=ag[am]}}ak.data=ac;ak.width=af;ak.height=ah;var an={};if(ae&&typeof ae===s){for(var al in ae){an[al]=ae[al]}}if(aa&&typeof aa===s){for(var aj in aa){if(typeof an.flashvars!=E){an.flashvars+="&"+aj+"="+aa[aj]}else{an.flashvars=aj+"="+aa[aj]}}}if(G(Z)){var ao=v(ak,an,ai);if(ak.id==ai){x(ai,true)}Y.success=true;Y.ref=ao}else{if(ab&&B()){ak.data=ab;Q(ak,an,ai,ad);return}else{x(ai,true)}}if(ad){ad(Y)}})}else{if(ad){ad(Y)}}},switchOffAutoHideShow:function(){n=false},ua:N,getFlashPlayerVersion:function(){return{major:N.pv[0],minor:N.pv[1],release:N.pv[2]}},hasFlashPlayerVersion:G,createSWF:function(aa,Z,Y){if(N.w3){return v(aa,Z,Y)}else{return undefined}},showExpressInstall:function(aa,ab,Y,Z){if(N.w3&&B()){Q(aa,ab,Y,Z)}},removeSWF:function(Y){if(N.w3){z(Y)}},createCSS:function(ab,aa,Z,Y){if(N.w3){w(ab,aa,Z,Y)}},addDomLoadEvent:L,addLoadEvent:t,getQueryParamValue:function(ab){var aa=k.location.search||k.location.hash;if(aa){if(/\?/.test(aa)){aa=aa.split("?")[1]}if(ab==null){return M(aa)}var Z=aa.split("&");for(var Y=0;Y<Z.length;Y++){if(Z[Y].substring(0,Z[Y].indexOf("="))==ab){return M(Z[Y].substring((Z[Y].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var Y=c(S);if(Y&&m){Y.parentNode.replaceChild(m,Y);if(R){x(R,true);if(N.ie&&N.win){m.style.display="block"}}if(F){F(C)}}a=false}}}}();Ext.FlashComponent=Ext.extend(Ext.BoxComponent,{flashVersion:"9.0.115",backgroundColor:"#ffffff",wmode:"opaque",flashVars:undefined,flashParams:undefined,url:undefined,swfId:undefined,swfWidth:"100%",swfHeight:"100%",expressInstall:false,initComponent:function(){Ext.FlashComponent.superclass.initComponent.call(this);this.addEvents("initialize")},onRender:function(){Ext.FlashComponent.superclass.onRender.apply(this,arguments);var b=Ext.apply({allowScriptAccess:"always",bgcolor:this.backgroundColor,wmode:this.wmode},this.flashParams),a=Ext.apply({allowedDomain:document.location.hostname,YUISwfId:this.getId(),YUIBridgeCallback:"Ext.FlashEventProxy.onEvent"},this.flashVars);new swfobject.embedSWF(this.url,this.id,this.swfWidth,this.swfHeight,this.flashVersion,this.expressInstall?Ext.FlashComponent.EXPRESS_INSTALL_URL:undefined,a,b);this.swf=Ext.getDom(this.id);this.el=Ext.get(this.swf)},getSwfId:function(){return this.swfId||(this.swfId="extswf"+(++Ext.Component.AUTO_ID))},getId:function(){return this.id||(this.id="extflashcmp"+(++Ext.Component.AUTO_ID))},onFlashEvent:function(a){switch(a.type){case"swfReady":this.initSwf();return;case"log":return}a.component=this;this.fireEvent(a.type.toLowerCase().replace(/event$/,""),a)},initSwf:function(){this.onSwfReady(!!this.isInitialized);this.isInitialized=true;this.fireEvent("initialize",this)},beforeDestroy:function(){if(this.rendered){swfobject.removeSWF(this.swf.id)}Ext.FlashComponent.superclass.beforeDestroy.call(this)},onSwfReady:Ext.emptyFn});Ext.FlashComponent.EXPRESS_INSTALL_URL="http://swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf";Ext.reg("flash",Ext.FlashComponent);Ext.FlashEventProxy={onEvent:function(c,b){var a=Ext.getCmp(c);if(a){a.onFlashEvent(b)}else{arguments.callee.defer(10,this,[c,b])}}};Ext.chart.Chart=Ext.extend(Ext.FlashComponent,{refreshBuffer:100,chartStyle:{padding:10,animationEnabled:true,font:{name:"Tahoma",color:4473924,size:11},dataTip:{padding:5,border:{color:10075112,size:1},background:{color:14346230,alpha:0.9},font:{name:"Tahoma",color:1393291,size:10,bold:true}}},extraStyle:null,seriesStyles:null,disableCaching:Ext.isIE||Ext.isOpera,disableCacheParam:"_dc",initComponent:function(){Ext.chart.Chart.superclass.initComponent.call(this);if(!this.url){this.url=Ext.chart.Chart.CHART_URL}if(this.disableCaching){this.url=Ext.urlAppend(this.url,String.format("{0}={1}",this.disableCacheParam,new Date().getTime()))}this.addEvents("itemmouseover","itemmouseout","itemclick","itemdoubleclick","itemdragstart","itemdrag","itemdragend","beforerefresh","refresh");this.store=Ext.StoreMgr.lookup(this.store)},setStyle:function(a,b){this.swf.setStyle(a,Ext.encode(b))},setStyles:function(a){this.swf.setStyles(Ext.encode(a))},setSeriesStyles:function(b){this.seriesStyles=b;var a=[];Ext.each(b,function(c){a.push(Ext.encode(c))});this.swf.setSeriesStyles(a)},setCategoryNames:function(a){this.swf.setCategoryNames(a)},setLegendRenderer:function(c,b){var a=this;b=b||a;a.removeFnProxy(a.legendFnName);a.legendFnName=a.createFnProxy(function(d){return c.call(b,d)});a.swf.setLegendLabelFunction(a.legendFnName)},setTipRenderer:function(c,b){var a=this;b=b||a;a.removeFnProxy(a.tipFnName);a.tipFnName=a.createFnProxy(function(h,e,g){var d=a.store.getAt(e);return c.call(b,a,d,e,g)});a.swf.setDataTipFunction(a.tipFnName)},setSeries:function(a){this.series=a;this.refresh()},bindStore:function(a,b){if(!b&&this.store){if(a!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("datachanged",this.refresh,this);this.store.un("add",this.delayRefresh,this);this.store.un("remove",this.delayRefresh,this);this.store.un("update",this.delayRefresh,this);this.store.un("clear",this.refresh,this)}}if(a){a=Ext.StoreMgr.lookup(a);a.on({scope:this,datachanged:this.refresh,add:this.delayRefresh,remove:this.delayRefresh,update:this.delayRefresh,clear:this.refresh})}this.store=a;if(a&&!b){this.refresh()}},onSwfReady:function(b){Ext.chart.Chart.superclass.onSwfReady.call(this,b);var a;this.swf.setType(this.type);if(this.chartStyle){this.setStyles(Ext.apply({},this.extraStyle,this.chartStyle))}if(this.categoryNames){this.setCategoryNames(this.categoryNames)}if(this.tipRenderer){a=this.getFunctionRef(this.tipRenderer);this.setTipRenderer(a.fn,a.scope)}if(this.legendRenderer){a=this.getFunctionRef(this.legendRenderer);this.setLegendRenderer(a.fn,a.scope)}if(!b){this.bindStore(this.store,true)}this.refresh.defer(10,this)},delayRefresh:function(){if(!this.refreshTask){this.refreshTask=new Ext.util.DelayedTask(this.refresh,this)}this.refreshTask.delay(this.refreshBuffer)},refresh:function(){if(this.fireEvent("beforerefresh",this)!==false){var m=false;var k=[],c=this.store.data.items;for(var g=0,l=c.length;g<l;g++){k[g]=c[g].data}var e=[];var d=0;var n=null;var h=0;if(this.series){d=this.series.length;for(h=0;h<d;h++){n=this.series[h];var b={};for(var a in n){if(a=="style"&&n.style!==null){b.style=Ext.encode(n.style);m=true}else{b[a]=n[a]}}e.push(b)}}if(d>0){for(h=0;h<d;h++){n=e[h];if(!n.type){n.type=this.type}n.dataProvider=k}}else{e.push({type:this.type,dataProvider:k})}this.swf.setDataProvider(e);if(this.seriesStyles){this.setSeriesStyles(this.seriesStyles)}this.fireEvent("refresh",this)}},createFnProxy:function(a){var b="extFnProxy"+(++Ext.chart.Chart.PROXY_FN_ID);Ext.chart.Chart.proxyFunction[b]=a;return"Ext.chart.Chart.proxyFunction."+b},removeFnProxy:function(a){if(!Ext.isEmpty(a)){a=a.replace("Ext.chart.Chart.proxyFunction.","");delete Ext.chart.Chart.proxyFunction[a]}},getFunctionRef:function(a){if(Ext.isFunction(a)){return{fn:a,scope:this}}else{return{fn:a.fn,scope:a.scope||this}}},onDestroy:function(){if(this.refreshTask&&this.refreshTask.cancel){this.refreshTask.cancel()}Ext.chart.Chart.superclass.onDestroy.call(this);this.bindStore(null);this.removeFnProxy(this.tipFnName);this.removeFnProxy(this.legendFnName)}});Ext.reg("chart",Ext.chart.Chart);Ext.chart.Chart.PROXY_FN_ID=0;Ext.chart.Chart.proxyFunction={};Ext.chart.Chart.CHART_URL="http://yui.yahooapis.com/2.8.0/build/charts/assets/charts.swf";Ext.chart.PieChart=Ext.extend(Ext.chart.Chart,{type:"pie",onSwfReady:function(a){Ext.chart.PieChart.superclass.onSwfReady.call(this,a);this.setDataField(this.dataField);this.setCategoryField(this.categoryField)},setDataField:function(a){this.dataField=a;this.swf.setDataField(a)},setCategoryField:function(a){this.categoryField=a;this.swf.setCategoryField(a)}});Ext.reg("piechart",Ext.chart.PieChart);Ext.chart.CartesianChart=Ext.extend(Ext.chart.Chart,{onSwfReady:function(a){Ext.chart.CartesianChart.superclass.onSwfReady.call(this,a);this.labelFn=[];if(this.xField){this.setXField(this.xField)}if(this.yField){this.setYField(this.yField)}if(this.xAxis){this.setXAxis(this.xAxis)}if(this.xAxes){this.setXAxes(this.xAxes)}if(this.yAxis){this.setYAxis(this.yAxis)}if(this.yAxes){this.setYAxes(this.yAxes)}if(Ext.isDefined(this.constrainViewport)){this.swf.setConstrainViewport(this.constrainViewport)}},setXField:function(a){this.xField=a;this.swf.setHorizontalField(a)},setYField:function(a){this.yField=a;this.swf.setVerticalField(a)},setXAxis:function(a){this.xAxis=this.createAxis("xAxis",a);this.swf.setHorizontalAxis(this.xAxis)},setXAxes:function(c){var b;for(var a=0;a<c.length;a++){b=this.createAxis("xAxis"+a,c[a]);this.swf.setHorizontalAxis(b)}},setYAxis:function(a){this.yAxis=this.createAxis("yAxis",a);this.swf.setVerticalAxis(this.yAxis)},setYAxes:function(c){var b;for(var a=0;a<c.length;a++){b=this.createAxis("yAxis"+a,c[a]);this.swf.setVerticalAxis(b)}},createAxis:function(b,d){var e=Ext.apply({},d),c,a;if(this[b]){a=this[b].labelFunction;this.removeFnProxy(a);this.labelFn.remove(a)}if(e.labelRenderer){c=this.getFunctionRef(e.labelRenderer);e.labelFunction=this.createFnProxy(function(g){return c.fn.call(c.scope,g)});delete e.labelRenderer;this.labelFn.push(e.labelFunction)}if(b.indexOf("xAxis")>-1&&e.position=="left"){e.position="bottom"}return e},onDestroy:function(){Ext.chart.CartesianChart.superclass.onDestroy.call(this);Ext.each(this.labelFn,function(a){this.removeFnProxy(a)},this)}});Ext.reg("cartesianchart",Ext.chart.CartesianChart);Ext.chart.LineChart=Ext.extend(Ext.chart.CartesianChart,{type:"line"});Ext.reg("linechart",Ext.chart.LineChart);Ext.chart.ColumnChart=Ext.extend(Ext.chart.CartesianChart,{type:"column"});Ext.reg("columnchart",Ext.chart.ColumnChart);Ext.chart.StackedColumnChart=Ext.extend(Ext.chart.CartesianChart,{type:"stackcolumn"});Ext.reg("stackedcolumnchart",Ext.chart.StackedColumnChart);Ext.chart.BarChart=Ext.extend(Ext.chart.CartesianChart,{type:"bar"});Ext.reg("barchart",Ext.chart.BarChart);Ext.chart.StackedBarChart=Ext.extend(Ext.chart.CartesianChart,{type:"stackbar"});Ext.reg("stackedbarchart",Ext.chart.StackedBarChart);Ext.chart.Axis=function(a){Ext.apply(this,a)};Ext.chart.Axis.prototype={type:null,orientation:"horizontal",reverse:false,labelFunction:null,hideOverlappingLabels:true,labelSpacing:2};Ext.chart.NumericAxis=Ext.extend(Ext.chart.Axis,{type:"numeric",minimum:NaN,maximum:NaN,majorUnit:NaN,minorUnit:NaN,snapToUnits:true,alwaysShowZero:true,scale:"linear",roundMajorUnit:true,calculateByLabelSize:true,position:"left",adjustMaximumByMajorUnit:true,adjustMinimumByMajorUnit:true});Ext.chart.TimeAxis=Ext.extend(Ext.chart.Axis,{type:"time",minimum:null,maximum:null,majorUnit:NaN,majorTimeUnit:null,minorUnit:NaN,minorTimeUnit:null,snapToUnits:true,stackingEnabled:false,calculateByLabelSize:true});Ext.chart.CategoryAxis=Ext.extend(Ext.chart.Axis,{type:"category",categoryNames:null,calculateCategoryCount:false});Ext.chart.Series=function(a){Ext.apply(this,a)};Ext.chart.Series.prototype={type:null,displayName:null};Ext.chart.CartesianSeries=Ext.extend(Ext.chart.Series,{xField:null,yField:null,showInLegend:true,axis:"primary"});Ext.chart.ColumnSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"column"});Ext.chart.LineSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"line"});Ext.chart.BarSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"bar"});Ext.chart.PieSeries=Ext.extend(Ext.chart.Series,{type:"pie",dataField:null,categoryField:null});Ext.menu.Menu=Ext.extend(Ext.Container,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,ignoreParentClicks:false,enableScrolling:true,maxHeight:null,scrollIncrement:24,showSeparator:true,defaultOffsets:[0,0],plain:false,floating:true,zIndex:15000,hidden:true,layout:"menu",hideMode:"offsets",scrollerHeight:8,autoLayout:true,defaultType:"menuitem",bufferResize:false,initComponent:function(){if(Ext.isArray(this.initialConfig)){Ext.apply(this,{items:this.initialConfig})}this.addEvents("click","mouseover","mouseout","itemclick");Ext.menu.MenuMgr.register(this);if(this.floating){Ext.EventManager.onWindowResize(this.hide,this)}else{if(this.initialConfig.hidden!==false){this.hidden=false}this.internalDefaults={hideOnClick:false}}Ext.menu.Menu.superclass.initComponent.call(this);if(this.autoLayout){var a=this.doLayout.createDelegate(this,[]);this.on({add:a,remove:a})}},getLayoutTarget:function(){return this.ul},onRender:function(b,a){if(!b){b=Ext.getBody()}var c={id:this.getId(),cls:"x-menu "+((this.floating)?"x-menu-floating x-layer ":"")+(this.cls||"")+(this.plain?" x-menu-plain":"")+(this.showSeparator?"":" x-menu-nosep"),style:this.style,cn:[{tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"},{tag:"ul",cls:"x-menu-list"}]};if(this.floating){this.el=new Ext.Layer({shadow:this.shadow,dh:c,constrain:false,parentEl:b,zindex:this.zIndex})}else{this.el=b.createChild(c)}Ext.menu.Menu.superclass.onRender.call(this,b,a);if(!this.keyNav){this.keyNav=new Ext.menu.MenuNav(this)}this.focusEl=this.el.child("a.x-menu-focus");this.ul=this.el.child("ul.x-menu-list");this.mon(this.ul,{scope:this,click:this.onClick,mouseover:this.onMouseOver,mouseout:this.onMouseOut});if(this.enableScrolling){this.mon(this.el,{scope:this,delegate:".x-menu-scroller",click:this.onScroll,mouseover:this.deactivateActive})}},findTargetItem:function(b){var a=b.getTarget(".x-menu-list-item",this.ul,true);if(a&&a.menuItemId){return this.items.get(a.menuItemId)}},onClick:function(b){var a=this.findTargetItem(b);if(a){if(a.isFormField){this.setActiveItem(a)}else{if(a instanceof Ext.menu.BaseItem){if(a.menu&&this.ignoreParentClicks){a.expandMenu();b.preventDefault()}else{if(a.onClick){a.onClick(b);this.fireEvent("click",this,a,b)}}}}}},setActiveItem:function(a,b){if(a!=this.activeItem){this.deactivateActive();if((this.activeItem=a).isFormField){a.focus()}else{a.activate(b)}}else{if(b){a.expandMenu()}}},deactivateActive:function(){var b=this.activeItem;if(b){if(b.isFormField){if(b.collapse){b.collapse()}}else{b.deactivate()}delete this.activeItem}},tryActivate:function(g,e){var b=this.items;for(var c=g,a=b.length;c>=0&&c<a;c+=e){var d=b.get(c);if(!d.disabled&&(d.canActivate||d.isFormField)){this.setActiveItem(d,false);return d}}return false},onMouseOver:function(b){var a=this.findTargetItem(b);if(a){if(a.canActivate&&!a.disabled){this.setActiveItem(a,true)}}this.over=true;this.fireEvent("mouseover",this,b,a)},onMouseOut:function(b){var a=this.findTargetItem(b);if(a){if(a==this.activeItem&&a.shouldDeactivate&&a.shouldDeactivate(b)){this.activeItem.deactivate();delete this.activeItem}}this.over=false;this.fireEvent("mouseout",this,b,a)},onScroll:function(d,b){if(d){d.stopEvent()}var a=this.ul.dom,c=Ext.fly(b).is(".x-menu-scroller-top");a.scrollTop+=this.scrollIncrement*(c?-1:1);if(c?a.scrollTop<=0:a.scrollTop+this.activeMax>=a.scrollHeight){this.onScrollerOut(null,b)}},onScrollerIn:function(d,b){var a=this.ul.dom,c=Ext.fly(b).is(".x-menu-scroller-top");if(c?a.scrollTop>0:a.scrollTop+this.activeMax<a.scrollHeight){Ext.fly(b).addClass(["x-menu-item-active","x-menu-scroller-active"])}},onScrollerOut:function(b,a){Ext.fly(a).removeClass(["x-menu-item-active","x-menu-scroller-active"])},show:function(b,c,a){if(this.floating){this.parentMenu=a;if(!this.el){this.render();this.doLayout(false,true)}this.showAt(this.el.getAlignToXY(b,c||this.defaultAlign,this.defaultOffsets),a)}else{Ext.menu.Menu.superclass.show.call(this)}},showAt:function(b,a){if(this.fireEvent("beforeshow",this)!==false){this.parentMenu=a;if(!this.el){this.render()}if(this.enableScrolling){this.el.setXY(b);b[1]=this.constrainScroll(b[1]);b=[this.el.adjustForConstraints(b)[0],b[1]]}else{b=this.el.adjustForConstraints(b)}this.el.setXY(b);this.el.show();Ext.menu.Menu.superclass.onShow.call(this);if(Ext.isIE){this.fireEvent("autosize",this);if(!Ext.isIE8){this.el.repaint()}}this.hidden=false;this.focus();this.fireEvent("show",this)}},constrainScroll:function(i){var b,d=this.ul.setHeight("auto").getHeight(),a=i,h,e,g,c;if(this.floating){e=Ext.fly(this.el.dom.parentNode);g=e.getScroll().top;c=e.getViewSize().height;h=i-g;b=this.maxHeight?this.maxHeight:c-h;if(d>c){b=c;a=i-h}else{if(b<d){a=i-(d-b);b=d}}}else{b=this.getHeight()}if(this.maxHeight){b=Math.min(this.maxHeight,b)}if(d>b&&b>0){this.activeMax=b-this.scrollerHeight*2-this.el.getFrameWidth("tb")-Ext.num(this.el.shadowOffset,0);this.ul.setHeight(this.activeMax);this.createScrollers();this.el.select(".x-menu-scroller").setDisplayed("")}else{this.ul.setHeight(d);this.el.select(".x-menu-scroller").setDisplayed("none")}this.ul.dom.scrollTop=0;return a},createScrollers:function(){if(!this.scroller){this.scroller={pos:0,top:this.el.insertFirst({tag:"div",cls:"x-menu-scroller x-menu-scroller-top",html:"&#160;"}),bottom:this.el.createChild({tag:"div",cls:"x-menu-scroller x-menu-scroller-bottom",html:"&#160;"})};this.scroller.top.hover(this.onScrollerIn,this.onScrollerOut,this);this.scroller.topRepeater=new Ext.util.ClickRepeater(this.scroller.top,{listeners:{click:this.onScroll.createDelegate(this,[null,this.scroller.top],false)}});this.scroller.bottom.hover(this.onScrollerIn,this.onScrollerOut,this);this.scroller.bottomRepeater=new Ext.util.ClickRepeater(this.scroller.bottom,{listeners:{click:this.onScroll.createDelegate(this,[null,this.scroller.bottom],false)}})}},onLayout:function(){if(this.isVisible()){if(this.enableScrolling){this.constrainScroll(this.el.getTop())}if(this.floating){this.el.sync()}}},focus:function(){if(!this.hidden){this.doFocus.defer(50,this)}},doFocus:function(){if(!this.hidden){this.focusEl.focus()}},hide:function(a){if(!this.isDestroyed){this.deepHide=a;Ext.menu.Menu.superclass.hide.call(this);delete this.deepHide}},onHide:function(){Ext.menu.Menu.superclass.onHide.call(this);this.deactivateActive();if(this.el&&this.floating){this.el.hide()}var a=this.parentMenu;if(this.deepHide===true&&a){if(a.floating){a.hide(true)}else{a.deactivateActive()}}},lookupComponent:function(a){if(Ext.isString(a)){a=(a=="separator"||a=="-")?new Ext.menu.Separator():new Ext.menu.TextItem(a);this.applyDefaults(a)}else{if(Ext.isObject(a)){a=this.getMenuItem(a)}else{if(a.tagName||a.el){a=new Ext.BoxComponent({el:a})}}}return a},applyDefaults:function(b){if(!Ext.isString(b)){b=Ext.menu.Menu.superclass.applyDefaults.call(this,b);var a=this.internalDefaults;if(a){if(b.events){Ext.applyIf(b.initialConfig,a);Ext.apply(b,a)}else{Ext.applyIf(b,a)}}}return b},getMenuItem:function(a){if(!a.isXType){if(!a.xtype&&Ext.isBoolean(a.checked)){return new Ext.menu.CheckItem(a)}return Ext.create(a,this.defaultType)}return a},addSeparator:function(){return this.add(new Ext.menu.Separator())},addElement:function(a){return this.add(new Ext.menu.BaseItem({el:a}))},addItem:function(a){return this.add(a)},addMenuItem:function(a){return this.add(this.getMenuItem(a))},addText:function(a){return this.add(new Ext.menu.TextItem(a))},onDestroy:function(){Ext.EventManager.removeResizeListener(this.hide,this);var a=this.parentMenu;if(a&&a.activeChild==this){delete a.activeChild}delete this.parentMenu;Ext.menu.Menu.superclass.onDestroy.call(this);Ext.menu.MenuMgr.unregister(this);if(this.keyNav){this.keyNav.disable()}var b=this.scroller;if(b){Ext.destroy(b.topRepeater,b.bottomRepeater,b.top,b.bottom)}Ext.destroy(this.el,this.focusEl,this.ul)}});Ext.reg("menu",Ext.menu.Menu);Ext.menu.MenuNav=Ext.extend(Ext.KeyNav,function(){function a(d,c){if(!c.tryActivate(c.items.indexOf(c.activeItem)-1,-1)){c.tryActivate(c.items.length-1,-1)}}function b(d,c){if(!c.tryActivate(c.items.indexOf(c.activeItem)+1,1)){c.tryActivate(0,1)}}return{constructor:function(c){Ext.menu.MenuNav.superclass.constructor.call(this,c.el);this.scope=this.menu=c},doRelay:function(g,d){var c=g.getKey();if(this.menu.activeItem&&this.menu.activeItem.isFormField&&c!=g.TAB){return false}if(!this.menu.activeItem&&g.isNavKeyPress()&&c!=g.SPACE&&c!=g.RETURN){this.menu.tryActivate(0,1);return false}return d.call(this.scope||this,g,this.menu)},tab:function(d,c){d.stopEvent();if(d.shiftKey){a(d,c)}else{b(d,c)}},up:a,down:b,right:function(d,c){if(c.activeItem){c.activeItem.expandMenu(true)}},left:function(d,c){c.hide();if(c.parentMenu&&c.parentMenu.activeItem){c.parentMenu.activeItem.activate()}},enter:function(d,c){if(c.activeItem){d.stopPropagation();c.activeItem.onClick(d);c.fireEvent("click",this,c.activeItem);return true}}}}());Ext.menu.MenuMgr=function(){var g,d,c={},a=false,l=new Date();function n(){g={};d=new Ext.util.MixedCollection();Ext.getDoc().addKeyListener(27,function(){if(d.length>0){i()}})}function i(){if(d&&d.length>0){var o=d.clone();o.each(function(p){p.hide()});return true}return false}function e(o){d.remove(o);if(d.length<1){Ext.getDoc().un("mousedown",m);a=false}}function k(o){var p=d.last();l=new Date();d.add(o);if(!a){Ext.getDoc().on("mousedown",m);a=true}if(o.parentMenu){o.getEl().setZIndex(parseInt(o.parentMenu.getEl().getStyle("z-index"),10)+3);o.parentMenu.activeChild=o}else{if(p&&!p.isDestroyed&&p.isVisible()){o.getEl().setZIndex(parseInt(p.getEl().getStyle("z-index"),10)+3)}}}function b(o){if(o.activeChild){o.activeChild.hide()}if(o.autoHideTimer){clearTimeout(o.autoHideTimer);delete o.autoHideTimer}}function h(o){var p=o.parentMenu;if(!p&&!o.allowOtherMenus){i()}else{if(p&&p.activeChild){p.activeChild.hide()}}}function m(o){if(l.getElapsed()>50&&d.length>0&&!o.getTarget(".x-menu")){i()}}function j(p,s){if(s){var r=c[p.group];for(var q=0,o=r.length;q<o;q++){if(r[q]!=p){r[q].setChecked(false)}}}}return{hideAll:function(){return i()},register:function(o){if(!g){n()}g[o.id]=o;o.on({beforehide:b,hide:e,beforeshow:h,show:k})},get:function(o){if(typeof o=="string"){if(!g){return null}return g[o]}else{if(o.events){return o}else{if(typeof o.length=="number"){return new Ext.menu.Menu({items:o})}else{return Ext.create(o,"menu")}}}},unregister:function(o){delete g[o.id];o.un("beforehide",b);o.un("hide",e);o.un("beforeshow",h);o.un("show",k)},registerCheckable:function(o){var p=o.group;if(p){if(!c[p]){c[p]=[]}c[p].push(o);o.on("beforecheckchange",j)}},unregisterCheckable:function(o){var p=o.group;if(p){c[p].remove(o);o.un("beforecheckchange",j)}},getCheckedItem:function(q){var r=c[q];if(r){for(var p=0,o=r.length;p<o;p++){if(r[p].checked){return r[p]}}}return null},setCheckedItem:function(q,s){var r=c[q];if(r){for(var p=0,o=r.length;p<o;p++){if(r[p].id==s){r[p].setChecked(true)}}}return null}}}();Ext.menu.BaseItem=Ext.extend(Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,clickHideDelay:1,ctype:"Ext.menu.BaseItem",actionMode:"container",initComponent:function(){Ext.menu.BaseItem.superclass.initComponent.call(this);this.addEvents("click","activate","deactivate");if(this.handler){this.on("click",this.handler,this.scope)}},onRender:function(b,a){Ext.menu.BaseItem.superclass.onRender.apply(this,arguments);if(this.ownerCt&&this.ownerCt instanceof Ext.menu.Menu){this.parentMenu=this.ownerCt}else{this.container.addClass("x-menu-list-item");this.mon(this.el,{scope:this,click:this.onClick,mouseenter:this.activate,mouseleave:this.deactivate})}},setHandler:function(b,a){if(this.handler){this.un("click",this.handler,this.scope)}this.on("click",this.handler=b,this.scope=a)},onClick:function(a){if(!this.disabled&&this.fireEvent("click",this,a)!==false&&(this.parentMenu&&this.parentMenu.fireEvent("itemclick",this,a)!==false)){this.handleClick(a)}else{a.stopEvent()}},activate:function(){if(this.disabled){return false}var a=this.container;a.addClass(this.activeClass);this.region=a.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this)},shouldDeactivate:function(a){return!this.region||!this.region.contains(a.getPoint())},handleClick:function(b){var a=this.parentMenu;if(this.hideOnClick){if(a.floating){a.hide.defer(this.clickHideDelay,a,[true])}else{a.deactivateActive()}}},expandMenu:Ext.emptyFn,hideMenu:Ext.emptyFn});Ext.reg("menubaseitem",Ext.menu.BaseItem);Ext.menu.TextItem=Ext.extend(Ext.menu.BaseItem,{hideOnClick:false,itemCls:"x-menu-text",constructor:function(a){if(typeof a=="string"){a={text:a}}Ext.menu.TextItem.superclass.constructor.call(this,a)},onRender:function(){var a=document.createElement("span");a.className=this.itemCls;a.innerHTML=this.text;this.el=a;Ext.menu.TextItem.superclass.onRender.apply(this,arguments)}});Ext.reg("menutextitem",Ext.menu.TextItem);Ext.menu.Separator=Ext.extend(Ext.menu.BaseItem,{itemCls:"x-menu-sep",hideOnClick:false,activeClass:"",onRender:function(a){var b=document.createElement("span");b.className=this.itemCls;b.innerHTML="&#160;";this.el=b;a.addClass("x-menu-sep-li");Ext.menu.Separator.superclass.onRender.apply(this,arguments)}});Ext.reg("menuseparator",Ext.menu.Separator);Ext.menu.Item=Ext.extend(Ext.menu.BaseItem,{itemCls:"x-menu-item",canActivate:true,showDelay:200,hideDelay:200,ctype:"Ext.menu.Item",initComponent:function(){Ext.menu.Item.superclass.initComponent.call(this);if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);this.menu.ownerCt=this}},onRender:function(d,b){if(!this.itemTpl){this.itemTpl=Ext.menu.Item.prototype.itemTpl=new Ext.XTemplate('<a id="{id}" class="{cls}" hidefocus="true" unselectable="on" href="{href}"','<tpl if="hrefTarget">',' target="{hrefTarget}"',"</tpl>",">",'<img src="{icon}" class="x-menu-item-icon {iconCls}"/>','<span class="x-menu-item-text">{text}</span>',"</a>")}var c=this.getTemplateArgs();this.el=b?this.itemTpl.insertBefore(b,c,true):this.itemTpl.append(d,c,true);this.iconEl=this.el.child("img.x-menu-item-icon");this.textEl=this.el.child(".x-menu-item-text");if(!this.href){this.mon(this.el,"click",Ext.emptyFn,null,{preventDefault:true})}Ext.menu.Item.superclass.onRender.call(this,d,b)},getTemplateArgs:function(){return{id:this.id,cls:this.itemCls+(this.menu?" x-menu-item-arrow":"")+(this.cls?" "+this.cls:""),href:this.href||"#",hrefTarget:this.hrefTarget,icon:this.icon||Ext.BLANK_IMAGE_URL,iconCls:this.iconCls||"",text:this.itemText||this.text||"&#160;"}},setText:function(a){this.text=a||"&#160;";if(this.rendered){this.textEl.update(this.text);this.parentMenu.layout.doAutoSize()}},setIconClass:function(a){var b=this.iconCls;this.iconCls=a;if(this.rendered){this.iconEl.replaceClass(b,this.iconCls)}},beforeDestroy:function(){if(this.menu){delete this.menu.ownerCt;this.menu.destroy()}Ext.menu.Item.superclass.beforeDestroy.call(this)},handleClick:function(a){if(!this.href){a.stopEvent()}Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(a){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(a){this.expandMenu()}}return true},shouldDeactivate:function(a){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,a)){if(this.menu&&this.menu.isVisible()){return!this.menu.getEl().getRegion().contains(a.getPoint())}return true}return false},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu()},expandMenu:function(a){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer){this.showTimer=this.deferExpand.defer(this.showDelay,this,[a])}else{if(this.menu.isVisible()&&a){this.menu.tryActivate(0,1)}}}},deferExpand:function(a){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(a){this.menu.tryActivate(0,1)}},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible()){this.hideTimer=this.deferHide.defer(this.hideDelay,this)}},deferHide:function(){delete this.hideTimer;if(this.menu.over){this.parentMenu.setActiveItem(this,false)}else{this.menu.hide()}}});Ext.reg("menuitem",Ext.menu.Item);Ext.menu.CheckItem=Ext.extend(Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",initComponent:function(){Ext.menu.CheckItem.superclass.initComponent.call(this);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope)}Ext.menu.MenuMgr.registerCheckable(this)},onRender:function(a){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass)}if(this.checked){this.checked=false;this.setChecked(true,true)}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(b,a){var c=a===true;if(this.checked!=b&&(c||this.fireEvent("beforecheckchange",this,b)!==false)){if(this.container){this.container[b?"addClass":"removeClass"]("x-menu-item-checked")}this.checked=b;if(!c){this.fireEvent("checkchange",this,b)}}},handleClick:function(a){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked)}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}});Ext.reg("menucheckitem",Ext.menu.CheckItem);Ext.menu.DateMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:false,hideOnClick:true,pickerId:null,cls:"x-date-menu",initComponent:function(){this.on("beforeshow",this.onBeforeShow,this);if(this.strict=(Ext.isIE7&&Ext.isStrict)){this.on("show",this.onShow,this,{single:true,delay:20})}Ext.apply(this,{plain:true,showSeparator:false,items:this.picker=new Ext.DatePicker(Ext.applyIf({internalRender:this.strict||!Ext.isIE,ctCls:"x-menu-date-item",id:this.pickerId},this.initialConfig))});this.picker.purgeListeners();Ext.menu.DateMenu.superclass.initComponent.call(this);this.relayEvents(this.picker,["select"]);this.on("show",this.picker.focus,this.picker);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this)}},menuHide:function(){if(this.hideOnClick){this.hide(true)}},onBeforeShow:function(){if(this.picker){this.picker.hideMonthPicker(true)}},onShow:function(){var a=this.picker.getEl();a.setWidth(a.getWidth())}});Ext.reg("datemenu",Ext.menu.DateMenu);Ext.menu.ColorMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:false,hideOnClick:true,cls:"x-color-menu",paletteId:null,initComponent:function(){Ext.apply(this,{plain:true,showSeparator:false,items:this.palette=new Ext.ColorPalette(Ext.applyIf({id:this.paletteId},this.initialConfig))});this.palette.purgeListeners();Ext.menu.ColorMenu.superclass.initComponent.call(this);this.relayEvents(this.palette,["select"]);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this)}},menuHide:function(){if(this.hideOnClick){this.hide(true)}}});Ext.reg("colormenu",Ext.menu.ColorMenu);Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:false,disabled:false,submitValue:true,isFormField:true,msgDisplay:"",hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:this.name||this.id||""},onRender:function(c,a){if(!this.el){var b=this.getAutoCreate();if(!b.name){b.name=this.name||this.id}if(this.inputType){b.type=this.inputType}this.autoEl=b}Ext.form.Field.superclass.onRender.call(this,c,a);if(this.submitValue===false){this.el.dom.removeAttribute("name")}var d=this.el.dom.type;if(d){if(d=="password"){d="text"}this.el.addClass("x-form-"+d)}if(this.readOnly){this.setReadOnly(true)}if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabIndex",this.tabIndex)}this.el.addClass([this.fieldClass,this.cls])},getItemCt:function(){return this.itemCt},initValue:function(){if(this.value!==undefined){this.setValue(this.value)}else{if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value)}}this.originalValue=this.getValue()},isDirty:function(){if(this.disabled||!this.rendered){return false}return String(this.getValue())!==String(this.originalValue)},setReadOnly:function(a){if(this.rendered){this.el.dom.readOnly=a}this.readOnly=a},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue()},fireKey:function(a){if(a.isSpecialKey()){this.fireEvent("specialkey",this,a)}},reset:function(){this.setValue(this.originalValue);this.clearInvalid()},initEvents:function(){this.mon(this.el,Ext.EventManager.useKeydown?"keydown":"keypress",this.fireKey,this);this.mon(this.el,"focus",this.onFocus,this);this.mon(this.el,"blur",this.onBlur,this,this.inEditor?{buffer:10}:null)},preFocus:Ext.emptyFn,onFocus:function(){this.preFocus();if(this.focusClass){this.el.addClass(this.focusClass)}if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(this.focusClass){this.el.removeClass(this.focusClass)}this.hasFocus=false;if(this.validationEvent!==false&&(this.validateOnBlur||this.validationEvent=="blur")){this.validate()}var a=this.getValue();if(String(a)!==String(this.startValue)){this.fireEvent("change",this,a,this.startValue)}this.fireEvent("blur",this);this.postBlur()},postBlur:Ext.emptyFn,isValid:function(a){if(this.disabled){return true}var c=this.preventMark;this.preventMark=a===true;var b=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=c;return b},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true}return false},processValue:function(a){return a},validateValue:function(b){var a=this.getErrors(b)[0];if(a==undefined){return true}else{this.markInvalid(a);return false}},getErrors:function(){return[]},getActiveError:function(){return this.activeError||""},markInvalid:function(c){if(this.rendered&&!this.preventMark){c=c||this.invalidText;var a=this.getMessageHandler();if(a){a.mark(this,c)}else{if(this.msgTarget){this.el.addClass(this.invalidClass);var b=Ext.getDom(this.msgTarget);if(b){b.innerHTML=c;b.style.display=this.msgDisplay}}}}this.setActiveError(c)},clearInvalid:function(){if(this.rendered&&!this.preventMark){this.el.removeClass(this.invalidClass);var a=this.getMessageHandler();if(a){a.clear(this)}else{if(this.msgTarget){this.el.removeClass(this.invalidClass);var b=Ext.getDom(this.msgTarget);if(b){b.innerHTML="";b.style.display="none"}}}}this.unsetActiveError()},setActiveError:function(b,a){this.activeError=b;if(a!==true){this.fireEvent("invalid",this,b)}},unsetActiveError:function(a){delete this.activeError;if(a!==true){this.fireEvent("valid",this)}},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget]},getErrorCt:function(){return this.el.findParent(".x-form-element",5,true)||this.el.findParent(".x-form-field-wrap",5,true)},alignErrorEl:function(){this.errorEl.setWidth(this.getErrorCt().getWidth(true)-20)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},getRawValue:function(){var a=this.rendered?this.el.getValue():Ext.value(this.value,"");if(a===this.emptyText){a=""}return a},getValue:function(){if(!this.rendered){return this.value}var a=this.el.getValue();if(a===this.emptyText||a===undefined){a=""}return a},setRawValue:function(a){return this.rendered?(this.el.dom.value=(Ext.isEmpty(a)?"":a)):""},setValue:function(a){this.value=a;if(this.rendered){this.el.dom.value=(Ext.isEmpty(a)?"":a);this.validate()}return this},append:function(a){this.setValue([this.getValue(),a].join(""))}});Ext.form.MessageTargets={qtip:{mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.qtip=b;a.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}},clear:function(a){a.el.removeClass(a.invalidClass);a.el.dom.qtip=""}},title:{mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.title=b},clear:function(a){a.el.dom.title=""}},under:{mark:function(b,c){b.el.addClass(b.invalidClass);if(!b.errorEl){var a=b.getErrorCt();if(!a){b.el.dom.title=c;return}b.errorEl=a.createChild({cls:"x-form-invalid-msg"});b.on("resize",b.alignErrorEl,b);b.on("destroy",function(){Ext.destroy(this.errorEl)},b)}b.alignErrorEl();b.errorEl.update(c);Ext.form.Field.msgFx[b.msgFx].show(b.errorEl,b)},clear:function(a){a.el.removeClass(a.invalidClass);if(a.errorEl){Ext.form.Field.msgFx[a.msgFx].hide(a.errorEl,a)}else{a.el.dom.title=""}}},side:{mark:function(b,c){b.el.addClass(b.invalidClass);if(!b.errorIcon){var a=b.getErrorCt();if(!a){b.el.dom.title=c;return}b.errorIcon=a.createChild({cls:"x-form-invalid-icon"});if(b.ownerCt){b.ownerCt.on("afterlayout",b.alignErrorIcon,b);b.ownerCt.on("expand",b.alignErrorIcon,b)}b.on("resize",b.alignErrorIcon,b);b.on("destroy",function(){Ext.destroy(this.errorIcon)},b)}b.alignErrorIcon();b.errorIcon.dom.qtip=c;b.errorIcon.dom.qclass="x-form-invalid-tip";b.errorIcon.show()},clear:function(a){a.el.removeClass(a.invalidClass);if(a.errorIcon){a.errorIcon.dom.qtip="";a.errorIcon.hide()}else{a.el.dom.title=""}}}};Ext.form.Field.msgFx={normal:{show:function(a,b){a.setDisplayed("block")},hide:function(a,b){a.setDisplayed(false).update("")}},slide:{show:function(a,b){a.slideIn("t",{stopFx:true})},hide:function(a,b){a.slideOut("t",{stopFx:true,useDisplay:true})}},slideRight:{show:function(a,b){a.fixDisplay();a.alignTo(b.el,"tl-tr");a.slideIn("l",{stopFx:true})},hide:function(a,b){a.slideOut("l",{stopFx:true,useDisplay:true})}}};Ext.reg("field",Ext.form.Field);Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.mon(this.el,"keyup",this.filterValidation,this)}else{if(this.validationEvent!==false&&this.validationEvent!="blur"){this.mon(this.el,this.validationEvent,this.validate,this,{buffer:this.validationDelay})}}if(this.selectOnFocus||this.emptyText){this.mon(this.el,"mousedown",this.onMouseDown,this);if(this.emptyText){this.applyEmptyText()}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.mon(this.el,"keypress",this.filterKeys,this)}if(this.grow){this.mon(this.el,"keyup",this.onKeyUpBuffered,this,{buffer:50});this.mon(this.el,"click",this.autoSize,this)}if(this.enableKeyEvents){this.mon(this.el,{scope:this,keyup:this.onKeyUp,keydown:this.onKeyDown,keypress:this.onKeyPress})}},onMouseDown:function(a){if(!this.hasFocus){this.mon(this.el,"mouseup",Ext.emptyFn,this,{single:true,preventDefault:true})}},processValue:function(a){if(this.stripCharsRe){var b=a.replace(this.stripCharsRe,"");if(b!==a){this.setRawValue(b);return b}}return a},filterValidation:function(a){if(!a.isNavKeyPress()){this.validationTask.delay(this.validationDelay)}},onDisable:function(){Ext.form.TextField.superclass.onDisable.call(this);if(Ext.isIE){this.el.dom.unselectable="on"}},onEnable:function(){Ext.form.TextField.superclass.onEnable.call(this);if(Ext.isIE){this.el.dom.unselectable=""}},onKeyUpBuffered:function(a){if(this.doAutoSize(a)){this.autoSize()}},doAutoSize:function(a){return!a.isNavKeyPress()},onKeyUp:function(a){this.fireEvent("keyup",this,a)},onKeyDown:function(a){this.fireEvent("keydown",this,a)},onKeyPress:function(a){this.fireEvent("keypress",this,a)},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText()},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1&&!this.hasFocus){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass)}},preFocus:function(){var a=this.el;if(this.emptyText){if(a.dom.value==this.emptyText){this.setRawValue("")}a.removeClass(this.emptyClass)}if(this.selectOnFocus){a.dom.select()}},postBlur:function(){this.applyEmptyText()},filterKeys:function(b){if(b.ctrlKey){return}var a=b.getKey();if(Ext.isGecko&&(b.isNavKeyPress()||a==b.BACKSPACE||(a==b.DELETE&&b.button==-1))){return}var c=String.fromCharCode(b.getCharCode());if(!Ext.isGecko&&b.isSpecialKey()&&!c){return}if(!this.maskRe.test(c)){b.stopEvent()}},setValue:function(a){if(this.emptyText&&this.el&&!Ext.isEmpty(a)){this.el.removeClass(this.emptyClass)}Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize();return this},getErrors:function(a){var d=Ext.form.TextField.superclass.getErrors.apply(this,arguments);a=a||this.processValue(this.getRawValue());if(Ext.isFunction(this.validator)){var c=this.validator(a);if(c!==true){d.push(c)}}if(a.length<1||a===this.emptyText){if(this.allowBlank){return d}else{d.push(this.blankText)}}if(!this.allowBlank&&(a.length<1||a===this.emptyText)){d.push(this.blankText)}if(a.length<this.minLength){d.push(String.format(this.minLengthText,this.minLength))}if(a.length>this.maxLength){d.push(String.format(this.maxLengthText,this.maxLength))}if(this.vtype){var b=Ext.form.VTypes;if(!b[this.vtype](a,this)){d.push(this.vtypeText||b[this.vtype+"Text"])}}if(this.regex&&!this.regex.test(a)){d.push(this.regexText)}return d},selectText:function(h,a){var c=this.getRawValue();var e=false;if(c.length>0){h=h===undefined?0:h;a=a===undefined?c.length:a;var g=this.el.dom;if(g.setSelectionRange){g.setSelectionRange(h,a)}else{if(g.createTextRange){var b=g.createTextRange();b.moveStart("character",h);b.moveEnd("character",a-c.length);b.select()}}e=Ext.isGecko||Ext.isOpera}else{e=true}if(e){this.focus()}},autoSize:function(){if(!this.grow||!this.rendered){return}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var c=this.el;var b=c.dom.value;var e=document.createElement("div");e.appendChild(document.createTextNode(b));b=e.innerHTML;Ext.removeNode(e);e=null;b+="&#160;";var a=Math.min(this.growMax,Math.max(this.metrics.getWidth(b)+10,this.growMin));this.el.setWidth(a);this.fireEvent("autosize",this,a)},onDestroy:function(){if(this.validationTask){this.validationTask.cancel();this.validationTask=null}Ext.form.TextField.superclass.onDestroy.call(this)}});Ext.reg("textfield",Ext.form.TextField);Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,editable:true,readOnly:false,wrapFocusClass:"x-trigger-wrap-focus",autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,actionMode:"wrap",defaultTriggerWidth:17,onResize:function(a,c){Ext.form.TriggerField.superclass.onResize.call(this,a,c);var b=this.getTriggerWidth();if(Ext.isNumber(a)){this.el.setWidth(a-b)}this.wrap.setWidth(this.el.getWidth()+b)},getTriggerWidth:function(){var a=this.trigger.getWidth();if(!this.hideTrigger&&!this.readOnly&&a===0){a=this.defaultTriggerWidth}return a},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}},onRender:function(b,a){this.doc=Ext.isIE?Ext.getBody():Ext.getDoc();Ext.form.TriggerField.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({cls:"x-form-field-wrap x-form-field-trigger-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}this.resizeEl=this.positionEl=this.wrap},getWidth:function(){return(this.el.getWidth()+this.trigger.getWidth())},updateEditState:function(){if(this.rendered){if(this.readOnly){this.el.dom.readOnly=true;this.el.addClass("x-trigger-noedit");this.mun(this.el,"click",this.onTriggerClick,this);this.trigger.setDisplayed(false)}else{if(!this.editable){this.el.dom.readOnly=true;this.el.addClass("x-trigger-noedit");this.mon(this.el,"click",this.onTriggerClick,this)}else{this.el.dom.readOnly=false;this.el.removeClass("x-trigger-noedit");this.mun(this.el,"click",this.onTriggerClick,this)}this.trigger.setDisplayed(!this.hideTrigger)}this.onResize(this.width||this.wrap.getWidth())}},setHideTrigger:function(a){if(a!=this.hideTrigger){this.hideTrigger=a;this.updateEditState()}},setEditable:function(a){if(a!=this.editable){this.editable=a;this.updateEditState()}},setReadOnly:function(a){if(a!=this.readOnly){this.readOnly=a;this.updateEditState()}},afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);this.updateEditState()},initTrigger:function(){this.mon(this.trigger,"click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},onDestroy:function(){Ext.destroy(this.trigger,this.wrap);if(this.mimicing){this.doc.un("mousedown",this.mimicBlur,this)}delete this.doc;Ext.form.TriggerField.superclass.onDestroy.call(this)},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass(this.wrapFocusClass);this.mimicing=true;this.doc.on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab){this.on("specialkey",this.checkTab,this)}}},checkTab:function(a,b){if(b.getKey()==b.TAB){this.triggerBlur()}},onBlur:Ext.emptyFn,mimicBlur:function(a){if(!this.isDestroyed&&!this.wrap.contains(a.target)&&this.validateBlur(a)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;this.doc.un("mousedown",this.mimicBlur,this);if(this.monitorTab&&this.el){this.un("specialkey",this.checkTab,this)}Ext.form.TriggerField.superclass.onBlur.call(this);if(this.wrap){this.wrap.removeClass(this.wrapFocusClass)}},beforeBlur:Ext.emptyFn,validateBlur:function(a){return true},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]}},getTrigger:function(a){return this.triggers[a]},afterRender:function(){Ext.form.TwinTriggerField.superclass.afterRender.call(this);var c=this.triggers,b=0,a=c.length;for(;b<a;++b){if(this["hideTrigger"+(b+1)]){c[b].hide()}}},initTrigger:function(){var a=this.trigger.select(".x-form-trigger",true),b=this;a.each(function(d,g,c){var e="Trigger"+(c+1);d.hide=function(){var h=b.wrap.getWidth();this.dom.style.display="none";b.el.setWidth(h-b.trigger.getWidth());this["hidden"+e]=true};d.show=function(){var h=b.wrap.getWidth();this.dom.style.display="";b.el.setWidth(h-b.trigger.getWidth());this["hidden"+e]=false};this.mon(d,"click",this["on"+e+"Click"],this,{preventDefault:true});d.addClassOnOver("x-form-trigger-over");d.addClassOnClick("x-form-trigger-click")},this);this.triggers=a.elements},getTriggerWidth:function(){var a=0;Ext.each(this.triggers,function(d,c){var e="Trigger"+(c+1),b=d.getWidth();if(b===0&&!this["hidden"+e]){a+=this.defaultTriggerWidth}else{a+=b}},this);return a},onDestroy:function(){Ext.destroy(this.triggers);Ext.form.TwinTriggerField.superclass.onDestroy.call(this)},onTrigger1Click:Ext.emptyFn,onTrigger2Click:Ext.emptyFn});Ext.reg("trigger",Ext.form.TriggerField);Ext.form.TextArea=Ext.extend(Ext.form.TextField,{growMin:60,growMax:1000,growAppend:"&#160;\n&#160;",enterIsSpecial:false,preventScrollbars:false,onRender:function(b,a){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off"}}Ext.form.TextArea.superclass.onRender.call(this,b,a);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden")}this.el.setHeight(this.growMin)}},onDestroy:function(){Ext.removeNode(this.textSizeEl);Ext.form.TextArea.superclass.onDestroy.call(this)},fireKey:function(a){if(a.isSpecialKey()&&(this.enterIsSpecial||(a.getKey()!=a.ENTER||a.hasModifier()))){this.fireEvent("specialkey",this,a)}},doAutoSize:function(a){return!a.isNavKeyPress()||a.getKey()==a.ENTER},autoSize:function(){if(!this.grow||!this.textSizeEl){return}var c=this.el,a=Ext.util.Format.htmlEncode(c.dom.value),d=this.textSizeEl,b;Ext.fly(d).setWidth(this.el.getWidth());if(a.length<1){a="&#160;&#160;"}else{a+=this.growAppend;if(Ext.isIE){a=a.replace(/\n/g,"&#160;<br />")}}d.innerHTML=a;b=Math.min(this.growMax,Math.max(d.offsetHeight,this.growMin));if(b!=this.lastHeight){this.lastHeight=b;this.el.setHeight(b);this.fireEvent("autosize",this,b)}}});Ext.reg("textarea",Ext.form.TextArea);Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",initEvents:function(){var a=this.baseChars+"";if(this.allowDecimals){a+=this.decimalSeparator}if(this.allowNegative){a+="-"}this.maskRe=new RegExp("["+Ext.escapeRe(a)+"]");Ext.form.NumberField.superclass.initEvents.call(this)},getErrors:function(b){var c=Ext.form.NumberField.superclass.getErrors.apply(this,arguments);b=b||this.processValue(this.getRawValue());if(b.length<1){return c}b=String(b).replace(this.decimalSeparator,".");if(isNaN(b)){c.push(String.format(this.nanText,b))}var a=this.parseValue(b);if(a<this.minValue){c.push(String.format(this.minText,this.minValue))}if(a>this.maxValue){c.push(String.format(this.maxText,this.maxValue))}return c},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(a){a=this.fixPrecision(a);a=Ext.isNumber(a)?a:parseFloat(String(a).replace(this.decimalSeparator,"."));a=isNaN(a)?"":String(a).replace(".",this.decimalSeparator);return Ext.form.NumberField.superclass.setValue.call(this,a)},setMinValue:function(a){this.minValue=Ext.num(a,Number.NEGATIVE_INFINITY)},setMaxValue:function(a){this.maxValue=Ext.num(a,Number.MAX_VALUE)},parseValue:function(a){a=parseFloat(String(a).replace(this.decimalSeparator,"."));return isNaN(a)?"":a},fixPrecision:function(b){var a=isNaN(b);if(!this.allowDecimals||this.decimalPrecision==-1||a||!b){return a?"":b}return parseFloat(parseFloat(b).toFixed(this.decimalPrecision))},beforeBlur:function(){var a=this.parseValue(this.getRawValue());if(!Ext.isEmpty(a)){this.setValue(a)}}});Ext.reg("numberfield",Ext.form.NumberField);Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initTime:"12",initTimeFormat:"H",safeParse:function(b,c){if(/[gGhH]/.test(c.replace(/(\\.)/g,""))){return Date.parseDate(b,c)}else{var a=Date.parseDate(b+" "+this.initTime,c+" "+this.initTimeFormat);if(a){return a.clearTime()}}},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);this.addEvents("select");if(Ext.isString(this.minValue)){this.minValue=this.parseDate(this.minValue)}if(Ext.isString(this.maxValue)){this.maxValue=this.parseDate(this.maxValue)}this.disabledDatesRE=null;this.initDisabledDays()},initEvents:function(){Ext.form.DateField.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{down:function(a){this.onTriggerClick()},scope:this,forceKeyDown:true})},initDisabledDays:function(){if(this.disabledDates){var b=this.disabledDates,a=b.length-1,c="(?:";Ext.each(b,function(g,e){c+=Ext.isDate(g)?"^"+Ext.escapeRe(g.dateFormat(this.format))+"$":b[e];if(e!=a){c+="|"}},this);this.disabledDatesRE=new RegExp(c+")")}},setDisabledDates:function(a){this.disabledDates=a;this.initDisabledDays();if(this.menu){this.menu.picker.setDisabledDates(this.disabledDatesRE)}},setDisabledDays:function(a){this.disabledDays=a;if(this.menu){this.menu.picker.setDisabledDays(a)}},setMinValue:function(a){this.minValue=(Ext.isString(a)?this.parseDate(a):a);if(this.menu){this.menu.picker.setMinDate(this.minValue)}},setMaxValue:function(a){this.maxValue=(Ext.isString(a)?this.parseDate(a):a);if(this.menu){this.menu.picker.setMaxDate(this.maxValue)}},getErrors:function(e){var h=Ext.form.DateField.superclass.getErrors.apply(this,arguments);e=this.formatDate(e||this.processValue(this.getRawValue()));if(e.length<1){return h}var c=e;e=this.parseDate(e);if(!e){h.push(String.format(this.invalidText,c,this.format));return h}var g=e.getTime();if(this.minValue&&g<this.minValue.clearTime().getTime()){h.push(String.format(this.minText,this.formatDate(this.minValue)))}if(this.maxValue&&g>this.maxValue.clearTime().getTime()){h.push(String.format(this.maxText,this.formatDate(this.maxValue)))}if(this.disabledDays){var a=e.getDay();for(var b=0;b<this.disabledDays.length;b++){if(a===this.disabledDays[b]){h.push(this.disabledDaysText);break}}}var d=this.formatDate(e);if(this.disabledDatesRE&&this.disabledDatesRE.test(d)){h.push(String.format(this.disabledDatesText,d))}return h},validateBlur:function(){return!this.menu||!this.menu.isVisible()},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||""},setValue:function(a){return Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(a)))},parseDate:function(g){if(!g||Ext.isDate(g)){return g}var b=this.safeParse(g,this.format),c=this.altFormats,e=this.altFormatsArray;if(!b&&c){e=e||c.split("|");for(var d=0,a=e.length;d<a&&!b;d++){b=this.safeParse(g,e[d])}}return b},onDestroy:function(){Ext.destroy(this.menu,this.keyNav);Ext.form.DateField.superclass.onDestroy.call(this)},formatDate:function(a){return Ext.isDate(a)?a.dateFormat(this.format):a},onTriggerClick:function(){if(this.disabled){return}if(this.menu==null){this.menu=new Ext.menu.DateMenu({hideOnClick:false,focusOnSelect:false})}this.onFocus();Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.disabledDatesRE,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?");this.menuEvents("on")},menuEvents:function(a){this.menu[a]("select",this.onSelect,this);this.menu[a]("hide",this.onMenuHide,this);this.menu[a]("show",this.onFocus,this)},onSelect:function(a,b){this.setValue(b);this.fireEvent("select",this,b);this.menu.hide()},onMenuHide:function(){this.focus(false,60);this.menuEvents("un")},beforeBlur:function(){var a=this.parseDate(this.getRawValue());if(a){this.setValue(a)}}});Ext.reg("datefield",Ext.form.DateField);Ext.form.DisplayField=Ext.extend(Ext.form.Field,{validationEvent:false,validateOnBlur:false,defaultAutoCreate:{tag:"div"},fieldClass:"x-form-display-field",htmlEncode:false,initEvents:Ext.emptyFn,isValid:function(){return true},validate:function(){return true},getRawValue:function(){var a=this.rendered?this.el.dom.innerHTML:Ext.value(this.value,"");if(a===this.emptyText){a=""}if(this.htmlEncode){a=Ext.util.Format.htmlDecode(a)}return a},getValue:function(){return this.getRawValue()},getName:function(){return this.name},setRawValue:function(a){if(this.htmlEncode){a=Ext.util.Format.htmlEncode(a)}return this.rendered?(this.el.dom.innerHTML=(Ext.isEmpty(a)?"":a)):(this.value=a)},setValue:function(a){this.setRawValue(a);return this}});Ext.reg("displayfield",Ext.form.DisplayField);Ext.form.ComboBox=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off"},listClass:"",selectedClass:"x-combo-selected",listEmptyText:"",triggerClass:"x-form-arrow-trigger",shadow:"sides",listAlign:"tl-bl?",maxHeight:300,minHeight:90,triggerAction:"query",minChars:4,autoSelect:true,typeAhead:false,queryDelay:500,pageSize:0,selectOnFocus:false,queryParam:"query",loadingText:"Loading...",resizable:false,handleHeight:8,allQuery:"",mode:"remote",minListWidth:70,forceSelection:false,typeAheadDelay:250,lazyInit:true,clearFilterOnReset:true,submitValue:undefined,initComponent:function(){Ext.form.ComboBox.superclass.initComponent.call(this);this.addEvents("expand","collapse","beforeselect","select","beforequery");if(this.transform){var c=Ext.getDom(this.transform);if(!this.hiddenName){this.hiddenName=c.name}if(!this.store){this.mode="local";var j=[],e=c.options;for(var b=0,a=e.length;b<a;b++){var h=e[b],g=(h.hasAttribute?h.hasAttribute("value"):h.getAttributeNode("value").specified)?h.value:h.text;if(h.selected&&Ext.isEmpty(this.value,true)){this.value=g}j.push([g,h.text])}this.store=new Ext.data.ArrayStore({id:0,fields:["value","text"],data:j,autoDestroy:true});this.valueField="value";this.displayField="text"}c.name=Ext.id();if(!this.lazyRender){this.target=true;this.el=Ext.DomHelper.insertBefore(c,this.autoCreate||this.defaultAutoCreate);this.render(this.el.parentNode,c)}Ext.removeNode(c)}else{if(this.store){this.store=Ext.StoreMgr.lookup(this.store);if(this.store.autoCreated){this.displayField=this.valueField="field1";if(!this.store.expandData){this.displayField="field2"}this.mode="local"}}}this.selectedIndex=-1;if(this.mode=="local"){if(!Ext.isDefined(this.initialConfig.queryDelay)){this.queryDelay=10}if(!Ext.isDefined(this.initialConfig.minChars)){this.minChars=0}}},onRender:function(b,a){if(this.hiddenName&&!Ext.isDefined(this.submitValue)){this.submitValue=false}Ext.form.ComboBox.superclass.onRender.call(this,b,a);if(this.hiddenName){this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:this.hiddenName,id:(this.hiddenId||this.hiddenName)},"before",true)}if(Ext.isGecko){this.el.dom.setAttribute("autocomplete","off")}if(!this.lazyInit){this.initList()}else{this.on("focus",this.initList,this,{single:true})}},initValue:function(){Ext.form.ComboBox.superclass.initValue.call(this);if(this.hiddenField){this.hiddenField.value=Ext.value(Ext.isDefined(this.hiddenValue)?this.hiddenValue:this.value,"")}},getParentZIndex:function(){var a;if(this.ownerCt){this.findParentBy(function(b){a=parseInt(b.getPositionEl().getStyle("z-index"),10);return!!a})}return a},getZIndex:function(b){b=b||Ext.getDom(this.getListParent()||Ext.getBody());var a=parseInt(Ext.fly(b).getStyle("z-index"),10);if(!a){a=this.getParentZIndex()}return(a||12000)+5},initList:function(){if(!this.list){var a="x-combo-list",c=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:c,shadow:this.shadow,cls:[a,this.listClass].join(" "),constrain:false,zindex:this.getZIndex(c)});var b=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(b,0);this.list.swallowEvent("mousewheel");this.assetHeight=0;if(this.syncFont!==false){this.list.setStyle("font-size",this.el.getStyle("font-size"))}if(this.title){this.header=this.list.createChild({cls:a+"-hd",html:this.title});this.assetHeight+=this.header.getHeight()}this.innerList=this.list.createChild({cls:a+"-inner"});this.mon(this.innerList,"mouseover",this.onViewOver,this);this.mon(this.innerList,"mousemove",this.onViewMove,this);this.innerList.setWidth(b-this.list.getFrameWidth("lr"));if(this.pageSize){this.footer=this.list.createChild({cls:a+"-ft"});this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight()}if(!this.tpl){this.tpl='<tpl for="."><div class="'+a+'-item">{'+this.displayField+"}</div></tpl>"}this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+a+"-item",emptyText:this.listEmptyText,deferEmptyText:false});this.mon(this.view,{containerclick:this.onViewClick,click:this.onViewClick,scope:this});this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.mon(this.resizer,"resize",function(g,d,e){this.maxHeight=e-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=d;this.innerList.setWidth(d-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}}},getListParent:function(){return document.body},getStore:function(){return this.store},bindStore:function(a,b){if(this.store&&!b){if(this.store!==a&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.collapse,this)}if(!a){this.store=null;if(this.view){this.view.bindStore(null)}if(this.pageTb){this.pageTb.bindStore(null)}}}if(a){if(!b){this.lastQuery=null;if(this.pageTb){this.pageTb.bindStore(a)}}this.store=Ext.StoreMgr.lookup(a);this.store.on({scope:this,beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.collapse});if(this.view){this.view.bindStore(a)}}},reset:function(){Ext.form.ComboBox.superclass.reset.call(this);if(this.clearFilterOnReset&&this.mode=="local"){this.store.clearFilter()}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{up:function(a){this.inKeyMode=true;this.selectPrev()},down:function(a){if(!this.isExpanded()){this.onTriggerClick()}else{this.inKeyMode=true;this.selectNext()}},enter:function(a){this.onViewClick()},esc:function(a){this.collapse()},tab:function(a){if(this.forceSelection===true){this.collapse()}else{this.onViewClick(false)}return true},scope:this,doRelay:function(c,b,a){if(a=="down"||this.scope.isExpanded()){var d=Ext.KeyNav.prototype.doRelay.apply(this,arguments);if(!Ext.isIE&&Ext.EventManager.useKeydown){this.scope.fireKey(c)}return d}return true},forceKeyDown:true,defaultEventAction:"stopEvent"});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(!this.enableKeyEvents){this.mon(this.el,"keyup",this.onKeyUp,this)}},onDestroy:function(){if(this.dqTask){this.dqTask.cancel();this.dqTask=null}this.bindStore(null);Ext.destroy(this.resizer,this.view,this.pageTb,this.list);Ext.destroyMembers(this,"hiddenField");Ext.form.ComboBox.superclass.onDestroy.call(this)},fireKey:function(a){if(!this.isExpanded()){Ext.form.ComboBox.superclass.fireKey.call(this,a)}},onResize:function(a,b){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(!isNaN(a)&&this.isVisible()&&this.list){this.doResize(a)}else{this.bufferSize=a}},doResize:function(a){if(!Ext.isDefined(this.listWidth)){var b=Math.max(a,this.minListWidth);this.list.setWidth(b);this.innerList.setWidth(b-this.list.getFrameWidth("lr"))}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=false}},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=true}},onBeforeLoad:function(){if(!this.hasFocus){return}this.innerList.update(this.loadingText?'<div class="loading-indicator">'+this.loadingText+"</div>":"");this.restrictHeight();this.selectedIndex=-1},onLoad:function(){if(!this.hasFocus){return}if(this.store.getCount()>0||this.listEmptyText){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select()}if(this.autoSelect!==false&&!this.selectByValue(this.value,true)){this.select(0,true)}}else{if(this.autoSelect!==false){this.selectNext()}if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay)}}}else{this.collapse()}},onTypeAhead:function(){if(this.store.getCount()>0){var b=this.store.getAt(0);var c=b.data[this.displayField];var a=c.length;var d=this.getRawValue().length;if(d!=a){this.setRawValue(c);this.selectText(d,c.length)}}},assertValue:function(){var b=this.getRawValue(),a=this.findRecord(this.displayField,b);if(!a&&this.forceSelection){if(b.length>0&&b!=this.emptyText){this.el.dom.value=Ext.value(this.lastSelectionText,"");this.applyEmptyText()}else{this.clearValue()}}else{if(a){if(b==a.get(this.displayField)&&this.value==a.get(this.valueField)){return}b=a.get(this.valueField||this.displayField)}this.setValue(b)}},onSelect:function(a,b){if(this.fireEvent("beforeselect",this,a,b)!==false){this.setValue(a.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,a,b)}},getName:function(){var a=this.hiddenField;return a&&a.name?a.name:this.hiddenName||Ext.form.ComboBox.superclass.getName.call(this)},getValue:function(){if(this.valueField){return Ext.isDefined(this.value)?this.value:""}else{return Ext.form.ComboBox.superclass.getValue.call(this)}},clearValue:function(){if(this.hiddenField){this.hiddenField.value=""}this.setRawValue("");this.lastSelectionText="";this.applyEmptyText();this.value=""},setValue:function(a){var c=a;if(this.valueField){var b=this.findRecord(this.valueField,a);if(b){c=b.data[this.displayField]}else{if(Ext.isDefined(this.valueNotFoundText)){c=this.valueNotFoundText}}}this.lastSelectionText=c;if(this.hiddenField){this.hiddenField.value=Ext.value(a,"")}Ext.form.ComboBox.superclass.setValue.call(this,c);this.value=a;return this},findRecord:function(c,b){var a;if(this.store.getCount()>0){this.store.each(function(d){if(d.data[c]==b){a=d;return false}})}return a},onViewMove:function(b,a){this.inKeyMode=false},onViewOver:function(d,b){if(this.inKeyMode){return}var c=this.view.findItemFromChild(b);if(c){var a=this.view.indexOf(c);this.select(a,false)}},onViewClick:function(b){var a=this.view.getSelectedIndexes()[0],c=this.store,d=c.getAt(a);if(d){this.onSelect(d,a)}else{this.collapse()}if(b!==false){this.el.focus()}},restrictHeight:function(){this.innerList.dom.style.height="";var b=this.innerList.dom,e=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight,c=Math.max(b.clientHeight,b.offsetHeight,b.scrollHeight),a=this.getPosition()[1]-Ext.getBody().getScroll().top,g=Ext.lib.Dom.getViewHeight()-a-this.getSize().height,d=Math.max(a,g,this.minHeight||0)-this.list.shadowOffset-e-5;c=Math.min(c,d,this.maxHeight);this.innerList.setHeight(c);this.list.beginUpdate();this.list.setHeight(c+e);this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.endUpdate()},isExpanded:function(){return this.list&&this.list.isVisible()},selectByValue:function(a,c){if(!Ext.isEmpty(a,true)){var b=this.findRecord(this.valueField||this.displayField,a);if(b){this.select(this.store.indexOf(b),c);return true}}return false},select:function(a,c){this.selectedIndex=a;this.view.select(a);if(c!==false){var b=this.view.getNode(a);if(b){this.innerList.scrollChildIntoView(b,false)}}},selectNext:function(){var a=this.store.getCount();if(a>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex<a-1){this.select(this.selectedIndex+1)}}}},selectPrev:function(){var a=this.store.getCount();if(a>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex!==0){this.select(this.selectedIndex-1)}}}},onKeyUp:function(b){var a=b.getKey();if(this.editable!==false&&this.readOnly!==true&&(a==b.BACKSPACE||!b.isSpecialKey())){this.lastKey=a;this.dqTask.delay(this.queryDelay)}Ext.form.ComboBox.superclass.onKeyUp.call(this,b)},validateBlur:function(){return!this.list||!this.list.isVisible()},initQuery:function(){this.doQuery(this.getRawValue())},beforeBlur:function(){this.assertValue()},postBlur:function(){Ext.form.ComboBox.superclass.postBlur.call(this);this.collapse();this.inKeyMode=false},doQuery:function(c,b){c=Ext.isEmpty(c)?"":c;var a={query:c,forceAll:b,combo:this,cancel:false};if(this.fireEvent("beforequery",a)===false||a.cancel){return false}c=a.query;b=a.forceAll;if(b===true||(c.length>=this.minChars)){if(this.lastQuery!==c){this.lastQuery=c;if(this.mode=="local"){this.selectedIndex=-1;if(b){this.store.clearFilter()}else{this.store.filter(this.displayField,c)}this.onLoad()}else{this.store.baseParams[this.queryParam]=c;this.store.load({params:this.getParams(c)});this.expand()}}else{this.selectedIndex=-1;this.onLoad()}}},getParams:function(a){var b={};if(this.pageSize){b.start=0;b.limit=this.pageSize}return b},collapse:function(){if(!this.isExpanded()){return}this.list.hide();Ext.getDoc().un("mousewheel",this.collapseIf,this);Ext.getDoc().un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this)},collapseIf:function(a){if(!this.isDestroyed&&!a.within(this.wrap)&&!a.within(this.list)){this.collapse()}},expand:function(){if(this.isExpanded()||!this.hasFocus){return}if(this.title||this.pageSize){this.assetHeight=0;if(this.title){this.assetHeight+=this.header.getHeight()}if(this.pageSize){this.assetHeight+=this.footer.getHeight()}}if(this.bufferSize){this.doResize(this.bufferSize);delete this.bufferSize}this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.setZIndex(this.getZIndex());this.list.show();if(Ext.isGecko2){this.innerList.setOverflow("auto")}this.mon(Ext.getDoc(),{scope:this,mousewheel:this.collapseIf,mousedown:this.collapseIf});this.fireEvent("expand",this)},onTriggerClick:function(){if(this.readOnly||this.disabled){return}if(this.isExpanded()){this.collapse();this.el.focus()}else{this.onFocus({});if(this.triggerAction=="all"){this.doQuery(this.allQuery,true)}else{this.doQuery(this.getRawValue())}this.el.focus()}}});Ext.reg("combo",Ext.form.ComboBox);Ext.form.Checkbox=Ext.extend(Ext.form.Field,{focusClass:undefined,fieldClass:"x-form-field",checked:false,boxLabel:"&#160;",defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},actionMode:"wrap",initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents("check")},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel){this.el.alignTo(this.wrap,"c-c")}},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.mon(this.el,{scope:this,click:this.onClick,change:this.onClick})},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,onRender:function(b,a){Ext.form.Checkbox.superclass.onRender.call(this,b,a);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue}this.wrap=this.el.wrap({cls:"x-form-check-wrap"});if(this.boxLabel){this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}if(this.checked){this.setValue(true)}else{this.checked=this.el.dom.checked}if(Ext.isIE&&!Ext.isStrict){this.wrap.repaint()}this.resizeEl=this.positionEl=this.wrap},onDestroy:function(){Ext.destroy(this.wrap);Ext.form.Checkbox.superclass.onDestroy.call(this)},initValue:function(){this.originalValue=this.getValue()},getValue:function(){if(this.rendered){return this.el.dom.checked}return this.checked},onClick:function(){if(this.el.dom.checked!=this.checked){this.setValue(this.el.dom.checked)}},setValue:function(a){var b=this.checked;this.checked=(a===true||a==="true"||a=="1"||String(a).toLowerCase()=="on");if(this.rendered){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}if(b!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked)}}return this}});Ext.reg("checkbox",Ext.form.Checkbox);Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkbox",groupCls:"x-form-check-group",initComponent:function(){this.addEvents("change");this.on("change",this.validate,this);Ext.form.CheckboxGroup.superclass.initComponent.call(this)},onRender:function(j,g){if(!this.el){var p={autoEl:{id:this.id},cls:this.groupCls,layout:"column",renderTo:j,bufferResize:false};var a={xtype:"container",defaultType:this.defaultType,layout:"form",defaults:{hideLabel:true,anchor:"100%"}};if(this.items[0].items){Ext.apply(p,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items});for(var e=0,m=this.items.length;e<m;e++){Ext.applyIf(this.items[e],a)}}else{var d,n=[];if(typeof this.columns=="string"){this.columns=this.items.length}if(!Ext.isArray(this.columns)){var k=[];for(var e=0;e<this.columns;e++){k.push((100/this.columns)*0.01)}this.columns=k}d=this.columns.length;for(var e=0;e<d;e++){var b=Ext.apply({items:[]},a);b[this.columns[e]<=1?"columnWidth":"width"]=this.columns[e];if(this.defaults){b.defaults=Ext.apply(b.defaults||{},this.defaults)}n.push(b)}if(this.vertical){var r=Math.ceil(this.items.length/d),o=0;for(var e=0,m=this.items.length;e<m;e++){if(e>0&&e%r==0){o++}if(this.items[e].fieldLabel){this.items[e].hideLabel=false}n[o].items.push(this.items[e])}}else{for(var e=0,m=this.items.length;e<m;e++){var q=e%d;if(this.items[e].fieldLabel){this.items[e].hideLabel=false}n[q].items.push(this.items[e])}}Ext.apply(p,{layoutConfig:{columns:d},items:n})}this.panel=new Ext.Container(p);this.panel.ownerCt=this;this.el=this.panel.getEl();if(this.forId&&this.itemCls){var c=this.el.up(this.itemCls).child("label",true);if(c){c.setAttribute("htmlFor",this.forId)}}var h=this.panel.findBy(function(i){return i.isFormField},this);this.items=new Ext.util.MixedCollection();this.items.addAll(h)}Ext.form.CheckboxGroup.superclass.onRender.call(this,j,g)},initValue:function(){if(this.value){this.setValue.apply(this,this.buffered?this.value:[this.value]);delete this.buffered;delete this.value}},afterRender:function(){Ext.form.CheckboxGroup.superclass.afterRender.call(this);this.eachItem(function(a){a.on("check",this.fireChecked,this);a.inGroup=true})},doLayout:function(){if(this.rendered){this.panel.forceLayout=this.ownerCt.forceLayout;this.panel.doLayout()}},fireChecked:function(){var a=[];this.eachItem(function(b){if(b.checked){a.push(b)}});this.fireEvent("change",this,a)},getErrors:function(){var b=Ext.form.CheckboxGroup.superclass.getErrors.apply(this,arguments);if(!this.allowBlank){var a=true;this.eachItem(function(c){if(c.checked){return(a=false)}});if(a){b.push(this.blankText)}}return b},isDirty:function(){if(this.disabled||!this.rendered){return false}var a=false;this.eachItem(function(b){if(b.isDirty()){a=true;return false}});return a},setReadOnly:function(a){if(this.rendered){this.eachItem(function(b){b.setReadOnly(a)})}this.readOnly=a},onDisable:function(){this.eachItem(function(a){a.disable()})},onEnable:function(){this.eachItem(function(a){a.enable()})},onResize:function(a,b){this.panel.setSize(a,b);this.panel.doLayout()},reset:function(){if(this.originalValue){this.eachItem(function(a){if(a.setValue){a.setValue(false);a.originalValue=a.getValue()}});this.resetOriginal=true;this.setValue(this.originalValue);delete this.resetOriginal}else{this.eachItem(function(a){if(a.reset){a.reset()}})}(function(){this.clearInvalid()}).defer(50,this)},setValue:function(){if(this.rendered){this.onSetValue.apply(this,arguments)}else{this.buffered=true;this.value=arguments}return this},onSetValue:function(d,c){if(arguments.length==1){if(Ext.isArray(d)){Ext.each(d,function(h,e){if(Ext.isObject(h)&&h.setValue){h.setValue(true);if(this.resetOriginal===true){h.originalValue=h.getValue()}}else{var g=this.items.itemAt(e);if(g){g.setValue(h)}}},this)}else{if(Ext.isObject(d)){for(var a in d){var b=this.getBox(a);if(b){b.setValue(d[a])}}}else{this.setValueForItem(d)}}}else{var b=this.getBox(d);if(b){b.setValue(c)}}},beforeDestroy:function(){Ext.destroy(this.panel);Ext.form.CheckboxGroup.superclass.beforeDestroy.call(this)},setValueForItem:function(a){a=String(a).split(",");this.eachItem(function(b){if(a.indexOf(b.inputValue)>-1){b.setValue(true)}})},getBox:function(b){var a=null;this.eachItem(function(c){if(b==c||c.dataIndex==b||c.id==b||c.getName()==b){a=c;return false}});return a},getValue:function(){var a=[];this.eachItem(function(b){if(b.checked){a.push(b)}});return a},eachItem:function(b,a){if(this.items&&this.items.each){this.items.each(b,a||this)}},getRawValue:Ext.emptyFn,setRawValue:Ext.emptyFn});Ext.reg("checkboxgroup",Ext.form.CheckboxGroup);Ext.form.CompositeField=Ext.extend(Ext.form.Field,{defaultMargins:"0 5 0 0",skipLastItemMargin:true,isComposite:true,combineErrors:true,labelConnector:", ",initComponent:function(){var e=[],a=this.items,d;for(var c=0,b=a.length;c<b;c++){d=a[c];e.push(d.fieldLabel);Ext.apply(d,this.defaults);if(!(c==b-1&&this.skipLastItemMargin)){Ext.applyIf(d,{margins:this.defaultMargins})}}this.fieldLabel=this.fieldLabel||this.buildLabel(e);this.fieldErrors=new Ext.util.MixedCollection(true,function(g){return g.field});this.fieldErrors.on({scope:this,add:this.updateInvalidMark,remove:this.updateInvalidMark,replace:this.updateInvalidMark});Ext.form.CompositeField.superclass.initComponent.apply(this,arguments)},onRender:function(d,b){if(!this.el){var e=this.innerCt=new Ext.Container({layout:"hbox",renderTo:d,items:this.items,cls:"x-form-composite",defaultMargins:"0 3 0 0"});this.el=e.getEl();var a=e.findBy(function(g){return g.isFormField},this);this.items=new Ext.util.MixedCollection();this.items.addAll(a);if(this.combineErrors){this.eachItem(function(g){Ext.apply(g,{markInvalid:this.onFieldMarkInvalid.createDelegate(this,[g],0),clearInvalid:this.onFieldClearInvalid.createDelegate(this,[g],0)})})}var c=this.el.parent().parent().child("label",true);if(c){c.setAttribute("for",this.items.items[0].id)}}Ext.form.CompositeField.superclass.onRender.apply(this,arguments)},onFieldMarkInvalid:function(d,c){var b=d.getName(),a={field:b,error:c};this.fieldErrors.replace(b,a);d.el.addClass(d.invalidClass)},onFieldClearInvalid:function(a){this.fieldErrors.removeKey(a.getName());a.el.removeClass(a.invalidClass)},updateInvalidMark:function(){var a=Ext.isIE6&&Ext.isStrict;if(this.fieldErrors.length==0){this.clearInvalid();if(a){this.clearInvalid.defer(50,this)}}else{var b=this.buildCombinedErrorMessage(this.fieldErrors.items);this.sortErrors();this.markInvalid(b);if(a){this.markInvalid(b)}}},validateValue:function(){var a=true;this.eachItem(function(b){if(!b.isValid()){a=false}});return a},buildCombinedErrorMessage:function(e){var d=[],b;for(var c=0,a=e.length;c<a;c++){b=e[c];d.push(String.format("{0}: {1}",b.field,b.error))}return d.join("<br />")},sortErrors:function(){var a=this.items;this.fieldErrors.sort("ASC",function(g,d){var c=function(b){return function(i){return i.getName()==b}};var h=a.findIndexBy(c(g.field)),e=a.findIndexBy(c(d.field));return h<e?-1:1})},reset:function(){this.eachItem(function(a){a.reset()});(function(){this.clearInvalid()}).defer(50,this)},clearInvalidChildren:function(){this.eachItem(function(a){a.clearInvalid()})},buildLabel:function(a){return Ext.clean(a).join(this.labelConnector)},isDirty:function(){if(this.disabled||!this.rendered){return false}var a=false;this.eachItem(function(b){if(b.isDirty()){a=true;return false}});return a},eachItem:function(b,a){if(this.items&&this.items.each){this.items.each(b,a||this)}},onResize:function(e,c,a,d){var b=this.innerCt;if(this.rendered&&b.rendered){b.setSize(e,c)}Ext.form.CompositeField.superclass.onResize.apply(this,arguments)},doLayout:function(c,b){if(this.rendered){var a=this.innerCt;a.forceLayout=this.ownerCt.forceLayout;a.doLayout(c,b)}},beforeDestroy:function(){Ext.destroy(this.innerCt);Ext.form.CompositeField.superclass.beforeDestroy.call(this)},setReadOnly:function(a){a=a||true;if(this.rendered){this.eachItem(function(b){b.setReadOnly(a)})}this.readOnly=a},onShow:function(){Ext.form.CompositeField.superclass.onShow.call(this);this.doLayout()},onDisable:function(){this.eachItem(function(a){a.disable()})},onEnable:function(){this.eachItem(function(a){a.enable()})}});Ext.reg("compositefield",Ext.form.CompositeField);Ext.form.Radio=Ext.extend(Ext.form.Checkbox,{inputType:"radio",markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,getGroupValue:function(){var a=this.el.up("form")||Ext.getBody();var b=a.child("input[name="+this.el.dom.name+"]:checked",true);return b?b.value:null},onClick:function(){if(this.el.dom.checked!=this.checked){var a=this.getCheckEl().select("input[name="+this.el.dom.name+"]");a.each(function(b){if(b.dom.id==this.id){this.setValue(true)}else{Ext.getCmp(b.dom.id).setValue(false)}},this)}},setValue:function(a){if(typeof a=="boolean"){Ext.form.Radio.superclass.setValue.call(this,a)}else{if(this.rendered){var b=this.getCheckEl().child("input[name="+this.el.dom.name+"][value="+a+"]",true);if(b){Ext.getCmp(b.id).setValue(true)}}}return this},getCheckEl:function(){if(this.inGroup){return this.el.up(".x-form-radio-group")}return this.el.up("form")||Ext.getBody()}});Ext.reg("radio",Ext.form.Radio);Ext.form.RadioGroup=Ext.extend(Ext.form.CheckboxGroup,{allowBlank:true,blankText:"You must select one item in this group",defaultType:"radio",groupCls:"x-form-radio-group",getValue:function(){var a=null;this.eachItem(function(b){if(b.checked){a=b;return false}});return a},onSetValue:function(c,b){if(arguments.length>1){var a=this.getBox(c);if(a){a.setValue(b);if(a.checked){this.eachItem(function(d){if(d!==a){d.setValue(false)}})}}}else{this.setValueForItem(c)}},setValueForItem:function(a){a=String(a).split(",")[0];this.eachItem(function(b){b.setValue(a==b.inputValue)})},fireChecked:function(){if(!this.checkTask){this.checkTask=new Ext.util.DelayedTask(this.bufferChecked,this)}this.checkTask.delay(10)},bufferChecked:function(){var a=null;this.eachItem(function(b){if(b.checked){a=b;return false}});this.fireEvent("change",this,a)},onDestroy:function(){if(this.checkTask){this.checkTask.cancel();this.checkTask=null}Ext.form.RadioGroup.superclass.onDestroy.call(this)}});Ext.reg("radiogroup",Ext.form.RadioGroup);Ext.form.Hidden=Ext.extend(Ext.form.Field,{inputType:"hidden",onRender:function(){Ext.form.Hidden.superclass.onRender.apply(this,arguments)},initEvents:function(){this.originalValue=this.getValue()},setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.reg("hidden",Ext.form.Hidden);Ext.form.BasicForm=Ext.extend(Ext.util.Observable,{constructor:function(b,a){Ext.apply(this,a);if(Ext.isString(this.paramOrder)){this.paramOrder=this.paramOrder.split(/[\s,|]/)}this.items=new Ext.util.MixedCollection(false,function(c){return c.getItemId()});this.addEvents("beforeaction","actionfailed","actioncomplete");if(b){this.initEl(b)}Ext.form.BasicForm.superclass.constructor.call(this)},timeout:30,paramOrder:undefined,paramsAsHash:false,waitTitle:"Please Wait...",activeAction:null,trackResetOnLoad:false,initEl:function(a){this.el=Ext.get(a);this.id=this.el.id||Ext.id();if(!this.standardSubmit){this.el.on("submit",this.onSubmit,this)}this.el.addClass("x-form")},getEl:function(){return this.el},onSubmit:function(a){a.stopEvent()},destroy:function(a){if(a!==true){this.items.each(function(b){Ext.destroy(b)});Ext.destroy(this.el)}this.items.clear();this.purgeListeners()},isValid:function(){var a=true;this.items.each(function(b){if(!b.validate()){a=false}});return a},isDirty:function(){var a=false;this.items.each(function(b){if(b.isDirty()){a=true;return false}});return a},doAction:function(b,a){if(Ext.isString(b)){b=new Ext.form.Action.ACTION_TYPES[b](this,a)}if(this.fireEvent("beforeaction",this,b)!==false){this.beforeAction(b);b.run.defer(100,b)}return this},submit:function(b){b=b||{};if(this.standardSubmit){var a=b.clientValidation===false||this.isValid();if(a){var c=this.el.dom;if(this.url&&Ext.isEmpty(c.action)){c.action=this.url}c.submit()}return a}var d=String.format("{0}submit",this.api?"direct":"");this.doAction(d,b);return this},load:function(a){var b=String.format("{0}load",this.api?"direct":"");this.doAction(b,a);return this},updateRecord:function(b){b.beginEdit();var a=b.fields;a.each(function(c){var d=this.findField(c.name);if(d){b.set(c.name,d.getValue())}},this);b.endEdit();return this},loadRecord:function(a){this.setValues(a.data);return this},beforeAction:function(a){this.items.each(function(c){if(c.isFormField&&c.syncValue){c.syncValue()}});var b=a.options;if(b.waitMsg){if(this.waitMsgTarget===true){this.el.mask(b.waitMsg,"x-mask-loading")}else{if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(b.waitMsg,"x-mask-loading")}else{Ext.MessageBox.wait(b.waitMsg,b.waitTitle||this.waitTitle)}}}},afterAction:function(a,c){this.activeAction=null;var b=a.options;if(b.waitMsg){if(this.waitMsgTarget===true){this.el.unmask()}else{if(this.waitMsgTarget){this.waitMsgTarget.unmask()}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide()}}}if(c){if(b.reset){this.reset()}Ext.callback(b.success,b.scope,[this,a]);this.fireEvent("actioncomplete",this,a)}else{Ext.callback(b.failure,b.scope,[this,a]);this.fireEvent("actionfailed",this,a)}},findField:function(c){var b=this.items.get(c);if(!Ext.isObject(b)){var a=function(d){if(d.isFormField){if(d.dataIndex==c||d.id==c||d.getName()==c){b=d;return false}else{if(d.isComposite&&d.rendered){return d.items.each(a)}}}};this.items.each(a)}return b||null},markInvalid:function(h){if(Ext.isArray(h)){for(var c=0,a=h.length;c<a;c++){var b=h[c];var d=this.findField(b.id);if(d){d.markInvalid(b.msg)}}}else{var e,g;for(g in h){if(!Ext.isFunction(h[g])&&(e=this.findField(g))){e.markInvalid(h[g])}}}return this},setValues:function(c){if(Ext.isArray(c)){for(var d=0,a=c.length;d<a;d++){var b=c[d];var e=this.findField(b.id);if(e){e.setValue(b.value);if(this.trackResetOnLoad){e.originalValue=e.getValue()}}}}else{var g,h;for(h in c){if(!Ext.isFunction(c[h])&&(g=this.findField(h))){g.setValue(c[h]);if(this.trackResetOnLoad){g.originalValue=g.getValue()}}}}return this},getValues:function(b){var a=Ext.lib.Ajax.serializeForm(this.el.dom);if(b===true){return a}return Ext.urlDecode(a)},getFieldValues:function(a){var d={},e,b,c;this.items.each(function(g){if(a!==true||g.isDirty()){e=g.getName();b=d[e];c=g.getValue();if(Ext.isDefined(b)){if(Ext.isArray(b)){d[e].push(c)}else{d[e]=[b,c]}}else{d[e]=c}}});return d},clearInvalid:function(){this.items.each(function(a){a.clearInvalid()});return this},reset:function(){this.items.each(function(a){a.reset()});return this},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this},remove:function(a){this.items.remove(a);return this},cleanDestroyed:function(){this.items.filterBy(function(a){return!!a.isDestroyed}).each(this.remove,this)},render:function(){this.items.each(function(a){if(a.isFormField&&!a.rendered&&document.getElementById(a.id)){a.applyToMarkup(a.id)}});return this},applyToFields:function(a){this.items.each(function(b){Ext.apply(b,a)});return this},applyIfToFields:function(a){this.items.each(function(b){Ext.applyIf(b,a)});return this},callFieldMethod:function(b,a){a=a||[];this.items.each(function(c){if(Ext.isFunction(c[b])){c[b].apply(c,a)}});return this}});Ext.BasicForm=Ext.form.BasicForm;Ext.FormPanel=Ext.extend(Ext.Panel,{minButtonWidth:75,labelAlign:"left",monitorValid:false,monitorPoll:200,layout:"form",initComponent:function(){this.form=this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:"form",cls:this.baseCls+"-body",method:this.method||"POST",id:this.formId||Ext.id()};if(this.fileUpload){this.bodyCfg.enctype="multipart/form-data"}this.initItems();this.addEvents("clientvalidation");this.relayEvents(this.form,["beforeaction","actionfailed","actioncomplete"])},createForm:function(){var a=Ext.applyIf({listeners:{}},this.initialConfig);return new Ext.form.BasicForm(null,a)},initFields:function(){var c=this.form;var a=this;var b=function(d){if(a.isField(d)){c.add(d)}else{if(d.findBy&&d!=a){a.applySettings(d);if(d.items&&d.items.each){d.items.each(b,this)}}}};this.items.each(b,this)},applySettings:function(b){var a=b.ownerCt;Ext.applyIf(b,{labelAlign:a.labelAlign,labelWidth:a.labelWidth,itemCls:a.itemCls})},getLayoutTarget:function(){return this.form.el},getForm:function(){return this.form},onRender:function(b,a){this.initFields();Ext.FormPanel.superclass.onRender.call(this,b,a);this.form.initEl(this.body)},beforeDestroy:function(){this.stopMonitoring();this.form.destroy(true);Ext.FormPanel.superclass.beforeDestroy.call(this)},isField:function(a){return!!a.setValue&&!!a.getValue&&!!a.markInvalid&&!!a.clearInvalid},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.on({scope:this,add:this.onAddEvent,remove:this.onRemoveEvent});if(this.monitorValid){this.startMonitoring()}},onAdd:function(a){Ext.FormPanel.superclass.onAdd.call(this,a);this.processAdd(a)},onAddEvent:function(a,b){if(a!==this){this.processAdd(b)}},processAdd:function(a){if(this.isField(a)){this.form.add(a)}else{if(a.findBy){this.applySettings(a);this.form.add.apply(this.form,a.findBy(this.isField))}}},onRemove:function(a){Ext.FormPanel.superclass.onRemove.call(this,a);this.processRemove(a)},onRemoveEvent:function(a,b){if(a!==this){this.processRemove(b)}},processRemove:function(a){if(!this.destroying){if(this.isField(a)){this.form.remove(a)}else{if(a.findBy){Ext.each(a.findBy(this.isField),this.form.remove,this.form);if(a.isDestroyed){this.form.cleanDestroyed()}}}}},startMonitoring:function(){if(!this.validTask){this.validTask=new Ext.util.TaskRunner();this.validTask.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this})}},stopMonitoring:function(){if(this.validTask){this.validTask.stopAll();this.validTask=null}},load:function(){this.form.load.apply(this.form,arguments)},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form){this.form.items.each(function(){this.disable()})}},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form){this.form.items.each(function(){this.enable()})}},bindHandler:function(){var e=true;this.form.items.each(function(g){if(!g.isValid(true)){e=false;return false}});if(this.fbar){var b=this.fbar.items.items;for(var d=0,a=b.length;d<a;d++){var c=b[d];if(c.formBind===true&&c.disabled===e){c.setDisabled(!e)}}}this.fireEvent("clientvalidation",this,e)}});Ext.reg("form",Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel;Ext.form.FieldSet=Ext.extend(Ext.Panel,{baseCls:"x-fieldset",layout:"form",animCollapse:false,onRender:function(b,a){if(!this.el){this.el=document.createElement("fieldset");this.el.id=this.id;if(this.title||this.header||this.checkboxToggle){this.el.appendChild(document.createElement("legend")).className=this.baseCls+"-header"}}Ext.form.FieldSet.superclass.onRender.call(this,b,a);if(this.checkboxToggle){var c=typeof this.checkboxToggle=="object"?this.checkboxToggle:{tag:"input",type:"checkbox",name:this.checkboxName||this.id+"-checkbox"};this.checkbox=this.header.insertFirst(c);this.checkbox.dom.checked=!this.collapsed;this.mon(this.checkbox,"click",this.onCheckClick,this)}},onCollapse:function(a,b){if(this.checkbox){this.checkbox.dom.checked=false}Ext.form.FieldSet.superclass.onCollapse.call(this,a,b)},onExpand:function(a,b){if(this.checkbox){this.checkbox.dom.checked=true}Ext.form.FieldSet.superclass.onExpand.call(this,a,b)},onCheckClick:function(){this[this.checkbox.dom.checked?"expand":"collapse"]()}});Ext.reg("fieldset",Ext.form.FieldSet);Ext.form.HtmlEditor=Ext.extend(Ext.form.Field,{enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:"Please enter the URL for the link:",defaultLinkValue:"http://",fontFamilies:["Arial","Courier New","Tahoma","Times New Roman","Verdana"],defaultFont:"tahoma",defaultValue:(Ext.isOpera||Ext.isIE6)?"&#160;":"&#8203;",actionMode:"wrap",validationEvent:false,deferHeight:true,initialized:false,activated:false,sourceEditMode:false,onFocus:Ext.emptyFn,iframePad:3,hideMode:"offsets",defaultAutoCreate:{tag:"textarea",style:"width:500px;height:300px;",autocomplete:"off"},initComponent:function(){this.addEvents("initialize","activate","beforesync","beforepush","sync","push","editmodechange")},createFontOptions:function(){var d=[],b=this.fontFamilies,c,g;for(var e=0,a=b.length;e<a;e++){c=b[e];g=c.toLowerCase();d.push('<option value="',g,'" style="font-family:',c,';"',(this.defaultFont==g?' selected="true">':">"),c,"</option>")}return d.join("")},createToolbar:function(e){var c=[];var a=Ext.QuickTips&&Ext.QuickTips.isEnabled();function d(j,h,i){return{itemId:j,cls:"x-btn-icon",iconCls:"x-edit-"+j,enableToggle:h!==false,scope:e,handler:i||e.relayBtnCmd,clickEvent:"mousedown",tooltip:a?e.buttonTips[j]||undefined:undefined,overflowText:e.buttonTips[j].title||undefined,tabIndex:-1}}if(this.enableFont&&!Ext.isSafari2){var g=new Ext.Toolbar.Item({autoEl:{tag:"select",cls:"x-font-select",html:this.createFontOptions()}});c.push(g,"-")}if(this.enableFormat){c.push(d("bold"),d("italic"),d("underline"))}if(this.enableFontSize){c.push("-",d("increasefontsize",false,this.adjustFont),d("decreasefontsize",false,this.adjustFont))}if(this.enableColors){c.push("-",{itemId:"forecolor",cls:"x-btn-icon",iconCls:"x-edit-forecolor",clickEvent:"mousedown",tooltip:a?e.buttonTips.forecolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,listeners:{scope:this,select:function(i,h){this.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+h:h);this.deferFocus()}},clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon",iconCls:"x-edit-backcolor",clickEvent:"mousedown",tooltip:a?e.buttonTips.backcolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,listeners:{scope:this,select:function(i,h){if(Ext.isGecko){this.execCmd("useCSS",false);this.execCmd("hilitecolor",h);this.execCmd("useCSS",true);this.deferFocus()}else{this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+h:h);this.deferFocus()}}},clickEvent:"mousedown"})})}if(this.enableAlignments){c.push("-",d("justifyleft"),d("justifycenter"),d("justifyright"))}if(!Ext.isSafari2){if(this.enableLinks){c.push("-",d("createlink",false,this.createLink))}if(this.enableLists){c.push("-",d("insertorderedlist"),d("insertunorderedlist"))}if(this.enableSourceEdit){c.push("-",d("sourceedit",true,function(h){this.toggleSourceEdit(!this.sourceEditMode)}))}}var b=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild,items:c});if(g){this.fontSelect=g.el;this.mon(this.fontSelect,"change",function(){var h=this.fontSelect.dom.value;this.relayCmd("fontname",h);this.deferFocus()},this)}this.mon(b.el,"click",function(h){h.preventDefault()});this.tb=b;this.tb.doLayout()},onDisable:function(){this.wrap.mask();Ext.form.HtmlEditor.superclass.onDisable.call(this)},onEnable:function(){this.wrap.unmask();Ext.form.HtmlEditor.superclass.onEnable.call(this)},setReadOnly:function(b){Ext.form.HtmlEditor.superclass.setReadOnly.call(this,b);if(this.initialized){if(Ext.isIE){this.getEditorBody().contentEditable=!b}else{this.setDesignMode(!b)}var a=this.getEditorBody();if(a){a.style.cursor=this.readOnly?"default":"text"}this.disableItems(b)}},getDocMarkup:function(){var a=Ext.fly(this.iframe).getHeight()-this.iframePad*2;return String.format('<html><head><style type="text/css">body{border: 0; margin: 0; padding: {0}px; height: {1}px; cursor: text}</style></head><body></body></html>',this.iframePad,a)},getEditorBody:function(){var a=this.getDoc();return a.body||a.documentElement},getDoc:function(){return Ext.isIE?this.getWin().document:(this.iframe.contentDocument||this.getWin().document)},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name]},onRender:function(b,a){Ext.form.HtmlEditor.superclass.onRender.call(this,b,a);this.el.dom.style.border="0 none";this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");if(Ext.isIE){this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;")}this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}});this.createToolbar(this);this.disableItems(true);this.tb.doLayout();this.createIFrame();if(!this.width){var c=this.el.getSize();this.setSize(c.width,this.height||c.height)}this.resizeEl=this.positionEl=this.wrap},createIFrame:function(){var a=document.createElement("iframe");a.name=Ext.id();a.frameBorder="0";a.style.overflow="auto";this.wrap.dom.appendChild(a);this.iframe=a;this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100})},initFrame:function(){Ext.TaskMgr.stop(this.monitorTask);var b=this.getDoc();this.win=this.getWin();b.open();b.write(this.getDocMarkup());b.close();var a={run:function(){var c=this.getDoc();if(c.body||c.readyState=="complete"){Ext.TaskMgr.stop(a);this.setDesignMode(true);this.initEditor.defer(10,this)}},interval:10,duration:10000,scope:this};Ext.TaskMgr.start(a)},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var a=this.getDoc();if(!a){return}if(!a.editorInitialized||this.getDesignMode()!="on"){this.initFrame()}}},setDesignMode:function(b){var a;if(a=this.getDoc()){if(this.readOnly){b=false}a.designMode=(/on|true/i).test(String(b).toLowerCase())?"on":"off"}},getDesignMode:function(){var a=this.getDoc();if(!a){return""}return String(a.designMode).toLowerCase()},disableItems:function(a){if(this.fontSelect){this.fontSelect.dom.disabled=a}this.tb.items.each(function(b){if(b.getItemId()!="sourceedit"){b.setDisabled(a)}})},onResize:function(b,c){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(Ext.isNumber(b)){var e=b-this.wrap.getFrameWidth("lr");this.el.setWidth(e);this.tb.setWidth(e);this.iframe.style.width=Math.max(e,0)+"px"}if(Ext.isNumber(c)){var a=c-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight();this.el.setHeight(a);this.iframe.style.height=Math.max(a,0)+"px";var d=this.getEditorBody();if(d){d.style.height=Math.max((a-(this.iframePad*2)),0)+"px"}}}},toggleSourceEdit:function(b){var d,a;if(b===undefined){b=!this.sourceEditMode}this.sourceEditMode=b===true;var c=this.tb.getComponent("sourceedit");if(c.pressed!==this.sourceEditMode){c.toggle(this.sourceEditMode);if(!c.xtbHidden){return}}if(this.sourceEditMode){this.previousSize=this.getSize();d=Ext.get(this.iframe).getHeight();this.disableItems(true);this.syncValue();this.iframe.className="x-hidden";this.el.removeClass("x-hidden");this.el.dom.removeAttribute("tabIndex");this.el.focus();this.el.dom.style.height=d+"px"}else{a=parseInt(this.el.dom.style.height,10);if(this.initialized){this.disableItems(this.readOnly)}this.pushValue();this.iframe.className="";this.el.addClass("x-hidden");this.el.dom.setAttribute("tabIndex",-1);this.deferFocus();this.setSize(this.previousSize);delete this.previousSize;this.iframe.style.height=a+"px"}this.fireEvent("editmodechange",this,this.sourceEditMode)},createLink:function(){var a=prompt(this.createLinkText,this.defaultLinkValue);if(a&&a!="http://"){this.relayCmd("createlink",a)}},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(a){Ext.form.HtmlEditor.superclass.setValue.call(this,a);this.pushValue();return this},cleanHtml:function(a){a=String(a);if(Ext.isWebKit){a=a.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}if(a.charCodeAt(0)==this.defaultValue.replace(/\D/g,"")){a=a.substring(1)}return a},syncValue:function(){if(this.initialized){var d=this.getEditorBody();var c=d.innerHTML;if(Ext.isWebKit){var b=d.getAttribute("style");var a=b.match(/text-align:(.*?);/i);if(a&&a[1]){c='<div style="'+a[0]+'">'+c+"</div>"}}c=this.cleanHtml(c);if(this.fireEvent("beforesync",this,c)!==false){this.el.dom.value=c;this.fireEvent("sync",this,c)}}},getValue:function(){this[this.sourceEditMode?"pushValue":"syncValue"]();return Ext.form.HtmlEditor.superclass.getValue.call(this)},pushValue:function(){if(this.initialized){var a=this.el.dom.value;if(!this.activated&&a.length<1){a=this.defaultValue}if(this.fireEvent("beforepush",this,a)!==false){this.getEditorBody().innerHTML=a;if(Ext.isGecko){this.setDesignMode(false);this.setDesignMode(true)}this.fireEvent("push",this,a)}}},deferFocus:function(){this.focus.defer(10,this)},focus:function(){if(this.win&&!this.sourceEditMode){this.win.focus()}else{this.el.focus()}},initEditor:function(){try{var c=this.getEditorBody(),a=this.el.getStyles("font-size","font-family","background-image","background-repeat","background-color","color"),g,b;a["background-attachment"]="fixed";c.bgProperties="fixed";Ext.DomHelper.applyStyles(c,a);g=this.getDoc();if(g){try{Ext.EventManager.removeAll(g)}catch(d){}}b=this.onEditorEvent.createDelegate(this);Ext.EventManager.on(g,{mousedown:b,dblclick:b,click:b,keyup:b,buffer:100});if(Ext.isGecko){Ext.EventManager.on(g,"keypress",this.applyCommand,this)}if(Ext.isIE||Ext.isWebKit||Ext.isOpera){Ext.EventManager.on(g,"keydown",this.fixKeys,this)}g.editorInitialized=true;this.initialized=true;this.pushValue();this.setReadOnly(this.readOnly);this.fireEvent("initialize",this)}catch(d){}},onDestroy:function(){if(this.monitorTask){Ext.TaskMgr.stop(this.monitorTask)}if(this.rendered){Ext.destroy(this.tb);var b=this.getDoc();if(b){try{Ext.EventManager.removeAll(b);for(var c in b){delete b[c]}}catch(a){}}if(this.wrap){this.wrap.dom.innerHTML="";this.wrap.remove()}}if(this.el){this.el.removeAllListeners();this.el.remove()}this.purgeListeners()},onFirstFocus:function(){this.activated=true;this.disableItems(this.readOnly);if(Ext.isGecko){this.win.focus();var a=this.win.getSelection();if(!a.focusNode||a.focusNode.nodeType!=3){var b=a.getRangeAt(0);b.selectNodeContents(this.getEditorBody());b.collapse(true);this.deferFocus()}try{this.execCmd("useCSS",true);this.execCmd("styleWithCSS",false)}catch(c){}}this.fireEvent("activate",this)},adjustFont:function(b){var d=b.getItemId()=="increasefontsize"?1:-1,c=this.getDoc(),a=parseInt(c.queryCommandValue("FontSize")||2,10);if((Ext.isSafari&&!Ext.isSafari2)||Ext.isChrome||Ext.isAir){if(a<=10){a=1+d}else{if(a<=13){a=2+d}else{if(a<=16){a=3+d}else{if(a<=18){a=4+d}else{if(a<=24){a=5+d}else{a=6+d}}}}}a=a.constrain(1,6)}else{if(Ext.isSafari){d*=2}a=Math.max(1,a+d)+(Ext.isSafari?"px":0)}this.execCmd("FontSize",a)},onEditorEvent:function(a){this.updateToolbar()},updateToolbar:function(){if(this.readOnly){return}if(!this.activated){this.onFirstFocus();return}var b=this.tb.items.map,c=this.getDoc();if(this.enableFont&&!Ext.isSafari2){var a=(c.queryCommandValue("FontName")||this.defaultFont).toLowerCase();if(a!=this.fontSelect.dom.value){this.fontSelect.dom.value=a}}if(this.enableFormat){b.bold.toggle(c.queryCommandState("bold"));b.italic.toggle(c.queryCommandState("italic"));b.underline.toggle(c.queryCommandState("underline"))}if(this.enableAlignments){b.justifyleft.toggle(c.queryCommandState("justifyleft"));b.justifycenter.toggle(c.queryCommandState("justifycenter"));b.justifyright.toggle(c.queryCommandState("justifyright"))}if(!Ext.isSafari2&&this.enableLists){b.insertorderedlist.toggle(c.queryCommandState("insertorderedlist"));b.insertunorderedlist.toggle(c.queryCommandState("insertunorderedlist"))}Ext.menu.MenuMgr.hideAll();this.syncValue()},relayBtnCmd:function(a){this.relayCmd(a.getItemId())},relayCmd:function(b,a){(function(){this.focus();this.execCmd(b,a);this.updateToolbar()}).defer(10,this)},execCmd:function(b,a){var c=this.getDoc();c.execCommand(b,false,a===undefined?null:a);this.syncValue()},applyCommand:function(b){if(b.ctrlKey){var d=b.getCharCode(),a;if(d>0){d=String.fromCharCode(d);switch(d){case"b":a="bold";break;case"i":a="italic";break;case"u":a="underline";break}if(a){this.win.focus();this.execCmd(a);this.deferFocus();b.preventDefault()}}}},insertAtCursor:function(c){if(!this.activated){return}if(Ext.isIE){this.win.focus();var b=this.getDoc(),a=b.selection.createRange();if(a){a.pasteHTML(c);this.syncValue();this.deferFocus()}}else{this.win.focus();this.execCmd("InsertHTML",c);this.deferFocus()}},fixKeys:function(){if(Ext.isIE){return function(g){var a=g.getKey(),d=this.getDoc(),b;if(a==g.TAB){g.stopEvent();b=d.selection.createRange();if(b){b.collapse(true);b.pasteHTML("&nbsp;&nbsp;&nbsp;&nbsp;");this.deferFocus()}}else{if(a==g.ENTER){b=d.selection.createRange();if(b){var c=b.parentElement();if(!c||c.tagName.toLowerCase()!="li"){g.stopEvent();b.pasteHTML("<br />");b.collapse(false);b.select()}}}}}}else{if(Ext.isOpera){return function(b){var a=b.getKey();if(a==b.TAB){b.stopEvent();this.win.focus();this.execCmd("InsertHTML","&nbsp;&nbsp;&nbsp;&nbsp;");this.deferFocus()}}}else{if(Ext.isWebKit){return function(b){var a=b.getKey();if(a==b.TAB){b.stopEvent();this.execCmd("InsertText","\t");this.deferFocus()}else{if(a==b.ENTER){b.stopEvent();this.execCmd("InsertHtml","<br /><br />");this.deferFocus()}}}}}}}(),getToolbar:function(){return this.tb},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});Ext.reg("htmleditor",Ext.form.HtmlEditor);Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:undefined,maxValue:undefined,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,mode:"local",triggerAction:"all",typeAhead:false,initDate:"1/1/2008",initDateFormat:"j/n/Y",initComponent:function(){if(Ext.isDefined(this.minValue)){this.setMinValue(this.minValue,true)}if(Ext.isDefined(this.maxValue)){this.setMaxValue(this.maxValue,true)}if(!this.store){this.generateStore(true)}Ext.form.TimeField.superclass.initComponent.call(this)},setMinValue:function(b,a){this.setLimit(b,true,a);return this},setMaxValue:function(b,a){this.setLimit(b,false,a);return this},generateStore:function(b){var c=this.minValue||new Date(this.initDate).clearTime(),a=this.maxValue||new Date(this.initDate).clearTime().add("mi",(24*60)-1),d=[];while(c<=a){d.push(c.dateFormat(this.format));c=c.add("mi",this.increment)}this.bindStore(d,b)},setLimit:function(b,g,a){var e;if(Ext.isString(b)){e=this.parseDate(b)}else{if(Ext.isDate(b)){e=b}}if(e){var c=new Date(this.initDate).clearTime();c.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds());this[g?"minValue":"maxValue"]=c;if(!a){this.generateStore()}}},getValue:function(){var a=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(a))||""},setValue:function(a){return Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(a)))},validateValue:Ext.form.DateField.prototype.validateValue,formatDate:Ext.form.DateField.prototype.formatDate,parseDate:function(h){if(!h||Ext.isDate(h)){return h}var j=this.initDate+" ",g=this.initDateFormat+" ",b=Date.parseDate(j+h,g+this.format),c=this.altFormats;if(!b&&c){if(!this.altFormatsArray){this.altFormatsArray=c.split("|")}for(var e=0,d=this.altFormatsArray,a=d.length;e<a&&!b;e++){b=Date.parseDate(j+h,g+d[e])}}return b}});Ext.reg("timefield",Ext.form.TimeField);Ext.form.SliderField=Ext.extend(Ext.form.Field,{useTips:true,tipText:null,actionMode:"wrap",initComponent:function(){var b=Ext.copyTo({id:this.id+"-slider"},this.initialConfig,["vertical","minValue","maxValue","decimalPrecision","keyIncrement","increment","clickToChange","animate"]);if(this.useTips){var a=this.tipText?{getText:this.tipText}:{};b.plugins=[new Ext.slider.Tip(a)]}this.slider=new Ext.Slider(b);Ext.form.SliderField.superclass.initComponent.call(this)},onRender:function(b,a){this.autoCreate={id:this.id,name:this.name,type:"hidden",tag:"input"};Ext.form.SliderField.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.resizeEl=this.positionEl=this.wrap;this.slider.render(this.wrap)},onResize:function(b,c,d,a){Ext.form.SliderField.superclass.onResize.call(this,b,c,d,a);this.slider.setSize(b,c)},initEvents:function(){Ext.form.SliderField.superclass.initEvents.call(this);this.slider.on("change",this.onChange,this)},onChange:function(b,a){this.setValue(a,undefined,true)},onEnable:function(){Ext.form.SliderField.superclass.onEnable.call(this);this.slider.enable()},onDisable:function(){Ext.form.SliderField.superclass.onDisable.call(this);this.slider.disable()},beforeDestroy:function(){Ext.destroy(this.slider);Ext.form.SliderField.superclass.beforeDestroy.call(this)},alignErrorIcon:function(){this.errorIcon.alignTo(this.slider.el,"tl-tr",[2,0])},setMinValue:function(a){this.slider.setMinValue(a);return this},setMaxValue:function(a){this.slider.setMaxValue(a);return this},setValue:function(c,b,a){if(!a){this.slider.setValue(c,b)}return Ext.form.SliderField.superclass.setValue.call(this,this.slider.getValue())},getValue:function(){return this.slider.getValue()}});Ext.reg("sliderfield",Ext.form.SliderField);Ext.form.Label=Ext.extend(Ext.BoxComponent,{onRender:function(b,a){if(!this.el){this.el=document.createElement("label");this.el.id=this.getId();this.el.innerHTML=this.text?Ext.util.Format.htmlEncode(this.text):(this.html||"");if(this.forId){this.el.setAttribute("for",this.forId)}}Ext.form.Label.superclass.onRender.call(this,b,a)},setText:function(a,b){var c=b===false;this[!c?"text":"html"]=a;delete this[c?"text":"html"];if(this.rendered){this.el.dom.innerHTML=b!==false?Ext.util.Format.htmlEncode(a):a}return this}});Ext.reg("label",Ext.form.Label);Ext.form.Action=function(b,a){this.form=b;this.options=a||{}};Ext.form.Action.CLIENT_INVALID="client";Ext.form.Action.SERVER_INVALID="server";Ext.form.Action.CONNECT_FAILURE="connect";Ext.form.Action.LOAD_FAILURE="load";Ext.form.Action.prototype={type:"default",run:function(a){},success:function(a){},handleResponse:function(a){},failure:function(a){this.response=a;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(a){this.response=a;if(!a.responseText&&!a.responseXML){return true}this.result=this.handleResponse(a);return this.result},getUrl:function(c){var a=this.options.url||this.form.url||this.form.el.dom.action;if(c){var b=this.getParams();if(b){a=Ext.urlAppend(a,b)}}return a},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||"POST").toUpperCase()},getParams:function(){var a=this.form.baseParams;var b=this.options.params;if(b){if(typeof b=="object"){b=Ext.urlEncode(Ext.applyIf(b,a))}else{if(typeof b=="string"&&a){b+="&"+Ext.urlEncode(a)}}}else{if(a){b=Ext.urlEncode(a)}}return b},createCallback:function(a){var a=a||{};return{success:this.success,failure:this.failure,scope:this,timeout:(a.timeout*1000)||(this.form.timeout*1000),upload:this.form.fileUpload?this.success:undefined}}};Ext.form.Action.Submit=function(b,a){Ext.form.Action.Submit.superclass.constructor.call(this,b,a)};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:"submit",run:function(){var d=this.options,e=this.getMethod(),c=e=="GET";if(d.clientValidation===false||this.form.isValid()){if(d.submitEmptyText===false){var a=this.form.items,b=[];a.each(function(g){if(g.el.getValue()==g.emptyText){b.push(g);g.el.dom.value=""}})}Ext.Ajax.request(Ext.apply(this.createCallback(d),{form:this.form.el.dom,url:this.getUrl(c),method:e,headers:d.headers,params:!c?this.getParams():null,isUpload:this.form.fileUpload}));if(d.submitEmptyText===false){Ext.each(b,function(g){if(g.applyEmptyText){g.applyEmptyText()}})}}else{if(d.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},success:function(b){var a=this.processResponse(b);if(a===true||a.success){this.form.afterAction(this,true);return}if(a.errors){this.form.markInvalid(a.errors)}this.failureType=Ext.form.Action.SERVER_INVALID;this.form.afterAction(this,false)},handleResponse:function(c){if(this.form.errorReader){var b=this.form.errorReader.read(c);var g=[];if(b.records){for(var d=0,a=b.records.length;d<a;d++){var e=b.records[d];g[d]=e.data}}if(g.length<1){g=null}return{success:b.success,errors:g}}return Ext.decode(c.responseText)}});Ext.form.Action.Load=function(b,a){Ext.form.Action.Load.superclass.constructor.call(this,b,a);this.reader=this.form.reader};Ext.extend(Ext.form.Action.Load,Ext.form.Action,{type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(this.options),{method:this.getMethod(),url:this.getUrl(false),headers:this.options.headers,params:this.getParams()}))},success:function(b){var a=this.processResponse(b);if(a===true||!a.success||!a.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return}this.form.clearInvalid();this.form.setValues(a.data);this.form.afterAction(this,true)},handleResponse:function(b){if(this.form.reader){var a=this.form.reader.read(b);var c=a.records&&a.records[0]?a.records[0].data:null;return{success:a.success,data:c}}return Ext.decode(b.responseText)}});Ext.form.Action.DirectLoad=Ext.extend(Ext.form.Action.Load,{constructor:function(b,a){Ext.form.Action.DirectLoad.superclass.constructor.call(this,b,a)},type:"directload",run:function(){var a=this.getParams();a.push(this.success,this);this.form.api.load.apply(window,a)},getParams:function(){var c=[],h={};var e=this.form.baseParams;var g=this.options.params;Ext.apply(h,g,e);var b=this.form.paramOrder;if(b){for(var d=0,a=b.length;d<a;d++){c.push(h[b[d]])}}else{if(this.form.paramsAsHash){c.push(h)}}return c},processResponse:function(a){this.result=a;return a},success:function(a,b){if(b.type==Ext.Direct.exceptions.SERVER){a={}}Ext.form.Action.DirectLoad.superclass.success.call(this,a)}});Ext.form.Action.DirectSubmit=Ext.extend(Ext.form.Action.Submit,{constructor:function(b,a){Ext.form.Action.DirectSubmit.superclass.constructor.call(this,b,a)},type:"directsubmit",run:function(){var a=this.options;if(a.clientValidation===false||this.form.isValid()){this.success.params=this.getParams();this.form.api.submit(this.form.el.dom,this.success,this)}else{if(a.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},getParams:function(){var c={};var a=this.form.baseParams;var b=this.options.params;Ext.apply(c,b,a);return c},processResponse:function(a){this.result=a;return a},success:function(a,b){if(b.type==Ext.Direct.exceptions.SERVER){a={}}Ext.form.Action.DirectSubmit.superclass.success.call(this,a)}});Ext.form.Action.ACTION_TYPES={load:Ext.form.Action.Load,submit:Ext.form.Action.Submit,directload:Ext.form.Action.DirectLoad,directsubmit:Ext.form.Action.DirectSubmit};Ext.form.VTypes=function(){var c=/^[a-zA-Z_]+$/,d=/^[a-zA-Z0-9_]+$/,b=/^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,a=/(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return{email:function(e){return b.test(e)},emailText:'This field should be an e-mail address in the format "user@example.com"',emailMask:/[a-z0-9_\.\-@\+]/i,url:function(e){return a.test(e)},urlText:'This field should be a URL in the format "http://www.example.com"',alpha:function(e){return c.test(e)},alphaText:"This field should only contain letters and _",alphaMask:/[a-z_]/i,alphanum:function(e){return d.test(e)},alphanumText:"This field should only contain letters, numbers and _",alphanumMask:/[a-z0-9_]/i}}();Ext.grid.GridPanel=Ext.extend(Ext.Panel,{autoExpandColumn:false,autoExpandMax:1000,autoExpandMin:50,columnLines:false,ddText:"{0} selected row{1}",deferRowRender:true,enableColumnHide:true,enableColumnMove:true,enableDragDrop:false,enableHdMenu:true,loadMask:false,minColumnWidth:25,stripeRows:false,trackMouseOver:true,stateEvents:["columnmove","columnresize","sortchange","groupchange"],view:null,bubbleEvents:[],rendered:false,viewReady:false,initComponent:function(){Ext.grid.GridPanel.superclass.initComponent.call(this);if(this.columnLines){this.cls=(this.cls||"")+" x-grid-with-col-lines"}this.autoScroll=false;this.autoWidth=false;if(Ext.isArray(this.columns)){this.colModel=new Ext.grid.ColumnModel(this.columns);delete this.columns}if(this.ds){this.store=this.ds;delete this.ds}if(this.cm){this.colModel=this.cm;delete this.cm}if(this.sm){this.selModel=this.sm;delete this.sm}this.store=Ext.StoreMgr.lookup(this.store);this.addEvents("click","dblclick","contextmenu","mousedown","mouseup","mouseover","mouseout","keypress","keydown","cellmousedown","rowmousedown","headermousedown","groupmousedown","rowbodymousedown","containermousedown","cellclick","celldblclick","rowclick","rowdblclick","headerclick","headerdblclick","groupclick","groupdblclick","containerclick","containerdblclick","rowbodyclick","rowbodydblclick","rowcontextmenu","cellcontextmenu","headercontextmenu","groupcontextmenu","containercontextmenu","rowbodycontextmenu","bodyscroll","columnresize","columnmove","sortchange","groupchange","reconfigure","viewready")},onRender:function(d,a){Ext.grid.GridPanel.superclass.onRender.apply(this,arguments);var e=this.getGridEl();this.el.addClass("x-grid-panel");this.mon(e,{scope:this,mousedown:this.onMouseDown,click:this.onClick,dblclick:this.onDblClick,contextmenu:this.onContextMenu});this.relayEvents(e,["mousedown","mouseup","mouseover","mouseout","keypress","keydown"]);var b=this.getView();b.init(this);b.render();this.getSelectionModel().init(this)},initEvents:function(){Ext.grid.GridPanel.superclass.initEvents.call(this);if(this.loadMask){this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({store:this.store},this.loadMask))}},initStateEvents:function(){Ext.grid.GridPanel.superclass.initStateEvents.call(this);this.mon(this.colModel,"hiddenchange",this.saveState,this,{delay:100})},applyState:function(a){var l=this.colModel,g=a.columns,k=this.store,m,h,j;if(g){for(var d=0,e=g.length;d<e;d++){m=g[d];h=l.getColumnById(m.id);if(h){l.setState(d,{hidden:m.hidden,width:m.width});j=l.getIndexById(m.id);if(j!=d){l.moveColumn(j,d)}}}}if(k){m=a.sort;if(m){k[k.remoteSort?"setDefaultSort":"sort"](m.field,m.direction)}m=a.group;if(k.groupBy){if(m){k.groupBy(m)}else{k.clearGrouping()}}}var b=Ext.apply({},a);delete b.columns;delete b.sort;Ext.grid.GridPanel.superclass.applyState.call(this,b)},getState:function(){var g={columns:[]},b=this.store,e,a;for(var d=0,h;(h=this.colModel.config[d]);d++){g.columns[d]={id:h.id,width:h.width};if(h.hidden){g.columns[d].hidden=true}}if(b){e=b.getSortState();if(e){g.sort=e}if(b.getGroupState){a=b.getGroupState();if(a){g.group=a}}}return g},afterRender:function(){Ext.grid.GridPanel.superclass.afterRender.call(this);var a=this.view;this.on("bodyresize",a.layout,a);a.layout();if(this.deferRowRender){if(!this.deferRowRenderTask){this.deferRowRenderTask=new Ext.util.DelayedTask(a.afterRender,this.view)}this.deferRowRenderTask.delay(10)}else{a.afterRender()}this.viewReady=true},reconfigure:function(a,b){var c=this.rendered;if(c){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({},{store:a},this.initialConfig.loadMask))}}if(this.view){this.view.initData(a,b)}this.store=a;this.colModel=b;if(c){this.view.refresh(true)}this.fireEvent("reconfigure",this,a,b)},onDestroy:function(){if(this.deferRowRenderTask&&this.deferRowRenderTask.cancel){this.deferRowRenderTask.cancel()}if(this.rendered){Ext.destroy(this.view,this.loadMask)}else{if(this.store&&this.store.autoDestroy){this.store.destroy()}}Ext.destroy(this.colModel,this.selModel);this.store=this.selModel=this.colModel=this.view=this.loadMask=null;Ext.grid.GridPanel.superclass.onDestroy.call(this)},processEvent:function(a,b){this.view.processEvent(a,b)},onClick:function(a){this.processEvent("click",a)},onMouseDown:function(a){this.processEvent("mousedown",a)},onContextMenu:function(b,a){this.processEvent("contextmenu",b)},onDblClick:function(a){this.processEvent("dblclick",a)},walkCells:function(k,c,b,e,j){var i=this.colModel,g=i.getColumnCount(),a=this.store,h=a.getCount(),d=true;if(b<0){if(c<0){k--;d=false}while(k>=0){if(!d){c=g-1}d=false;while(c>=0){if(e.call(j||this,k,c,i)===true){return[k,c]}c--}k--}}else{if(c>=g){k++;d=false}while(k<h){if(!d){c=0}d=false;while(c<g){if(e.call(j||this,k,c,i)===true){return[k,c]}c++}k++}}return null},getGridEl:function(){return this.body},stopEditing:Ext.emptyFn,getSelectionModel:function(){if(!this.selModel){this.selModel=new Ext.grid.RowSelectionModel(this.disableSelection?{selectRow:Ext.emptyFn}:null)}return this.selModel},getStore:function(){return this.store},getColumnModel:function(){return this.colModel},getView:function(){if(!this.view){this.view=new Ext.grid.GridView(this.viewConfig)}return this.view},getDragDropText:function(){var a=this.selModel.getCount();return String.format(this.ddText,a,a==1?"":"s")}});Ext.reg("grid",Ext.grid.GridPanel);Ext.grid.GridView=Ext.extend(Ext.util.Observable,{deferEmptyText:true,scrollOffset:undefined,autoFill:false,forceFit:false,sortClasses:["sort-asc","sort-desc"],sortAscText:"Sort Ascending",sortDescText:"Sort Descending",columnsText:"Columns",selectedRowClass:"x-grid3-row-selected",borderWidth:2,tdClass:"x-grid3-cell",hdCls:"x-grid3-hd",markDirty:true,cellSelectorDepth:4,rowSelectorDepth:10,rowBodySelectorDepth:10,cellSelector:"td.x-grid3-cell",rowSelector:"div.x-grid3-row",rowBodySelector:"div.x-grid3-row-body",firstRowCls:"x-grid3-row-first",lastRowCls:"x-grid3-row-last",rowClsRe:/(?:^|\s+)x-grid3-row-(first|last|alt)(?:\s+|$)/g,constructor:function(a){Ext.apply(this,a);this.addEvents("beforerowremoved","beforerowsinserted","beforerefresh","rowremoved","rowsinserted","rowupdated","refresh");Ext.grid.GridView.superclass.constructor.call(this)},initTemplates:function(){var c=this.templates||{};if(!c.master){c.master=new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header"><div class="x-grid3-header-inner"><div class="x-grid3-header-offset" style="{ostyle}">{header}</div></div><div class="x-clear"></div></div>','<div class="x-grid3-scroller"><div class="x-grid3-body" style="{bstyle}">{body}</div><a href="#" class="x-grid3-focus" tabIndex="-1"></a></div>',"</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>")}if(!c.header){c.header=new Ext.Template('<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<thead><tr class="x-grid3-hd-row">{cells}</tr></thead>',"</table>")}if(!c.hcell){c.hcell=new Ext.Template('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}"><div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':"",'{value}<img class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />',"</div></td>")}if(!c.body){c.body=new Ext.Template("{rows}")}if(!c.row){c.row=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody><tr>{cells}</tr>",(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody></table></div>")}if(!c.cell){c.cell=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',"</td>")}for(var a in c){var b=c[a];if(b&&Ext.isFunction(b.compile)&&!b.compiled){b.disableFormats=true;b.compile()}}this.templates=c;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(a){if(!this._flyweight){this._flyweight=new Ext.Element.Flyweight(document.body)}this._flyweight.dom=a;return this._flyweight},getEditorParent:function(){return this.scroller.dom},initElements:function(){var c=Ext.Element;var b=this.grid.getGridEl().dom.firstChild;var a=b.childNodes;this.el=new c(b);this.mainWrap=new c(a[0]);this.mainHd=new c(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false)}this.innerHd=this.mainHd.dom.firstChild;this.scroller=new c(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle("overflow-x","hidden")}this.mainBody=new c(this.scroller.dom.firstChild);this.focusEl=new c(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new c(a[1]);this.resizeProxy=new c(a[2])},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(a){if(!a){return false}return this.fly(a).findParent(this.cellSelector,this.cellSelectorDepth)},findCellIndex:function(c,b){var a=this.findCell(c);if(a&&(!b||this.fly(a).hasClass(b))){return this.getCellIndex(a)}return false},getCellIndex:function(b){if(b){var a=b.className.match(this.colRe);if(a&&a[1]){return this.cm.getIndexById(a[1])}}return false},findHeaderCell:function(b){var a=this.findCell(b);return a&&this.fly(a).hasClass(this.hdCls)?a:null},findHeaderIndex:function(a){return this.findCellIndex(a,this.hdCls)},findRow:function(a){if(!a){return false}return this.fly(a).findParent(this.rowSelector,this.rowSelectorDepth)},findRowIndex:function(a){var b=this.findRow(a);return b?b.rowIndex:false},findRowBody:function(a){if(!a){return false}return this.fly(a).findParent(this.rowBodySelector,this.rowBodySelectorDepth)},getRow:function(a){return this.getRows()[a]},getCell:function(b,a){return this.getRow(b).getElementsByTagName("td")[a]},getHeaderCell:function(a){return this.mainHd.dom.getElementsByTagName("td")[a]},addRowClass:function(c,a){var b=this.getRow(c);if(b){this.fly(b).addClass(a)}},removeRowClass:function(c,a){var b=this.getRow(c);if(b){this.fly(b).removeClass(a)}},removeRow:function(a){Ext.removeNode(this.getRow(a));this.syncFocusEl(a)},removeRows:function(c,a){var b=this.mainBody.dom;for(var d=c;d<=a;d++){Ext.removeNode(b.childNodes[c])}this.syncFocusEl(c)},getScrollState:function(){var a=this.scroller.dom;return{left:a.scrollLeft,top:a.scrollTop}},restoreScroll:function(a){var b=this.scroller.dom;b.scrollLeft=a.left;b.scrollTop=a.top},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var a=this.scroller.dom;this.grid.fireEvent("bodyscroll",a.scrollLeft,a.scrollTop)},syncHeaderScroll:function(){var a=this.scroller.dom;this.innerHd.scrollLeft=a.scrollLeft;this.innerHd.scrollLeft=a.scrollLeft},updateSortIcon:function(b,a){var d=this.sortClasses;var c=this.mainHd.select("td").removeClass(d);c.item(b).addClass(d[a=="DESC"?1:0])},updateAllColumnWidths:function(){var d=this.getTotalWidth(),l=this.cm.getColumnCount(),g=[],e,b;for(b=0;b<l;b++){g[b]=this.getColumnWidth(b)}this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=d;this.mainBody.dom.style.width=d;for(b=0;b<l;b++){var c=this.getHeaderCell(b);c.style.width=g[b]}var k=this.getRows(),m,h;for(b=0,e=k.length;b<e;b++){m=k[b];m.style.width=d;if(m.firstChild){m.firstChild.style.width=d;h=m.firstChild.rows[0];for(var a=0;a<l;a++){h.childNodes[a].style.width=g[a]}}}this.onAllColumnWidthsUpdated(g,d)},updateColumnWidth:function(b,a){var j=this.getColumnWidth(b);var e=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=e;this.mainBody.dom.style.width=e;var d=this.getHeaderCell(b);d.style.width=j;var h=this.getRows(),k;for(var c=0,g=h.length;c<g;c++){k=h[c];k.style.width=e;if(k.firstChild){k.firstChild.style.width=e;k.firstChild.rows[0].childNodes[b].style.width=j}}this.onColumnWidthUpdated(b,j,e)},updateColumnHidden:function(a,e){var d=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=d;this.mainBody.dom.style.width=d;var h=e?"none":"";var c=this.getHeaderCell(a);c.style.display=h;var j=this.getRows(),k;for(var b=0,g=j.length;b<g;b++){k=j[b];k.style.width=d;if(k.firstChild){k.firstChild.style.width=d;k.firstChild.rows[0].childNodes[a].style.display=h}}this.onColumnHiddenUpdated(a,e,d);delete this.lastViewWidth;this.layout()},doRender:function(d,v,m,a,r,t){var e=this.templates,c=e.cell,y=e.row,o=r-1;var b="width:"+this.getTotalWidth()+";";var k=[],l=[],n={tstyle:b},q={},h,g;for(var s=0,w=v.length;s<w;s++){g=v[s];l=[];var p=s+a;for(var u=0;u<r;u++){h=d[u];q.id=h.id;q.css=u===0?"x-grid3-cell-first ":(u==o?"x-grid3-cell-last ":"");q.attr=q.cellAttr="";q.style=h.style;q.value=h.renderer.call(h.scope,g.data[h.name],q,g,p,u,m);if(Ext.isEmpty(q.value)){q.value="&#160;"}if(this.markDirty&&g.dirty&&Ext.isDefined(g.modified[h.name])){q.css+=" x-grid3-dirty-cell"}l[l.length]=c.apply(q)}var x=[];if(t&&((p+1)%2===0)){x[0]="x-grid3-row-alt"}if(g.dirty){x[1]=" x-grid3-dirty-row"}n.cols=r;if(this.getRowClass){x[2]=this.getRowClass(g,p,n,m)}n.alt=x.join(" ");n.cells=l.join("");k[k.length]=y.apply(n)}return k.join("")},processRows:function(b,g){if(!this.ds||this.ds.getCount()<1){return}var e=this.getRows(),a=e.length,c,d;g=g||!this.grid.stripeRows;b=b||0;for(c=0;c<a;c++){d=e[c];if(d){d.rowIndex=c;if(!g){d.className=d.className.replace(this.rowClsRe," ");if((c+1)%2===0){d.className+=" x-grid3-row-alt"}}}}if(b===0){Ext.fly(e[0]).addClass(this.firstRowCls)}Ext.fly(e[e.length-1]).addClass(this.lastRowCls)},afterRender:function(){if(!this.ds||!this.cm){return}this.mainBody.dom.innerHTML=this.renderRows()||"&#160;";this.processRows(0,true);if(this.deferEmptyText!==true){this.applyEmptyText()}this.grid.fireEvent("viewready",this.grid)},renderUI:function(){var c=this.templates,e=this.renderHeaders(),a=c.body.apply({rows:"&#160;"});var b=c.master.apply({body:a,header:e,ostyle:"width:"+this.getOffsetWidth()+";",bstyle:"width:"+this.getTotalWidth()+";"});var d=this.grid;d.getGridEl().dom.innerHTML=b;this.initElements();Ext.fly(this.innerHd).on("click",this.handleHdDown,this);this.mainHd.on({scope:this,mouseover:this.handleHdOver,mouseout:this.handleHdOut,mousemove:this.handleHdMove});this.scroller.on("scroll",this.syncScroll,this);if(d.enableColumnResize!==false){this.splitZone=new Ext.grid.GridView.SplitDragZone(d,this.mainHd.dom)}if(d.enableColumnMove){this.columnDrag=new Ext.grid.GridView.ColumnDragZone(d,this.innerHd);this.columnDrop=new Ext.grid.HeaderDropZone(d,this.mainHd.dom)}if(d.enableHdMenu!==false){this.hmenu=new Ext.menu.Menu({id:d.id+"-hctx"});this.hmenu.add({itemId:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{itemId:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(d.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:d.id+"-hcols-menu"});this.colMenu.on({scope:this,beforeshow:this.beforeColMenuShow,itemclick:this.handleHdMenuClick});this.hmenu.add("-",{itemId:"columns",hideOnClick:false,text:this.columnsText,menu:this.colMenu,iconCls:"x-cols-icon"})}this.hmenu.on("itemclick",this.handleHdMenuClick,this)}if(d.trackMouseOver){this.mainBody.on({scope:this,mouseover:this.onRowOver,mouseout:this.onRowOut})}if(d.enableDragDrop||d.enableDrag){this.dragZone=new Ext.grid.GridDragZone(d,{ddGroup:d.ddGroup||"GridDD"})}this.updateHeaderSortState()},processEvent:function(c,i){var d=i.getTarget(),h=this.grid,k=this.findHeaderIndex(d);h.fireEvent(c,i);if(k!==false){h.fireEvent("header"+c,h,k,i)}else{var j=this.findRowIndex(d),b,a;if(j!==false){h.fireEvent("row"+c,h,j,i);b=this.findCellIndex(d);if(b!==false){h.fireEvent("cell"+c,h,j,b,i)}else{a=this.findRowBody(d);if(a){h.fireEvent("rowbody"+c,h,j,i)}}}else{h.fireEvent("container"+c,h,i)}}},layout:function(){if(!this.mainBody){return}var d=this.grid;var i=d.getGridEl();var a=i.getSize(true);var b=a.width;if(!d.hideHeaders&&(b<20||a.height<20)){return}if(d.autoHeight){this.scroller.dom.style.overflow="visible";if(Ext.isWebKit){this.scroller.dom.style.position="static"}}else{this.el.setSize(a.width,a.height);var h=this.mainHd.getHeight();var e=a.height-(h);this.scroller.setSize(b,e);if(this.innerHd){this.innerHd.style.width=(b)+"px"}}if(this.forceFit){if(this.lastViewWidth!=b){this.fitColumns(false,false);this.lastViewWidth=b}}else{this.autoExpand();this.syncHeaderScroll()}this.onLayout(b,e)},onLayout:function(a,b){},onColumnWidthUpdated:function(c,a,b){},onAllColumnWidthsUpdated:function(a,b){},onColumnHiddenUpdated:function(b,c,a){},updateColumnText:function(a,b){},afterMove:function(a){},init:function(a){this.grid=a;this.initTemplates();this.initData(a.store,a.colModel);this.initUI(a)},getColumnId:function(a){return this.cm.getColumnId(a)},getOffsetWidth:function(){return(this.cm.getTotalWidth()+this.getScrollOffset())+"px"},getScrollOffset:function(){return Ext.num(this.scrollOffset,Ext.getScrollBarWidth())},renderHeaders:function(){var c=this.cm,h=this.templates,e=h.hcell,b=[],j={},a=c.getColumnCount(),g=a-1;for(var d=0;d<a;d++){j.id=c.getColumnId(d);j.value=c.getColumnHeader(d)||"";j.style=this.getColumnStyle(d,true);j.tooltip=this.getColumnTooltip(d);j.css=d===0?"x-grid3-cell-first ":(d==g?"x-grid3-cell-last ":"");if(c.config[d].align=="right"){j.istyle="padding-right:16px"}else{delete j.istyle}b[b.length]=e.apply(j)}return h.header.apply({cells:b.join(""),tstyle:"width:"+this.getTotalWidth()+";"})},getColumnTooltip:function(a){var b=this.cm.getColumnTooltip(a);if(b){if(Ext.QuickTips.isEnabled()){return'ext:qtip="'+b+'"'}else{return'title="'+b+'"'}}return""},beforeUpdate:function(){this.grid.stopEditing(true)},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=this.getTotalWidth()},focusRow:function(a){this.focusCell(a,0,false)},focusCell:function(c,a,b){this.syncFocusEl(this.ensureVisible(c,a,b));if(Ext.isGecko){this.focusEl.focus()}else{this.focusEl.focus.defer(1,this.focusEl)}},resolveCell:function(h,d,g){if(!Ext.isNumber(h)){h=h.rowIndex}if(!this.ds){return null}if(h<0||h>=this.ds.getCount()){return null}d=(d!==undefined?d:0);var c=this.getRow(h),a=this.cm,e=a.getColumnCount(),b;if(!(g===false&&d===0)){while(d<e&&a.isHidden(d)){d++}b=this.getCell(h,d)}return{row:c,cell:b}},getResolvedXY:function(a){if(!a){return null}var b=this.scroller.dom,e=a.cell,d=a.row;return e?Ext.fly(e).getXY():[this.el.getX(),Ext.fly(d).getY()]},syncFocusEl:function(d,a,c){var b=d;if(!Ext.isArray(b)){d=Math.min(d,Math.max(0,this.getRows().length-1));if(isNaN(d)){return}b=this.getResolvedXY(this.resolveCell(d,a,c))}this.focusEl.setXY(b||this.scroller.getXY())},ensureVisible:function(t,g,e){var r=this.resolveCell(t,g,e);if(!r||!r.row){return}var k=r.row,h=r.cell,n=this.scroller.dom,s=0,d=k,o=this.el.dom;while(d&&d!=o){s+=d.offsetTop;d=d.offsetParent}s-=this.mainHd.dom.offsetHeight;o=parseInt(n.scrollTop,10);var q=s+k.offsetHeight,a=n.clientHeight,m=o+a;if(s<o){n.scrollTop=s}else{if(q>m){n.scrollTop=q-a}}if(e!==false){var l=parseInt(h.offsetLeft,10);var j=l+h.offsetWidth;var i=parseInt(n.scrollLeft,10);var b=i+n.clientWidth;if(l<i){n.scrollLeft=l}else{if(j>b){n.scrollLeft=j-n.clientWidth}}}return this.getResolvedXY(r)},insertRows:function(a,i,e,h){var d=a.getCount()-1;if(!h&&i===0&&e>=d){this.fireEvent("beforerowsinserted",this,i,e);this.refresh();this.fireEvent("rowsinserted",this,i,e)}else{if(!h){this.fireEvent("beforerowsinserted",this,i,e)}var b=this.renderRows(i,e),g=this.getRow(i);if(g){if(i===0){Ext.fly(this.getRow(0)).removeClass(this.firstRowCls)}Ext.DomHelper.insertHtml("beforeBegin",g,b)}else{var c=this.getRow(d-1);if(c){Ext.fly(c).removeClass(this.lastRowCls)}Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,b)}if(!h){this.fireEvent("rowsinserted",this,i,e);this.processRows(i)}else{if(i===0||i>=d){Ext.fly(this.getRow(i)).addClass(i===0?this.firstRowCls:this.lastRowCls)}}}this.syncFocusEl(i)},deleteRows:function(a,c,b){if(a.getRowCount()<1){this.refresh()}else{this.fireEvent("beforerowsdeleted",this,c,b);this.removeRows(c,b);this.processRows(c);this.fireEvent("rowsdeleted",this,c,b)}},getColumnStyle:function(a,c){var b=!c?(this.cm.config[a].css||""):"";b+="width:"+this.getColumnWidth(a)+";";if(this.cm.isHidden(a)){b+="display:none;"}var d=this.cm.config[a].align;if(d){b+="text-align:"+d+";"}return b},getColumnWidth:function(b){var a=this.cm.getColumnWidth(b);if(Ext.isNumber(a)){return(Ext.isBorderBox||(Ext.isWebKit&&!Ext.isSafari2)?a:(a-this.borderWidth>0?a-this.borderWidth:0))+"px"}return a},getTotalWidth:function(){return this.cm.getTotalWidth()+"px"},fitColumns:function(d,h,j){var q=this.cm,k;var l=q.getTotalWidth(false);var a=this.grid.getGridEl().getWidth(true)-this.getScrollOffset();if(a<20){return}var e=a-l;if(e===0){return false}var m=q.getColumnCount(true);var s=m-(Ext.isNumber(j)?1:0);if(s===0){s=1;j=undefined}var r=q.getColumnCount();var o=[];var n=0;var c=0;var p;for(k=0;k<r;k++){if(!q.isFixed(k)&&k!==j){p=q.getColumnWidth(k);o.push(k,p);if(!q.isHidden(k)){n=k;c+=p}}}var b=(a-q.getTotalWidth())/c;while(o.length){p=o.pop();k=o.pop();q.setColumnWidth(k,Math.max(this.grid.minColumnWidth,Math.floor(p+p*b)),true)}if((l=q.getTotalWidth(false))>a){var g=s!=m?j:n;q.setColumnWidth(g,Math.max(1,q.getColumnWidth(g)-(l-a)),true)}if(d!==true){this.updateAllColumnWidths()}return true},autoExpand:function(b){var i=this.grid,a=this.cm;if(!this.userResized&&i.autoExpandColumn){var d=a.getTotalWidth(false);var j=this.grid.getGridEl().getWidth(true)-this.getScrollOffset();if(d!=j){var h=a.getIndexById(i.autoExpandColumn);var e=a.getColumnWidth(h);var c=Math.min(Math.max(((j-d)+e),i.autoExpandMin),i.autoExpandMax);if(c!=e){a.setColumnWidth(h,c,true);if(b!==true){this.updateColumnWidth(h,c)}}}}},getColumnData:function(){var d=[],a=this.cm,e=a.getColumnCount();for(var c=0;c<e;c++){var b=a.getDataIndex(c);d[c]={name:(!Ext.isDefined(b)?this.ds.fields.get(c).name:b),renderer:a.getRenderer(c),scope:a.getRendererScope(c),id:a.getColumnId(c),style:this.getColumnStyle(c)}}return d},renderRows:function(j,c){var d=this.grid,h=d.colModel,a=d.store,k=d.stripeRows;var i=h.getColumnCount();if(a.getCount()<1){return""}var e=this.getColumnData();j=j||0;c=!Ext.isDefined(c)?a.getCount()-1:c;var b=a.getRange(j,c);return this.doRender(e,b,a,j,i,k)},renderBody:function(){var a=this.renderRows()||"&#160;";return this.templates.body.apply({rows:a})},refreshRow:function(a){var c=this.ds,b;if(Ext.isNumber(a)){b=a;a=c.getAt(b);if(!a){return}}else{b=c.indexOf(a);if(b<0){return}}this.insertRows(c,b,b,true);this.getRow(b).rowIndex=b;this.onRemove(c,a,b+1,true);this.fireEvent("rowupdated",this,b,a)},refresh:function(b){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var a=this.renderBody();this.mainBody.update(a).setWidth(this.getTotalWidth());if(b===true){this.updateHeaders();this.updateHeaderSortState()}this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this)},applyEmptyText:function(){if(this.emptyText&&!this.hasRows()){this.mainBody.update('<div class="x-grid-empty">'+this.emptyText+"</div>")}},updateHeaderSortState:function(){var b=this.ds.getSortState();if(!b){return}if(!this.sortState||(this.sortState.field!=b.field||this.sortState.direction!=b.direction)){this.grid.fireEvent("sortchange",this.grid,b)}this.sortState=b;var c=this.cm.findColumnIndex(b.field);if(c!=-1){var a=b.direction;this.updateSortIcon(c,a)}},clearHeaderSortState:function(){if(!this.sortState){return}this.grid.fireEvent("sortchange",this.grid,null);this.mainHd.select("td").removeClass(this.sortClasses);delete this.sortState},destroy:function(){if(this.scrollToTopTask&&this.scrollToTopTask.cancel){this.scrollToTopTask.cancel()}if(this.colMenu){Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.destroy();delete this.colMenu}if(this.hmenu){Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.destroy();delete this.hmenu}this.initData(null,null);this.purgeListeners();Ext.fly(this.innerHd).un("click",this.handleHdDown,this);if(this.grid.enableColumnMove){Ext.destroy(this.columnDrag.el,this.columnDrag.proxy.ghost,this.columnDrag.proxy.el,this.columnDrop.el,this.columnDrop.proxyTop,this.columnDrop.proxyBottom,this.columnDrag.dragData.ddel,this.columnDrag.dragData.header);if(this.columnDrag.proxy.anim){Ext.destroy(this.columnDrag.proxy.anim)}delete this.columnDrag.proxy.ghost;delete this.columnDrag.dragData.ddel;delete this.columnDrag.dragData.header;this.columnDrag.destroy();delete Ext.dd.DDM.locationCache[this.columnDrag.id];delete this.columnDrag._domRef;delete this.columnDrop.proxyTop;delete this.columnDrop.proxyBottom;this.columnDrop.destroy();delete Ext.dd.DDM.locationCache["gridHeader"+this.grid.getGridEl().id];delete this.columnDrop._domRef;delete Ext.dd.DDM.ids[this.columnDrop.ddGroup]}if(this.splitZone){this.splitZone.destroy();delete this.splitZone._domRef;delete Ext.dd.DDM.ids["gridSplitters"+this.grid.getGridEl().id]}Ext.fly(this.innerHd).removeAllListeners();Ext.removeNode(this.innerHd);delete this.innerHd;Ext.destroy(this.el,this.mainWrap,this.mainHd,this.scroller,this.mainBody,this.focusEl,this.resizeMarker,this.resizeProxy,this.activeHdBtn,this.dragZone,this.splitZone,this._flyweight);delete this.grid.container;if(this.dragZone){this.dragZone.destroy()}Ext.dd.DDM.currentTarget=null;delete Ext.dd.DDM.locationCache[this.grid.getGridEl().id];Ext.EventManager.removeResizeListener(this.onWindowResize,this)},onDenyColumnHide:function(){},render:function(){if(this.autoFill){var a=this.grid.ownerCt;if(a&&a.getLayout()){a.on("afterlayout",function(){this.fitColumns(true,true);this.updateHeaders()},this,{single:true})}else{this.fitColumns(true,true)}}else{if(this.forceFit){this.fitColumns(true,false)}else{if(this.grid.autoExpandColumn){this.autoExpand(true)}}}this.renderUI()},initData:function(b,a){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange,this);this.ds.un("add",this.onAdd,this);this.ds.un("remove",this.onRemove,this);this.ds.un("update",this.onUpdate,this);this.ds.un("clear",this.onClear,this);if(this.ds!==b&&this.ds.autoDestroy){this.ds.destroy()}}if(b){b.on({scope:this,load:this.onLoad,datachanged:this.onDataChange,add:this.onAdd,remove:this.onRemove,update:this.onUpdate,clear:this.onClear})}this.ds=b;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this)}if(a){delete this.lastViewWidth;a.on({scope:this,configchange:this.onColConfigChange,widthchange:this.onColWidthChange,headerchange:this.onHeaderChange,hiddenchange:this.onHiddenChange,columnmoved:this.onColumnMove})}this.cm=a},onDataChange:function(){this.refresh();this.updateHeaderSortState();this.syncFocusEl(0)},onClear:function(){this.refresh();this.syncFocusEl(0)},onUpdate:function(b,a){this.refreshRow(a)},onAdd:function(c,a,b){this.insertRows(c,b,b+(a.length-1))},onRemove:function(d,a,b,c){if(c!==true){this.fireEvent("beforerowremoved",this,b,a)}this.removeRow(b);if(c!==true){this.processRows(b);this.applyEmptyText();this.fireEvent("rowremoved",this,b,a)}},onLoad:function(){if(Ext.isGecko){if(!this.scrollToTopTask){this.scrollToTopTask=new Ext.util.DelayedTask(this.scrollToTop,this)}this.scrollToTopTask.delay(1)}else{this.scrollToTop()}},onColWidthChange:function(a,b,c){this.updateColumnWidth(b,c)},onHeaderChange:function(a,b,c){this.updateHeaders()},onHiddenChange:function(a,b,c){this.updateColumnHidden(b,c)},onColumnMove:function(a,d,b){this.indexMap=null;var c=this.getScrollState();this.refresh(true);this.restoreScroll(c);this.afterMove(b);this.grid.fireEvent("columnmove",d,b)},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true)},initUI:function(a){a.on("headerclick",this.onHeaderClick,this)},initEvents:function(){},onHeaderClick:function(b,a){if(this.headersDisabled||!this.cm.isSortable(a)){return}b.stopEditing(true);b.store.sort(this.cm.getDataIndex(a))},onRowOver:function(b,a){var c;if((c=this.findRowIndex(a))!==false){this.addRowClass(c,"x-grid3-row-over")}},onRowOut:function(b,a){var c;if((c=this.findRowIndex(a))!==false&&!b.within(this.getRow(c),true)){this.removeRowClass(c,"x-grid3-row-over")}},handleWheel:function(a){a.stopPropagation()},onRowSelect:function(a){this.addRowClass(a,this.selectedRowClass)},onRowDeselect:function(a){this.removeRowClass(a,this.selectedRowClass)},onCellSelect:function(c,b){var a=this.getCell(c,b);if(a){this.fly(a).addClass("x-grid3-cell-selected")}},onCellDeselect:function(c,b){var a=this.getCell(c,b);if(a){this.fly(a).removeClass("x-grid3-cell-selected")}},onColumnSplitterMoved:function(c,b){this.userResized=true;var a=this.grid.colModel;a.setColumnWidth(c,b,true);if(this.forceFit){this.fitColumns(true,false,c);this.updateAllColumnWidths()}else{this.updateColumnWidth(c,b);this.syncHeaderScroll()}this.grid.fireEvent("columnresize",c,b)},handleHdMenuClick:function(c){var b=this.hdCtxIndex,a=this.cm,d=this.ds,e=c.getItemId();switch(e){case"asc":d.sort(a.getDataIndex(b),"ASC");break;case"desc":d.sort(a.getDataIndex(b),"DESC");break;default:b=a.getIndexById(e.substr(4));if(b!=-1){if(c.checked&&a.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false}a.setHidden(b,c.checked)}}return true},isHideableColumn:function(a){return!a.hidden},beforeColMenuShow:function(){var a=this.cm,c=a.getColumnCount();this.colMenu.removeAll();for(var b=0;b<c;b++){if(a.config[b].hideable!==false){this.colMenu.add(new Ext.menu.CheckItem({itemId:"col-"+a.getColumnId(b),text:a.getColumnHeader(b),checked:!a.isHidden(b),hideOnClick:false,disabled:a.config[b].hideable===false}))}}},handleHdDown:function(h,d){if(Ext.fly(d).hasClass("x-grid3-hd-btn")){h.stopEvent();var g=this.findHeaderCell(d);Ext.fly(g).addClass("x-grid3-hd-menu-open");var c=this.getCellIndex(g);this.hdCtxIndex=c;var b=this.hmenu.items,a=this.cm;b.get("asc").setDisabled(!a.isSortable(c));b.get("desc").setDisabled(!a.isSortable(c));this.hmenu.on("hide",function(){Ext.fly(g).removeClass("x-grid3-hd-menu-open")},this,{single:true});this.hmenu.show(d,"tl-bl?")}},handleHdOver:function(d,a){var c=this.findHeaderCell(a);if(c&&!this.headersDisabled){this.activeHdRef=a;this.activeHdIndex=this.getCellIndex(c);var b=this.fly(c);this.activeHdRegion=b.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){b.addClass("x-grid3-hd-over");this.activeHdBtn=b.child(".x-grid3-hd-btn");if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(c.firstChild.offsetHeight-1)+"px"}}}},handleHdMove:function(i,d){var h=this.findHeaderCell(this.activeHdRef);if(h&&!this.headersDisabled){var b=this.splitHandleWidth||5,g=this.activeHdRegion,a=i.getPageX(),c=h.style,j="";if(this.grid.enableColumnResize!==false){if(a-g.left<=b&&this.cm.isResizable(this.activeHdIndex-1)){j=Ext.isAir?"move":Ext.isWebKit?"e-resize":"col-resize"}else{if(g.right-a<=(!this.activeHdBtn?b:2)&&this.cm.isResizable(this.activeHdIndex)){j=Ext.isAir?"move":Ext.isWebKit?"w-resize":"col-resize"}}}c.cursor=j}},handleHdOut:function(c,a){var b=this.findHeaderCell(a);if(b&&(!Ext.isIE||!c.within(b,true))){this.activeHdRef=null;this.fly(b).removeClass("x-grid3-hd-over");b.style.cursor=""}},hasRows:function(){var a=this.mainBody.dom.firstChild;return a&&a.nodeType==1&&a.className!="x-grid-empty"},bind:function(a,b){this.initData(a,b)}});Ext.grid.GridView.SplitDragZone=Ext.extend(Ext.dd.DDProxy,{constructor:function(a,b){this.grid=a;this.view=a.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,b,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5},b4StartDrag:function(a,e){this.dragHeadersDisabled=this.view.headersDisabled;this.view.headersDisabled=true;var d=this.view.mainWrap.getHeight();this.marker.setHeight(d);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),"tl-tl",[-2,0]);this.proxy.setHeight(d);var b=this.cm.getColumnWidth(this.cellIndex),c=Math.max(b-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(c,1000);this.setYConstraint(0,0);this.minX=a-c;this.maxX=a+1000;this.startPos=a;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,a,e)},allowHeaderDrag:function(a){return true},handleMouseDown:function(a){var i=this.view.findHeaderCell(a.getTarget());if(i&&this.allowHeaderDrag(a)){var l=this.view.fly(i).getXY(),d=l[0],c=l[1],j=a.getXY(),b=j[0],h=i.offsetWidth,g=false;if((b-d)<=this.hw){g=-1}else{if((d+h)-b<=this.hw){g=0}}if(g!==false){this.cm=this.grid.colModel;var k=this.view.getCellIndex(i);if(g==-1){if(k+g<0){return}while(this.cm.isHidden(k+g)){--g;if(k+g<0){return}}}this.cellIndex=k+g;this.split=i.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}}else{if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(a)}}}},endDrag:function(g){this.marker.hide();var a=this.view,c=Math.max(this.minX,g.getPageX()),d=c-this.startPos,b=this.dragHeadersDisabled;a.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+d);setTimeout(function(){a.headersDisabled=b},50)},autoOffset:function(){this.setDelta(0,0)}});Ext.grid.HeaderDragZone=Ext.extend(Ext.dd.DragZone,{maxDragWidth:120,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,c);if(b){this.setHandleElId(Ext.id(c));this.setOuterHandleElId(Ext.id(b))}this.scroll=false},getDragData:function(c){var a=Ext.lib.Event.getTarget(c),b=this.view.findHeaderCell(a);if(b){return{ddel:b.firstChild,header:b}}return false},onInitDrag:function(a){this.dragHeadersDisabled=this.view.headersDisabled;this.view.headersDisabled=true;var b=this.dragData.ddel.cloneNode(true);b.id=Ext.id();b.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(b);return true},afterValidDrop:function(){this.completeDrop()},afterInvalidDrop:function(){this.completeDrop()},completeDrop:function(){var a=this.view,b=this.dragHeadersDisabled;setTimeout(function(){a.headersDisabled=b},50)}});Ext.grid.HeaderDropZone=Ext.extend(Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.proxyTop=Ext.DomHelper.append(document.body,{cls:"col-move-top",html:"&#160;"},true);this.proxyBottom=Ext.DomHelper.append(document.body,{cls:"col-move-bottom",html:"&#160;"},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden")};this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,a.getGridEl().dom)},getTargetFromEvent:function(c){var a=Ext.lib.Event.getTarget(c),b=this.view.findCellIndex(a);if(b!==false){return this.view.getHeaderCell(b)}},nextVisible:function(c){var b=this.view,a=this.grid.colModel;c=c.nextSibling;while(c){if(!a.isHidden(b.getCellIndex(c))){return c}c=c.nextSibling}return null},prevVisible:function(c){var b=this.view,a=this.grid.colModel;c=c.prevSibling;while(c){if(!a.isHidden(b.getCellIndex(c))){return c}c=c.prevSibling}return null},positionIndicator:function(d,k,j){var a=Ext.lib.Event.getPageX(j),g=Ext.lib.Dom.getRegion(k.firstChild),c,i,b=g.top+this.proxyOffsets[1];if((g.right-a)<=(g.right-g.left)/2){c=g.right+this.view.borderWidth;i="after"}else{c=g.left;i="before"}if(this.grid.colModel.isFixed(this.view.getCellIndex(k))){return false}c+=this.proxyOffsets[0];this.proxyTop.setLeftTop(c,b);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight()}this.proxyBottom.setLeftTop(c,b+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return i},onNodeEnter:function(d,a,c,b){if(b.header!=d){this.positionIndicator(b.header,d,c)}},onNodeOver:function(g,b,d,c){var a=false;if(c.header!=g){a=this.positionIndicator(c.header,g,d)}if(!a){this.proxyTop.hide();this.proxyBottom.hide()}return a?this.dropAllowed:this.dropNotAllowed},onNodeOut:function(d,a,c,b){this.proxyTop.hide();this.proxyBottom.hide()},onNodeDrop:function(b,m,g,c){var d=c.header;if(d!=b){var k=this.grid.colModel,j=Ext.lib.Event.getPageX(g),a=Ext.lib.Dom.getRegion(b.firstChild),o=(a.right-j)<=((a.right-a.left)/2)?"after":"before",i=this.view.getCellIndex(d),l=this.view.getCellIndex(b);if(o=="after"){l++}if(i<l){l--}k.moveColumn(i,l);return true}return false}});Ext.grid.GridView.ColumnDragZone=Ext.extend(Ext.grid.HeaderDragZone,{constructor:function(a,b){Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this,a,b,null);this.proxy.el.addClass("x-grid3-col-dd")},handleMouseDown:function(a){},callHandleMouseDown:function(a){Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this,a)}});Ext.grid.SplitDragZone=Ext.extend(Ext.dd.DDProxy,{fly:Ext.Element.fly,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,c,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(c));this.setOuterHandleElId(Ext.id(b));this.scroll=false},b4StartDrag:function(a,d){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var b=this.cm.getColumnWidth(this.cellIndex);var c=Math.max(b-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(c,1000);this.setYConstraint(0,0);this.minX=a-c;this.maxX=a+1000;this.startPos=a;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,a,d)},handleMouseDown:function(c){var b=Ext.EventObject.setEvent(c);var a=this.fly(b.getTarget());if(a.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(a.dom);this.split=a.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}}},endDrag:function(c){this.view.headersDisabled=false;var a=Math.max(this.minX,Ext.lib.Event.getPageX(c));var b=a-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+b)},autoOffset:function(){this.setDelta(0,0)}});Ext.grid.GridDragZone=function(b,a){this.view=b.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.mainBody.dom,a);this.scroll=false;this.grid=b;this.ddel=document.createElement("div");this.ddel.className="x-grid-dd-wrap"};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(b){var a=Ext.lib.Event.getTarget(b);var d=this.view.findRowIndex(a);if(d!==false){var c=this.grid.selModel;if(!c.isSelected(d)||b.hasModifier()){c.handleMouseDown(this.grid,d,b)}return{grid:this.grid,ddel:this.ddel,rowIndex:d,selections:c.getSelections()}}return false},onInitDrag:function(b){var a=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel)},afterRepair:function(){this.dragging=false},getRepairXY:function(b,a){return false},onEndDrag:function(a,b){},onValidDrop:function(a,b,c){this.hideProxy()},beforeInvalidDrop:function(a,b){}});Ext.grid.ColumnModel=Ext.extend(Ext.util.Observable,{defaultWidth:100,defaultSortable:false,constructor:function(a){if(a.columns){Ext.apply(this,a);this.setConfig(a.columns,true)}else{this.setConfig(a,true)}this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this)},getColumnId:function(a){return this.config[a].id},getColumnAt:function(a){return this.config[a]},setConfig:function(d,b){var e,h,a;if(!b){delete this.totalWidth;for(e=0,a=this.config.length;e<a;e++){h=this.config[e];if(h.setEditor){h.setEditor(null)}}}this.defaults=Ext.apply({width:this.defaultWidth,sortable:this.defaultSortable},this.defaults);this.config=d;this.lookup={};for(e=0,a=d.length;e<a;e++){h=Ext.applyIf(d[e],this.defaults);if(Ext.isEmpty(h.id)){h.id=e}if(!h.isColumn){var g=Ext.grid.Column.types[h.xtype||"gridcolumn"];h=new g(h);d[e]=h}this.lookup[h.id]=h}if(!b){this.fireEvent("configchange",this)}},getColumnById:function(a){return this.lookup[a]},getIndexById:function(c){for(var b=0,a=this.config.length;b<a;b++){if(this.config[b].id==c){return b}}return-1},moveColumn:function(d,a){var b=this.config[d];this.config.splice(d,1);this.config.splice(a,0,b);this.dataMap=null;this.fireEvent("columnmoved",this,d,a)},getColumnCount:function(d){if(d===true){var e=0;for(var b=0,a=this.config.length;b<a;b++){if(!this.isHidden(b)){e++}}return e}return this.config.length},getColumnsBy:function(e,d){var g=[];for(var b=0,a=this.config.length;b<a;b++){var h=this.config[b];if(e.call(d||this,h,b)===true){g[g.length]=h}}return g},isSortable:function(a){return!!this.config[a].sortable},isMenuDisabled:function(a){return!!this.config[a].menuDisabled},getRenderer:function(a){if(!this.config[a].renderer){return Ext.grid.ColumnModel.defaultRenderer}return this.config[a].renderer},getRendererScope:function(a){return this.config[a].scope},setRenderer:function(a,b){this.config[a].renderer=b},getColumnWidth:function(a){return this.config[a].width},setColumnWidth:function(b,c,a){this.config[b].width=c;this.totalWidth=null;if(!a){this.fireEvent("widthchange",this,b,c)}},getTotalWidth:function(b){if(!this.totalWidth){this.totalWidth=0;for(var c=0,a=this.config.length;c<a;c++){if(b||!this.isHidden(c)){this.totalWidth+=this.getColumnWidth(c)}}}return this.totalWidth},getColumnHeader:function(a){return this.config[a].header},setColumnHeader:function(a,b){this.config[a].header=b;this.fireEvent("headerchange",this,a,b)},getColumnTooltip:function(a){return this.config[a].tooltip},setColumnTooltip:function(a,b){this.config[a].tooltip=b},getDataIndex:function(a){return this.config[a].dataIndex},setDataIndex:function(a,b){this.config[a].dataIndex=b},findColumnIndex:function(d){var e=this.config;for(var b=0,a=e.length;b<a;b++){if(e[b].dataIndex==d){return b}}return-1},isCellEditable:function(b,e){var d=this.config[b],a=d.editable;return!!(a||(!Ext.isDefined(a)&&d.editor))},getCellEditor:function(a,b){return this.config[a].getCellEditor(b)},setEditable:function(a,b){this.config[a].editable=b},isHidden:function(a){return!!this.config[a].hidden},isFixed:function(a){return!!this.config[a].fixed},isResizable:function(a){return a>=0&&this.config[a].resizable!==false&&this.config[a].fixed!==true},setHidden:function(a,b){var d=this.config[a];if(d.hidden!==b){d.hidden=b;this.totalWidth=null;this.fireEvent("hiddenchange",this,a,b)}},setEditor:function(a,b){this.config[a].setEditor(b)},destroy:function(){var d;for(var b=0,a=this.config.length;b<a;b++){d=this.config[b];if(d.setEditor){d.setEditor(null)}}this.purgeListeners()},setState:function(a,b){Ext.applyIf(this.config[a],b)}});Ext.grid.ColumnModel.defaultRenderer=function(a){if(typeof a=="string"&&a.length<1){return"&#160;"}return a};Ext.grid.AbstractSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this)},init:function(a){this.grid=a;if(this.lockOnInit){delete this.lockOnInit;this.locked=false;this.lock()}this.initEvents()},lock:function(){if(!this.locked){this.locked=true;var a=this.grid;if(a){a.getView().on({scope:this,beforerefresh:this.sortUnLock,refresh:this.sortLock})}else{this.lockOnInit=true}}},sortLock:function(){this.locked=true},sortUnLock:function(){this.locked=false},unlock:function(){if(this.locked){this.locked=false;var a=this.grid,b;if(a){b=a.getView();b.un("beforerefresh",this.sortUnLock,this);b.un("refresh",this.sortLock,this)}else{delete this.lockOnInit}}},isLocked:function(){return this.locked},destroy:function(){this.unlock();this.purgeListeners()}});Ext.grid.RowSelectionModel=Ext.extend(Ext.grid.AbstractSelectionModel,{singleSelect:false,constructor:function(a){Ext.apply(this,a);this.selections=new Ext.util.MixedCollection(false,function(b){return b.id});this.last=false;this.lastActive=false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this)},initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("rowmousedown",this.handleMouseDown,this)}this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{up:function(b){if(!b.shiftKey||this.singleSelect){this.selectPrevious(false)}else{if(this.last!==false&&this.lastActive!==false){var a=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(a!==false){this.last=a}}else{this.selectFirstRow()}}},down:function(b){if(!b.shiftKey||this.singleSelect){this.selectNext(false)}else{if(this.last!==false&&this.lastActive!==false){var a=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(a!==false){this.last=a}}else{this.selectFirstRow()}}},scope:this});this.grid.getView().on({scope:this,refresh:this.onRefresh,rowupdated:this.onRowUpdated,rowremoved:this.onRemove})},onRefresh:function(){var g=this.grid.store,b;var d=this.getSelections();this.clearSelections(true);for(var c=0,a=d.length;c<a;c++){var e=d[c];if((b=g.indexOfId(e.id))!=-1){this.selectRow(b,true)}}if(d.length!=this.selections.getCount()){this.fireEvent("selectionchange",this)}},onRemove:function(a,b,c){if(this.selections.remove(c)!==false){this.fireEvent("selectionchange",this)}},onRowUpdated:function(a,b,c){if(this.isSelected(c)){a.onRowSelect(b)}},selectRecords:function(b,e){if(!e){this.clearSelections()}var d=this.grid.store;for(var c=0,a=b.length;c<a;c++){this.selectRow(d.indexOf(b[c]),true)}},getCount:function(){return this.selections.length},selectFirstRow:function(){this.selectRow(0)},selectLastRow:function(a){this.selectRow(this.grid.store.getCount()-1,a)},selectNext:function(a){if(this.hasNext()){this.selectRow(this.last+1,a);this.grid.getView().focusRow(this.last);return true}return false},selectPrevious:function(a){if(this.hasPrevious()){this.selectRow(this.last-1,a);this.grid.getView().focusRow(this.last);return true}return false},hasNext:function(){return this.last!==false&&(this.last+1)<this.grid.store.getCount()},hasPrevious:function(){return!!this.last},getSelections:function(){return[].concat(this.selections.items)},getSelected:function(){return this.selections.itemAt(0)},each:function(e,d){var c=this.getSelections();for(var b=0,a=c.length;b<a;b++){if(e.call(d||this,c[b],b)===false){return false}}return true},clearSelections:function(a){if(this.isLocked()){return}if(a!==true){var c=this.grid.store;var b=this.selections;b.each(function(d){this.deselectRow(c.indexOfId(d.id))},this);b.clear()}else{this.selections.clear()}this.last=false},selectAll:function(){if(this.isLocked()){return}this.selections.clear();for(var b=0,a=this.grid.store.getCount();b<a;b++){this.selectRow(b,true)}},hasSelection:function(){return this.selections.length>0},isSelected:function(a){var b=Ext.isNumber(a)?this.grid.store.getAt(a):a;return(b&&this.selections.key(b.id)?true:false)},isIdSelected:function(a){return(this.selections.key(a)?true:false)},handleMouseDown:function(d,i,h){if(h.button!==0||this.isLocked()){return}var a=this.grid.getView();if(h.shiftKey&&!this.singleSelect&&this.last!==false){var c=this.last;this.selectRange(c,i,h.ctrlKey);this.last=c;a.focusRow(i)}else{var b=this.isSelected(i);if(h.ctrlKey&&b){this.deselectRow(i)}else{if(!b||this.getCount()>1){this.selectRow(i,h.ctrlKey||h.shiftKey);a.focusRow(i)}}}},selectRows:function(c,d){if(!d){this.clearSelections()}for(var b=0,a=c.length;b<a;b++){this.selectRow(c[b],true)}},selectRange:function(b,a,d){var c;if(this.isLocked()){return}if(!d){this.clearSelections()}if(b<=a){for(c=b;c<=a;c++){this.selectRow(c,true)}}else{for(c=b;c>=a;c--){this.selectRow(c,true)}}},deselectRange:function(c,b,a){if(this.isLocked()){return}for(var d=c;d<=b;d++){this.deselectRow(d,a)}},selectRow:function(b,d,a){if(this.isLocked()||(b<0||b>=this.grid.store.getCount())||(d&&this.isSelected(b))){return}var c=this.grid.store.getAt(b);if(c&&this.fireEvent("beforerowselect",this,b,d,c)!==false){if(!d||this.singleSelect){this.clearSelections()}this.selections.add(c);this.last=this.lastActive=b;if(!a){this.grid.getView().onRowSelect(b)}this.fireEvent("rowselect",this,b,c);this.fireEvent("selectionchange",this)}},deselectRow:function(b,a){if(this.isLocked()){return}if(this.last==b){this.last=false}if(this.lastActive==b){this.lastActive=false}var c=this.grid.store.getAt(b);if(c){this.selections.remove(c);if(!a){this.grid.getView().onRowDeselect(b)}this.fireEvent("rowdeselect",this,b,c);this.fireEvent("selectionchange",this)}},restoreLast:function(){if(this._last){this.last=this._last}},acceptsNav:function(c,b,a){return!a.isHidden(b)&&a.isCellEditable(b,c)},onEditorKey:function(n,l){var d=l.getKey(),h,i=this.grid,o=i.lastEdit,j=i.activeEditor,p,o,a,m;var b=l.shiftKey;if(d==l.TAB){l.stopEvent();j.completeEdit();if(b){h=i.walkCells(j.row,j.col-1,-1,this.acceptsNav,this)}else{h=i.walkCells(j.row,j.col+1,1,this.acceptsNav,this)}}else{if(d==l.ENTER){if(this.moveEditorOnEnter!==false){if(b){h=i.walkCells(o.row-1,o.col,-1,this.acceptsNav,this)}else{h=i.walkCells(o.row+1,o.col,1,this.acceptsNav,this)}}}}if(h){a=h[0];m=h[1];if(o.row!=a){this.selectRow(a)}if(i.isEditor&&i.editing){p=i.activeEditor;if(p&&p.field.triggerBlur){p.field.triggerBlur()}}i.startEditing(a,m)}},destroy:function(){if(this.rowNav){this.rowNav.disable();this.rowNav=null}Ext.grid.RowSelectionModel.superclass.destroy.call(this)}});Ext.grid.Column=Ext.extend(Object,{isColumn:true,constructor:function(b){Ext.apply(this,b);if(Ext.isString(this.renderer)){this.renderer=Ext.util.Format[this.renderer]}else{if(Ext.isObject(this.renderer)){this.scope=this.renderer.scope;this.renderer=this.renderer.fn}}if(!this.scope){this.scope=this}var a=this.editor;delete this.editor;this.setEditor(a)},renderer:function(a){if(Ext.isString(a)&&a.length<1){return"&#160;"}return a},getEditor:function(a){return this.editable!==false?this.editor:null},setEditor:function(b){var a=this.editor;if(a){if(a.gridEditor){a.gridEditor.destroy();delete a.gridEditor}else{a.destroy()}}this.editor=null;if(b){if(!b.isXType){b=Ext.create(b,"textfield")}this.editor=b}},getCellEditor:function(b){var a=this.getEditor(b);if(a){if(!a.startEdit){if(!a.gridEditor){a.gridEditor=new Ext.grid.GridEditor(a)}a=a.gridEditor}}return a}});Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{trueText:"true",falseText:"false",undefinedText:"&#160;",constructor:function(a){Ext.grid.BooleanColumn.superclass.constructor.call(this,a);var c=this.trueText,d=this.falseText,b=this.undefinedText;this.renderer=function(e){if(e===undefined){return b}if(!e||e==="false"){return d}return c}}});Ext.grid.NumberColumn=Ext.extend(Ext.grid.Column,{format:"0,000.00",constructor:function(a){Ext.grid.NumberColumn.superclass.constructor.call(this,a);this.renderer=Ext.util.Format.numberRenderer(this.format)}});Ext.grid.DateColumn=Ext.extend(Ext.grid.Column,{format:"m/d/Y",constructor:function(a){Ext.grid.DateColumn.superclass.constructor.call(this,a);this.renderer=Ext.util.Format.dateRenderer(this.format)}});Ext.grid.TemplateColumn=Ext.extend(Ext.grid.Column,{constructor:function(a){Ext.grid.TemplateColumn.superclass.constructor.call(this,a);var b=(!Ext.isPrimitive(this.tpl)&&this.tpl.compile)?this.tpl:new Ext.XTemplate(this.tpl);this.renderer=function(d,e,c){return b.apply(c.data)};this.tpl=b}});Ext.grid.Column.types={gridcolumn:Ext.grid.Column,booleancolumn:Ext.grid.BooleanColumn,numbercolumn:Ext.grid.NumberColumn,datecolumn:Ext.grid.DateColumn,templatecolumn:Ext.grid.TemplateColumn};Ext.grid.RowNumberer=Ext.extend(Object,{header:"",width:23,sortable:false,constructor:function(a){Ext.apply(this,a);if(this.rowspan){this.renderer=this.renderer.createDelegate(this)}},fixed:true,hideable:false,menuDisabled:true,dataIndex:"",id:"numberer",rowspan:undefined,renderer:function(b,c,a,d){if(this.rowspan){c.cellAttr='rowspan="'+this.rowspan+'"'}return d+1}});Ext.grid.CheckboxSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{header:'<div class="x-grid3-hd-checker">&#160;</div>',width:20,sortable:false,menuDisabled:true,fixed:true,hideable:false,dataIndex:"",id:"checker",constructor:function(){Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this,arguments);if(this.checkOnly){this.handleMouseDown=Ext.emptyFn}},initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on("render",function(){var a=this.grid.getView();a.mainBody.on("mousedown",this.onMouseDown,this);Ext.fly(a.innerHd).on("mousedown",this.onHdMouseDown,this)},this)},handleMouseDown:function(){Ext.grid.CheckboxSelectionModel.superclass.handleMouseDown.apply(this,arguments);this.mouseHandled=true},onMouseDown:function(c,b){if(c.button===0&&b.className=="x-grid3-row-checker"){c.stopEvent();var d=c.getTarget(".x-grid3-row");if(!this.mouseHandled&&d){var a=d.rowIndex;if(this.isSelected(a)){this.deselectRow(a)}else{this.selectRow(a,true);this.grid.getView().focusRow(a)}}}this.mouseHandled=false},onHdMouseDown:function(c,a){if(a.className=="x-grid3-hd-checker"){c.stopEvent();var b=Ext.fly(a.parentNode);var d=b.hasClass("x-grid3-hd-checker-on");if(d){b.removeClass("x-grid3-hd-checker-on");this.clearSelections()}else{b.addClass("x-grid3-hd-checker-on");this.selectAll()}}},renderer:function(b,c,a){return'<div class="x-grid3-row-checker">&#160;</div>'}});Ext.grid.CellSelectionModel=Ext.extend(Ext.grid.AbstractSelectionModel,{constructor:function(a){Ext.apply(this,a);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this)},initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.on(Ext.EventManager.useKeydown?"keydown":"keypress",this.handleKeyDown,this);this.grid.getView().on({scope:this,refresh:this.onViewChange,rowupdated:this.onRowUpdated,beforerowremoved:this.clearSelections,beforerowsinserted:this.clearSelections});if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this)}},beforeEdit:function(a){this.select(a.row,a.column,false,true,a.record)},onRowUpdated:function(a,b,c){if(this.selection&&this.selection.record==c){a.onCellSelect(b,this.selection.cell[1])}},onViewChange:function(){this.clearSelections(true)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(b){var a=this.selection;if(a){if(b!==true){this.grid.view.onCellDeselect(a.cell[0],a.cell[1])}this.selection=null;this.fireEvent("selectionchange",this,null)}},hasSelection:function(){return this.selection?true:false},handleMouseDown:function(b,d,a,c){if(c.button!==0||this.isLocked()){return}this.select(d,a)},select:function(g,c,b,e,d){if(this.fireEvent("beforecellselect",this,g,c)!==false){this.clearSelections();d=d||this.grid.store.getAt(g);this.selection={record:d,cell:[g,c]};if(!b){var a=this.grid.getView();a.onCellSelect(g,c);if(e!==true){a.focusCell(g,c)}}this.fireEvent("cellselect",this,g,c);this.fireEvent("selectionchange",this,this.selection)}},isSelectable:function(c,b,a){return!a.isHidden(b)},onEditorKey:function(b,a){if(a.getKey()==a.TAB){this.handleKeyDown(a)}},handleKeyDown:function(j){if(!j.isNavKeyPress()){return}var d=j.getKey(),i=this.grid,p=this.selection,b=this,m=function(g,c,e){return i.walkCells(g,c,e,i.isEditor&&i.editing?b.acceptsNav:b.isSelectable,b)},o,h,a,l,n;switch(d){case j.ESC:case j.PAGE_UP:case j.PAGE_DOWN:break;default:j.stopEvent();break}if(!p){o=m(0,0,1);if(o){this.select(o[0],o[1])}return}o=p.cell;a=o[0];l=o[1];switch(d){case j.TAB:if(j.shiftKey){h=m(a,l-1,-1)}else{h=m(a,l+1,1)}break;case j.DOWN:h=m(a+1,l,1);break;case j.UP:h=m(a-1,l,-1);break;case j.RIGHT:h=m(a,l+1,1);break;case j.LEFT:h=m(a,l-1,-1);break;case j.ENTER:if(i.isEditor&&!i.editing){i.startEditing(a,l);return}break}if(h){a=h[0];l=h[1];this.select(a,l);if(i.isEditor&&i.editing){n=i.activeEditor;if(n&&n.field.triggerBlur){n.field.triggerBlur()}i.startEditing(a,l)}}},acceptsNav:function(c,b,a){return!a.isHidden(b)&&a.isCellEditable(b,c)}});Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,forceValidation:false,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel()}this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.getGridEl().on("mousewheel",this.stopEditing.createDelegate(this,[true]),this);this.on("columnresize",this.stopEditing,this,[true]);if(this.clicksToEdit==1){this.on("cellclick",this.onCellDblClick,this)}else{var a=this.getView();if(this.clicksToEdit=="auto"&&a.mainBody){a.mainBody.on("mousedown",this.onAutoEditClick,this)}this.on("celldblclick",this.onCellDblClick,this)}},onResize:function(){Ext.grid.EditorGridPanel.superclass.onResize.apply(this,arguments);var a=this.activeEditor;if(this.editing&&a){a.realign(true)}},onCellDblClick:function(b,c,a){this.startEditing(c,a)},onAutoEditClick:function(c,b){if(c.button!==0){return}var g=this.view.findRowIndex(b),a=this.view.findCellIndex(b);if(g!==false&&a!==false){this.stopEditing();if(this.selModel.getSelectedCell){var d=this.selModel.getSelectedCell();if(d&&d[0]===g&&d[1]===a){this.startEditing(g,a)}}else{if(this.selModel.isSelected(g)){this.startEditing(g,a)}}}},onEditComplete:function(b,d,a){this.editing=false;this.lastActiveEditor=this.activeEditor;this.activeEditor=null;var c=b.record,h=this.colModel.getDataIndex(b.col);d=this.postEditValue(d,a,c,h);if(this.forceValidation===true||String(d)!==String(a)){var g={grid:this,record:c,field:h,originalValue:a,value:d,row:b.row,column:b.col,cancel:false};if(this.fireEvent("validateedit",g)!==false&&!g.cancel&&String(d)!==String(a)){c.set(h,g.value);delete g.cancel;this.fireEvent("afteredit",g)}}this.view.focusCell(b.row,b.col)},startEditing:function(i,c){this.stopEditing();if(this.colModel.isCellEditable(c,i)){this.view.ensureVisible(i,c,true);var d=this.store.getAt(i),h=this.colModel.getDataIndex(c),g={grid:this,record:d,field:h,value:d.data[h],row:i,column:c,cancel:false};if(this.fireEvent("beforeedit",g)!==false&&!g.cancel){this.editing=true;var b=this.colModel.getCellEditor(c,i);if(!b){return}if(!b.rendered){b.parentEl=this.view.getEditorParent(b);b.on({scope:this,render:{fn:function(e){e.field.focus(false,true)},single:true,scope:this},specialkey:function(k,j){this.getSelectionModel().onEditorKey(k,j)},complete:this.onEditComplete,canceledit:this.stopEditing.createDelegate(this,[true])})}Ext.apply(b,{row:i,col:c,record:d});this.lastEdit={row:i,col:c};this.activeEditor=b;b.selectSameEditor=(this.activeEditor==this.lastActiveEditor);var a=this.preEditValue(d,h);b.startEdit(this.view.getCell(i,c).firstChild,Ext.isDefined(a)?a:"");(function(){delete b.selectSameEditor}).defer(50)}}},preEditValue:function(a,c){var b=a.data[c];return this.autoEncode&&Ext.isString(b)?Ext.util.Format.htmlDecode(b):b},postEditValue:function(c,a,b,d){return this.autoEncode&&Ext.isString(c)?Ext.util.Format.htmlEncode(c):c},stopEditing:function(b){if(this.editing){var a=this.lastActiveEditor=this.activeEditor;if(a){a[b===true?"cancelEdit":"completeEdit"]();this.view.focusCell(a.row,a.col)}this.activeEditor=null}this.editing=false}});Ext.reg("editorgrid",Ext.grid.EditorGridPanel);Ext.grid.GridEditor=function(b,a){Ext.grid.GridEditor.superclass.constructor.call(this,b,a);b.monitorTab=false};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:false});Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]);Ext.grid.PropertyStore=Ext.extend(Ext.util.Observable,{constructor:function(a,b){this.grid=a;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on("update",this.onUpdate,this);if(b){this.setSource(b)}Ext.grid.PropertyStore.superclass.constructor.call(this)},setSource:function(c){this.source=c;this.store.removeAll();var b=[];for(var a in c){if(this.isEditableValue(c[a])){b.push(new Ext.grid.PropertyRecord({name:a,value:c[a]},a))}}this.store.loadRecords({records:b},{},true)},onUpdate:function(e,a,d){if(d==Ext.data.Record.EDIT){var b=a.data.value;var c=a.modified.value;if(this.grid.fireEvent("beforepropertychange",this.source,a.id,b,c)!==false){this.source[a.id]=b;a.commit();this.grid.fireEvent("propertychange",this.source,a.id,b,c)}else{a.reject()}}},getProperty:function(a){return this.store.getAt(a)},isEditableValue:function(a){return Ext.isPrimitive(a)||Ext.isDate(a)},setValue:function(d,c,a){var b=this.getRec(d);if(b){b.set("value",c);this.source[d]=c}else{if(a){this.source[d]=c;b=new Ext.grid.PropertyRecord({name:d,value:c},d);this.store.add(b)}}},remove:function(b){var a=this.getRec(b);if(a){this.store.remove(a);delete this.source[b]}},getRec:function(a){return this.store.getById(a)},getSource:function(){return this.source}});Ext.grid.PropertyColumnModel=Ext.extend(Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",constructor:function(c,b){var d=Ext.grid,e=Ext.form;this.grid=c;d.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:true,dataIndex:"name",id:"name",menuDisabled:true},{header:this.valueText,width:50,resizable:false,dataIndex:"value",id:"value",menuDisabled:true}]);this.store=b;var a=new e.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:this.trueText},{tag:"option",value:"false",html:this.falseText}]},getValue:function(){return this.el.dom.value=="true"}});this.editors={date:new d.GridEditor(new e.DateField({selectOnFocus:true})),string:new d.GridEditor(new e.TextField({selectOnFocus:true})),number:new d.GridEditor(new e.NumberField({selectOnFocus:true,style:"text-align:left;"})),"boolean":new d.GridEditor(a,{autoSize:"both"})};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this)},renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return this[a?"trueText":"falseText"]},isCellEditable:function(a,b){return a==1},getRenderer:function(a){return a==1?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(a){return this.getPropertyName(a)},renderCell:function(d,b,c){var a=this.grid.customRenderers[c.get("name")];if(a){return a.apply(this,arguments)}var e=d;if(Ext.isDate(d)){e=this.renderDate(d)}else{if(typeof d=="boolean"){e=this.renderBool(d)}}return Ext.util.Format.htmlEncode(e)},getPropertyName:function(b){var a=this.grid.propertyNames;return a&&a[b]?a[b]:b},getCellEditor:function(a,e){var b=this.store.getProperty(e),d=b.data.name,c=b.data.value;if(this.grid.customEditors[d]){return this.grid.customEditors[d]}if(Ext.isDate(c)){return this.editors.date}else{if(typeof c=="number"){return this.editors.number}else{if(typeof c=="boolean"){return this.editors["boolean"]}else{return this.editors.string}}}},destroy:function(){Ext.grid.PropertyColumnModel.superclass.destroy.call(this);for(var a in this.editors){Ext.destroy(this.editors[a])}}});Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,viewConfig:{forceFit:true},initComponent:function(){this.customRenderers=this.customRenderers||{};this.customEditors=this.customEditors||{};this.lastEditRow=null;var b=new Ext.grid.PropertyStore(this);this.propStore=b;var a=new Ext.grid.PropertyColumnModel(this,b);b.store.sort("name","ASC");this.addEvents("beforepropertychange","propertychange");this.cm=a;this.ds=b.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.mon(this.selModel,"beforecellselect",function(e,d,c){if(c===0){this.startEditing.defer(200,this,[d,1]);return false}},this)},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments);this.getGridEl().addClass("x-props-grid")},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments);if(this.source){this.setSource(this.source)}},setSource:function(a){this.propStore.setSource(a)},getSource:function(){return this.propStore.getSource()},setProperty:function(c,b,a){this.propStore.setValue(c,b,a)},removeProperty:function(a){this.propStore.remove(a)}});Ext.reg("propertygrid",Ext.grid.PropertyGrid);Ext.grid.GroupingView=Ext.extend(Ext.grid.GridView,{groupByText:"Group By This Field",showGroupsText:"Show in Groups",hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:true,enableNoGroups:true,emptyGroupText:"(None)",ignoreAdd:false,groupTextTpl:"{text}",groupMode:"value",initTemplates:function(){Ext.grid.GroupingView.superclass.initTemplates.call(this);this.state={};var a=this.grid.getSelectionModel();a.on(a.selectRow?"beforerowselect":"beforecellselect",this.onBeforeRowSelect,this);if(!this.startGroup){this.startGroup=new Ext.XTemplate('<div id="{groupId}" class="x-grid-group {cls}">','<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div class="x-grid-group-title">',this.groupTextTpl,"</div></div>",'<div id="{groupId}-bd" class="x-grid-group-body">')}this.startGroup.compile();if(!this.endGroup){this.endGroup="</div></div>"}},findGroup:function(a){return Ext.fly(a).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(d,a,b){if(this.canGroup()&&!this.ignoreAdd){var c=this.getScrollState();this.fireEvent("beforerowsinserted",d,b,b+(a.length-1));this.refresh();this.restoreScroll(c);this.fireEvent("rowsinserted",d,b,b+(a.length-1))}else{if(!this.canGroup()){Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)}}},onRemove:function(e,a,b,d){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var c=document.getElementById(a._groupId);if(c&&c.childNodes[1].childNodes.length<1){Ext.removeNode(c)}this.applyEmptyText()},refreshRow:function(a){if(this.ds.getCount()==1){this.refresh()}else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false}},beforeMenuShow:function(){var c,a=this.hmenu.items,b=this.cm.config[this.hdCtxIndex].groupable===false;if((c=a.get("groupBy"))){c.setDisabled(b)}if((c=a.get("showGroups"))){c.setDisabled(b);c.setChecked(this.canGroup(),true)}},renderUI:function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on("mousedown",this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add("-",{itemId:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"});if(this.enableNoGroups){this.hmenu.add({itemId:"showGroups",text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this})}this.hmenu.on("beforeshow",this.beforeMenuShow,this)}},processEvent:function(b,i){Ext.grid.GroupingView.superclass.processEvent.call(this,b,i);var h=i.getTarget(".x-grid-group-hd",this.mainBody);if(h){var g=this.getGroupField(),d=this.getPrefix(g),a=h.id.substring(d.length),c=new RegExp("gp-"+Ext.escapeRe(g)+"--hd");a=a.substr(0,a.length-3);if(a||c.test(h.id)){this.grid.fireEvent("group"+b,this.grid,g,a,i)}if(b=="mousedown"&&i.button==0){this.toggleGroup(h.parentNode)}}},onGroupByClick:function(){this.enableGrouping=true;this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.grid.fireEvent("groupchange",this,this.grid.store.getGroupState());this.beforeMenuShow();this.refresh()},onShowGroupsClick:function(a,b){this.enableGrouping=b;if(b){this.onGroupByClick()}else{this.grid.store.clearGrouping();this.grid.fireEvent("groupchange",this,null)}},toggleRowIndex:function(c,a){if(!this.canGroup()){return}var b=this.getRow(c);if(b){this.toggleGroup(this.findGroup(b),a)}},toggleGroup:function(c,b){var a=Ext.get(c);b=Ext.isDefined(b)?b:a.hasClass("x-grid-group-collapsed");if(this.state[a.id]!==b){this.grid.stopEditing(true);this.state[a.id]=b;a[b?"removeClass":"addClass"]("x-grid-group-collapsed")}},toggleAllGroups:function(c){var b=this.getGroups();for(var d=0,a=b.length;d<a;d++){this.toggleGroup(b[d],c)}},expandAllGroups:function(){this.toggleAllGroups(true)},collapseAllGroups:function(){this.toggleAllGroups(false)},interceptMouse:function(b){var a=b.getTarget(".x-grid-group-hd",this.mainBody);if(a){b.stopEvent();this.toggleGroup(a.parentNode)}},getGroup:function(a,d,h,i,b,e){var c=h?h(a,{},d,i,b,e):String(a);if(c===""||c==="&#160;"){c=this.cm.config[b].emptyGroupText||this.emptyGroupText}return c},getGroupField:function(){return this.grid.store.getGroupState()},afterRender:function(){if(!this.ds||!this.cm){return}Ext.grid.GroupingView.superclass.afterRender.call(this);if(this.grid.deferRowRender){this.updateGroupWidths()}},renderRows:function(){var a=this.getGroupField();var e=!!a;if(this.hideGroupedColumn){var b=this.cm.findColumnIndex(a),d=Ext.isDefined(this.lastGroupField);if(!e&&d){this.mainBody.update("");this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField),false);delete this.lastGroupField}else{if(e&&!d){this.lastGroupField=a;this.cm.setHidden(b,true)}else{if(e&&d&&a!==this.lastGroupField){this.mainBody.update("");var c=this.cm.findColumnIndex(this.lastGroupField);this.cm.setHidden(c,false);this.lastGroupField=a;this.cm.setHidden(b,true)}}}}return Ext.grid.GroupingView.superclass.renderRows.apply(this,arguments)},doRender:function(c,h,q,a,p,s){if(h.length<1){return""}if(!this.canGroup()||this.isUpdating){return Ext.grid.GroupingView.superclass.doRender.apply(this,arguments)}var z=this.getGroupField(),o=this.cm.findColumnIndex(z),w,j="width:"+this.getTotalWidth()+";",e=this.cm.config[o],b=e.groupRenderer||e.renderer,t=this.showGroupName?(e.groupName||e.header)+": ":"",y=[],l,u,v,n;for(u=0,v=h.length;u<v;u++){var k=a+u,m=h[u],d=m.data[z];w=this.getGroup(d,m,b,k,o,q);if(!l||l.group!=w){n=this.constructId(d,z,o);this.state[n]=!(Ext.isDefined(this.state[n])?!this.state[n]:this.startCollapsed);l={group:w,gvalue:d,text:t+w,groupId:n,startRow:k,rs:[m],cls:this.state[n]?"":"x-grid-group-collapsed",style:j};y.push(l)}else{l.rs.push(m)}m._groupId=n}var x=[];for(u=0,v=y.length;u<v;u++){w=y[u];this.doGroupStart(x,w,c,q,p);x[x.length]=Ext.grid.GroupingView.superclass.doRender.call(this,c,w.rs,q,w.startRow,p,s);this.doGroupEnd(x,w,c,q,p)}return x.join("")},getGroupId:function(a){var b=this.getGroupField();return this.constructId(a,b,this.cm.findColumnIndex(b))},constructId:function(c,e,a){var b=this.cm.config[a],d=b.groupRenderer||b.renderer,g=(this.groupMode=="value")?c:this.getGroup(c,{data:{}},d,0,a,this.ds);return this.getPrefix(e)+Ext.util.Format.htmlEncode(g)},canGroup:function(){return this.enableGrouping&&!!this.getGroupField()},getPrefix:function(a){return this.grid.getGridEl().id+"-gp-"+a+"-"},doGroupStart:function(a,d,b,e,c){a[a.length]=this.startGroup.apply(d)},doGroupEnd:function(a,d,b,e,c){a[a.length]=this.endGroup},getRows:function(){if(!this.canGroup()){return Ext.grid.GroupingView.superclass.getRows.call(this)}var k=[],c=this.getGroups(),h,e=0,a=c.length,d,b;for(;e<a;++e){h=c[e].childNodes[1];if(h){h=h.childNodes;for(d=0,b=h.length;d<b;++d){k[k.length]=h[d]}}}return k},updateGroupWidths:function(){if(!this.canGroup()||!this.hasRows()){return}var c=Math.max(this.cm.getTotalWidth(),this.el.dom.offsetWidth-this.getScrollOffset())+"px";var b=this.getGroups();for(var d=0,a=b.length;d<a;d++){b[d].firstChild.style.width=c}},onColumnWidthUpdated:function(c,a,b){Ext.grid.GroupingView.superclass.onColumnWidthUpdated.call(this,c,a,b);this.updateGroupWidths()},onAllColumnWidthsUpdated:function(a,b){Ext.grid.GroupingView.superclass.onAllColumnWidthsUpdated.call(this,a,b);this.updateGroupWidths()},onColumnHiddenUpdated:function(b,c,a){Ext.grid.GroupingView.superclass.onColumnHiddenUpdated.call(this,b,c,a);this.updateGroupWidths()},onLayout:function(){this.updateGroupWidths()},onBeforeRowSelect:function(b,a){this.toggleRowIndex(a,true)}});Ext.grid.GroupingView.GROUP_ID=1000;;
/*Ext.ux.LightBox.js*/
Ext.ns('Ext.ux');Ext.ux.Lightbox=(function(){var els={},images=[],activeImage,initialized=false,selectors=[];return{overlayOpacity:0.85,animate:true,resizeSpeed:8,borderSize:10,labelImage:"Image",labelOf:"of",init:function(){this.resizeDuration=this.animate?((11-this.resizeSpeed)*0.15):0;this.overlayDuration=this.animate?0.2:0;if(!initialized){Ext.apply(this,Ext.util.Observable.prototype);Ext.util.Observable.constructor.call(this);this.addEvents('open','close');this.initMarkup();this.initEvents();initialized=true;}},initMarkup:function(){els.shim=Ext.DomHelper.append(document.body,{tag:'iframe',id:'ux-lightbox-shim'},true);els.overlay=Ext.DomHelper.append(document.body,{id:'ux-lightbox-overlay'},true);var lightboxTpl=new Ext.Template(this.getTemplate());els.lightbox=lightboxTpl.append(document.body,{},true);var ids=['outerImageContainer','imageContainer','image','hoverNav','navPrev','navNext','loading','loadingLink','outerDataContainer','dataContainer','data','details','caption','imageNumber','bottomNav','navClose'];Ext.each(ids,function(id){els[id]=Ext.get('ux-lightbox-'+id);});Ext.each([els.overlay,els.lightbox,els.shim],function(el){el.setVisibilityMode(Ext.Element.DISPLAY)
el.hide();});var size=(this.animate?250:1)+'px';els.outerImageContainer.setStyle({width:size,height:size});},getTemplate:function(){return['<div id="ux-lightbox">','<div id="ux-lightbox-outerImageContainer">','<div id="ux-lightbox-imageContainer">','<img id="ux-lightbox-image">','<div id="ux-lightbox-hoverNav">','<a href="#" id="ux-lightbox-navPrev"></a>','<a href="#" id="ux-lightbox-navNext"></a>','</div>','<div id="ux-lightbox-loading">','<a id="ux-lightbox-loadingLink"></a>','</div>','</div>','</div>','<div id="ux-lightbox-outerDataContainer" style="overflow:hidden">','<div id="ux-lightbox-dataContainer">','<div id="ux-lightbox-data" style="overflow:hidden">','<div id="ux-lightbox-details">','<span id="ux-lightbox-caption"></span>','<span id="ux-lightbox-imageNumber"></span>','</div>','<div id="ux-lightbox-bottomNav"  >','<a href="#" id="ux-lightbox-navClose"></a>','</div>','</div>','</div>','</div>','</div>'];},initEvents:function(){var close=function(ev){ev.preventDefault();this.close();};els.overlay.on('click',close,this);els.loadingLink.on('click',close,this);els.navClose.on('click',close,this);els.lightbox.on('click',function(ev){if(ev.getTarget().id=='ux-lightbox'){this.close();}},this);els.navPrev.on('click',function(ev){ev.preventDefault();this.setImage(activeImage-1);},this);els.navNext.on('click',function(ev){ev.preventDefault();this.setImage(activeImage+1);},this);},register:function(sel,group){if(selectors.indexOf(sel)===-1){selectors.push(sel);Ext.fly(document).on('click',function(ev){var target=ev.getTarget(sel);if(target){ev.preventDefault();this.open(target,sel,group);}},this);}},open:function(image,sel,group){group=group||false;this.setViewSize();els.overlay.fadeIn({duration:this.overlayDuration,endOpacity:this.overlayOpacity,callback:function(){images=[];var index=0;if(!group){images.push([image.href,image.title]);}
else{var setItems=Ext.query(sel);Ext.each(setItems,function(item){if(item.href){images.push([item.href,item.title]);}});while(images[index][0]!=image.href){index++;}}
var pageScroll=Ext.fly(document).getScroll();var lightboxTop=pageScroll.top+(Ext.lib.Dom.getViewportHeight()/10);var lightboxLeft=pageScroll.left;els.lightbox.setStyle({top:lightboxTop+'px',left:lightboxLeft+'px'}).show();this.setImage(index);this.fireEvent('open',images[index]);},scope:this});},setViewSize:function(){var viewSize=this.getViewSize();els.overlay.setStyle({width:viewSize[0]+'px',height:viewSize[1]+'px'});els.shim.setStyle({width:viewSize[0]+'px',height:viewSize[1]+'px'}).show();},setImage:function(index){activeImage=index;this.disableKeyNav();if(this.animate){els.loading.show();}
els.image.hide();els.hoverNav.hide();els.navPrev.hide();els.navNext.hide();els.dataContainer.setOpacity(0.0001);els.imageNumber.hide();var preload=new Image();preload.onload=(function(){els.image.dom.src=images[activeImage][0];this.resizeImage(preload.width,preload.height);}).createDelegate(this);preload.onerror=(function(){alert('Unable to load image: '+images[activeImage][0]);}).createDelegate(this);preload.src=images[activeImage][0];},resizeImage:function(w,h){var wCur=els.outerImageContainer.getWidth();var hCur=els.outerImageContainer.getHeight();var wNew=(w+this.borderSize*2);var hNew=(h+this.borderSize*2);var wDiff=wCur-wNew;var hDiff=hCur-hNew;var queueLength=0;if(hDiff!=0||wDiff!=0){els.outerImageContainer.syncFx().shift({height:hNew,duration:this.resizeDuration}).shift({width:wNew,duration:this.resizeDuration});queueLength++;}
var timeout=0;if((hDiff==0)&&(wDiff==0)){timeout=(Ext.isIE)?500:500;}
(function(){els.hoverNav.setWidth(els.imageContainer.getWidth()+'px');els.navPrev.setHeight(h+'px');els.navNext.setHeight(h+'px');els.outerDataContainer.setWidth(wNew+'px');this.showImage();}).createDelegate(this).defer((this.resizeDuration*1000)+500);},showImage:function(){els.loading.hide();els.image.fadeIn({duration:this.resizeDuration,scope:this,callback:function(){this.updateDetails();}});this.preloadImages();},updateDetails:function(){els.details.setWidth((els.data.getWidth(true)-els.navClose.getWidth()-10)+'px');els.caption.update(images[activeImage][1]);els.caption.show();if(images.length>1){els.imageNumber.update(this.labelImage+' '+(activeImage+1)+' '+this.labelOf+'  '+images.length);els.imageNumber.show();}
els.dataContainer.syncFx().slideIn('t',{duration:this.resizeDuration/2}).fadeIn({duration:this.resizeDuration/2,scope:this,callback:function(){var viewSize=this.getViewSize();els.overlay.setHeight(viewSize[1]+'px');this.updateNav();}})},updateNav:function(){this.enableKeyNav();els.hoverNav.show();if(activeImage>0)
els.navPrev.show();if(activeImage<(images.length-1))
els.navNext.show();},enableKeyNav:function(){Ext.fly(document).on('keydown',this.keyNavAction,this);},disableKeyNav:function(){Ext.fly(document).un('keydown',this.keyNavAction,this);},keyNavAction:function(ev){var keyCode=ev.getKey();if(keyCode==88||keyCode==67||keyCode==27){this.close();}
else if(keyCode==80||keyCode==37){if(activeImage!=0){this.setImage(activeImage-1);}}
else if(keyCode==78||keyCode==39){if(activeImage!=(images.length-1)){this.setImage(activeImage+1);}}},preloadImages:function(){var next,prev;if(images.length>activeImage+1){next=new Image();next.src=images[activeImage+1][0];}
if(activeImage>0){prev=new Image();prev.src=images[activeImage-1][0];}},close:function(){this.disableKeyNav();els.lightbox.hide();els.overlay.fadeOut({duration:this.overlayDuration});els.shim.hide();this.fireEvent('close',activeImage);},getViewSize:function(){var bodyEl=Ext.fly(document.body);if(bodyEl.getHeight()<Ext.lib.Dom.getViewHeight())
return[Ext.lib.Dom.getViewWidth(),Ext.lib.Dom.getViewHeight()];else
return[bodyEl.getWidth(),bodyEl.getHeight()];}}})();Ext.onReady(Ext.ux.Lightbox.init,Ext.ux.Lightbox);Ext.ux.Lightbox.register('a[rel=lightbox]');Ext.ux.Lightbox.register('a[rel=lightbox-galery]',true);;
/*Ext.ux.Sortable.js*/
Ext.namespace('Ext.ux');Ext.ux.Sortable=function(config){config=Ext.applyIf(config,{container:document.body,selector:'li',dragGroups:['default'],autoEnable:true,horizontal:false});this.ddGroups={};Ext.applyIf(this,config);this.dragZone=new Ext.dd.SortableDragZone(this.container,{sortable:this,selector:this.selector,ddGroup:this.dragGroups[0],scroll:false,containerScroll:true});this.dropZone=new Ext.dd.SortableDropZone(this.container,{sortable:this,selector:this.selector,ddGroup:this.dragGroups[0],horizontal:this.horizontal});if(this.dragGroups.length>1){this.addToDDGroup(this.dragGroups);}
else{this.ddGroups[this.dragGroups]=true;}
this.addEvents({"sorted":true});if(this.autoEnable){this.enable();}};Ext.extend(Ext.ux.Sortable,Ext.util.Observable,{serialize:function(){return Ext.query(this.selector,this.container);},enable:function(){this.drags=this.serialize(false);var i=this.drags.length-1;while(i>=0){Ext.dd.Registry.register(this.drags[i],{ddGroups:this.ddGroups});--i;}
this.dropZone.unlock();this.dragZone.unlock();},disable:function(){this.drags=this.serialize(false);var i=this.drags.length-1;while(i>=0){Ext.dd.Registry.unregister(this.drags[i]);--i;}
this.dropZone.lock();this.dragZone.lock();},addToDDGroup:function(groupName,enable){if(typeof groupName!='string'){var i=groupName.length-1;while(i>=0){this.ddGroups[groupName[i]]=true;this.dragZone.addToGroup(groupName[i]);this.dropZone.addToGroup(groupName[i]);--i;}}
else{this.ddGroups[groupName]=true;this.dragZone.addToGroup(groupName);this.dropZone.addToGroup(groupName);}
if(typeof enable!=='undefined'||enable){this.enable();}},removeFromDDGroup:function(groupName,enable){if(typeof groupName!='string'){var i=groupName.length-1;while(i>=0){this.ddGroups[groupName[i]]=false;this.dragZone.removeFromGroup(groupName[i]);this.dropZone.removeFromGroup(groupName[i]);--i;}}
else{this.ddGroups[groupName]=false;this.dragZone.removeFromGroup(groupName);this.dropZone.removeFromGroup(groupName);}
if(typeof enable!=='undefined'||enable){this.enable();}}});Ext.dd.SortableDragZone=function(el,config){Ext.dd.DragZone.superclass.constructor.call(this,el,config);};Ext.extend(Ext.dd.SortableDragZone,Ext.dd.DragZone,{onInitDrag:function(x,y){var srcEl=Ext.get(this.dragData.ddel);var dragged=srcEl.dom.cloneNode(true);dragged.id='';srcEl.setStyle('visibility','hidden');this.proxy.update(dragged);this.onStartDrag(x,y);return true;},afterRepair:function(){var srcEl=Ext.get(this.dragData.ddel);srcEl.setStyle('visibility','');this.dragging=false;},getRepairXY:function(e){return Ext.Element.fly(this.dragData.ddel).getXY();},onEndDrag:function(data,e){}});Ext.dd.SortableDropZone=function(el,config){Ext.dd.DropZone.superclass.constructor.call(this,el,config);};Ext.extend(Ext.dd.SortableDropZone,Ext.dd.DropZone,{notifyEnter:function(source,e,data){this.srcEl=Ext.get(data.ddel);if(this.testDDGroup()){if(this.srcEl!==null){if(this.srcEl.dom.parentNode!==this.el.dom){if(!Ext.query(this.selector,this.el).length>0&&this.srcEl.is(this.selector)){this.srcEl.appendTo(this.el);}}
if(this.overClass){this.el.addClass(this.overClass);}
return this.dropAllowed;}}},notifyOver:function(dd,e,data){if(this.testDDGroup()){var n=this.getTargetFromEvent(e);if(!n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null;}
return this.onContainerOver(dd,e,data);}
if(this.lastOverNode!=n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);}
this.onNodeEnter(n,dd,e,data);this.lastOverNode=n;}
return this.onNodeOver(n,dd,e,data);}},notifyDrop:function(dd,e,data){if(this.testDDGroup()){if(this.srcEl!==null){this.srcEl.setStyle('visibility','');}
this.sortable.fireEvent("sorted",this.sortable);return true;}},onContainerOver:function(dd,e,data){if(this.testDDGroup()){return this.dropAllowed;}},onNodeOver:function(n,dd,e,data){if(this.testDDGroup()){if(this.horizontal){var x=e.getPageX();if(x<this.lastX){this.goingPrevious=true;}
else if(x>this.lastX){this.goingPrevious=false;}
this.lastX=x;}
else{var y=e.getPageY();if(y<this.lastY){this.goingPrevious=true;}
else if(y>this.lastY){this.goingPrevious=false;}
this.lastY=y;}
var destEl=Ext.get(n.ddel);if(this.goingPrevious){this.srcEl.insertBefore(destEl);}
else{this.srcEl.insertAfter(destEl);}
return this.dropAllowed;}
else{return this.dropNotAllowed;}},testDDGroup:function(){var groupTest=Ext.dd.Registry.getTarget(this.srcEl.id).ddGroups;var result=false;for(this.groups in groupTest){if(groupTest[this.groups]){result=true;}}
return result;}});;
/*ImageMinimizer.js*/
ImageMinimizer=(function(){return{register:function(sel,maxWidth){this.resizeImages(sel,maxWidth);},resizeImages:function(sel,maxWidth){var images=Ext.query(sel);for(var n=0;n<images.length;n++){var img=Ext.fly(images[n]);img.focus=Ext.emptyFn;img.setVisibilityMode(Ext.Element.DISPLAY);img.setVisible(true,true);var scrollTopAfter=Ext.getBody().getScroll().top;var scrollLeftAfter=Ext.getBody().getScroll().left;if(img.getWidth()>maxWidth){var ratio=img.getHeight()/img.getWidth();var newImgHeight=ratio*maxWidth;img.set({width:0,height:0,rel:''});img.setHeight(newImgHeight);img.setWidth(maxWidth);img.setStyle('display','block');img.applyStyles({display:'block'})
var anchor=new Ext.Element(document.createElement('a'));anchor.set({rel:'lightbox',href:img.getAttribute('src')});anchor.replace(img.dom);anchor.appendChild(img.dom);}}
var hash=window.location.hash;if(hash!=null&&String.isInstanceOfType(hash)&&hash.length>0){hash=hash.replace(/^#/,"");if(hash.length>0){var anchor=Ext.get(hash);if(anchor!=null)
window.scrollTo(anchor.getAnchorXY()[0],anchor.getAnchorXY()[1]);}}}}})()
Ext.onReady(function(){ImageMinimizer.resizeImages('img[rel^=mayNeedToResize]',500);Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(){ImageMinimizer.resizeImages('img[rel^=mayNeedToResize]',500);})});
/*Multiselect.js*/
Ext.ux.Multiselect=Ext.extend(Ext.form.Field,{store:null,dataFields:[],data:[],width:100,height:100,displayField:0,valueField:1,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,blankText:Ext.form.TextField.prototype.blankText,minLengthText:'Minimum {0} item(s) required',maxLengthText:'Maximum {0} item(s) allowed',copy:false,allowDup:false,allowTrash:false,legend:null,focusClass:undefined,delimiter:',',view:null,dragGroup:null,dropGroup:null,tbar:null,appendOnly:false,sortField:null,sortDir:'ASC',defaultAutoCreate:{tag:"div"},initComponent:function(){Ext.ux.Multiselect.superclass.initComponent.call(this);this.addEvents({'dblclick':true,'click':true,'change':true,'drop':true});},onRender:function(ct,position){var fs,cls,tpl;Ext.ux.Multiselect.superclass.onRender.call(this,ct,position);cls='ux-mselect';fs=new Ext.form.FieldSet({renderTo:this.el,title:this.legend,height:this.height,width:this.width,style:"padding:1px;",tbar:this.tbar});fs.body.addClass(cls);tpl='<tpl for="."><div class="'+cls+'-item';if(Ext.isIE||Ext.isIE7)tpl+='" unselectable=on';else tpl+=' x-unselectable"';tpl+='>{'+this.displayField+'}</div></tpl>';if(!this.store){this.store=new Ext.data.SimpleStore({fields:this.dataFields,data:this.data});}
this.view=new Ext.ux.DDView({multiSelect:true,store:this.store,selectedClass:cls+"-selected",tpl:tpl,allowDup:this.allowDup,copy:this.copy,allowTrash:this.allowTrash,dragGroup:this.dragGroup,dropGroup:this.dropGroup,itemSelector:"."+cls+"-item",isFormField:false,applyTo:fs.body,appendOnly:this.appendOnly,sortField:this.sortField,sortDir:this.sortDir});this.view.on('click',this.onViewClick,this);this.view.on('beforeClick',this.onViewBeforeClick,this);this.view.on('dblclick',this.onViewDblClick,this);this.view.on('drop',function(ddView,n,dd,e,data){return this.fireEvent("drop",ddView,n,dd,e,data);},this);this.hiddenName=this.name;var hiddenTag={tag:"input",type:"hidden",value:"",name:this.name};if(this.isFormField){this.hiddenField=this.el.createChild(hiddenTag);}else{this.hiddenField=Ext.get(document.body).createChild(hiddenTag);}
fs.doLayout();},initValue:Ext.emptyFn,onViewClick:function(vw,index,node,e){var arrayIndex=this.preClickSelections.indexOf(index);if(arrayIndex!=-1){this.preClickSelections.splice(arrayIndex,1);this.view.clearSelections(true);this.view.select(this.preClickSelections);}
this.fireEvent('change',this,this.getValue(),this.hiddenField.dom.value);this.hiddenField.dom.value=this.getValue();this.fireEvent('click',this,e);this.validate();},onViewBeforeClick:function(vw,index,node,e){this.preClickSelections=this.view.getSelectedIndexes();if(this.disabled){return false;}},onViewDblClick:function(vw,index,node,e){return this.fireEvent('dblclick',vw,index,node,e);},getValue:function(valueField){var returnArray=[];var selectionsArray=this.view.getSelectedIndexes();if(selectionsArray.length==0){return'';}
for(var i=0;i<selectionsArray.length;i++){returnArray.push(this.store.getAt(selectionsArray[i]).get(((valueField!=null)?valueField:this.valueField)));}
return returnArray.join(this.delimiter);},setValue:function(values){var index;var selections=[];this.view.clearSelections();this.hiddenField.dom.value='';if(!values||(values=='')){return;}
if(!(values instanceof Array)){values=values.split(this.delimiter);}
for(var i=0;i<values.length;i++){index=this.view.store.indexOf(this.view.store.query(this.valueField,new RegExp('^'+values[i]+'$',"i")).itemAt(0));selections.push(index);}
this.view.select(selections);this.hiddenField.dom.value=this.getValue();this.validate();},reset:function(){this.setValue('');},getRawValue:function(valueField){var tmp=this.getValue(valueField);if(tmp.length){tmp=tmp.split(this.delimiter);}
else{tmp=[];}
return tmp;},setRawValue:function(values){setValue(values);},validateValue:function(value){if(value.length<1){if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}
if(value.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false;}
if(value.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false;}
return true;},onDestroy:function(){if(this.view){this.view.destroy();}
if(this.hiddenField){this.hiddenField.remove();}
Ext.ux.Multiselect.superclass.onDestroy.call(this);},onEnable:function(){this.el.unmask();},onDisable:function(){this.el.mask();}});Ext.reg("multiselect",Ext.ux.Multiselect);Ext.ux.ItemSelector=Ext.extend(Ext.form.Field,{msWidth:200,msHeight:300,hideNavIcons:false,imagePath:appHostAndPath+"\\App_Themes\\Main\\Ext\\resources\\images\\tp\\multiSelect\\",iconUp:"up2.gif",iconDown:"down2.gif",iconLeft:"left2.gif",iconRight:"right2.gif",iconTop:"top2.gif",iconBottom:"bottom2.gif",drawUpIcon:true,drawDownIcon:true,drawLeftIcon:true,drawRightIcon:true,drawTopIcon:true,drawBotIcon:true,fromStore:null,toStore:null,fromData:null,toData:null,displayField:0,valueField:1,switchToFrom:false,allowDup:false,focusClass:undefined,delimiter:',',readOnly:false,toLegend:null,fromLegend:null,toSortField:null,fromSortField:null,toSortDir:'ASC',fromSortDir:'ASC',toTBar:null,fromTBar:null,bodyStyle:null,border:false,defaultAutoCreate:{tag:"div"},toHeader:null,toHeaderCls:null,fromHeader:null,fromHeaderCls:null,initComponent:function(){Ext.ux.ItemSelector.superclass.initComponent.call(this);this.addEvents({'rowdblclick':true,'change':true});},onRender:function(ct,position){Ext.ux.ItemSelector.superclass.onRender.call(this,ct,position);this.fromMultiselect=new Ext.ux.Multiselect({legend:this.fromLegend,delimiter:this.delimiter,allowDup:this.allowDup,copy:this.allowDup,allowTrash:this.allowDup,dragGroup:this.readOnly?null:"drop2-"+this.el.dom.id,dropGroup:this.readOnly?null:"drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,width:this.msWidth,height:this.msHeight,dataFields:this.dataFields,data:this.fromData,displayField:this.displayField,valueField:this.valueField,store:this.fromStore,isFormField:false,tbar:this.fromTBar,appendOnly:true,sortField:this.fromSortField,sortDir:this.fromSortDir});this.fromMultiselect.on('dblclick',this.onRowDblClick,this);if(!this.toStore){this.toStore=new Ext.data.SimpleStore({fields:this.dataFields,data:this.toData});}
this.toStore.on('add',this.valueChanged,this);this.toStore.on('remove',this.valueChanged,this);this.toStore.on('load',this.valueChanged,this);this.toMultiselect=new Ext.ux.Multiselect({legend:this.toLegend,delimiter:this.delimiter,allowDup:this.allowDup,dragGroup:this.readOnly?null:"drop1-"+this.el.dom.id,dropGroup:this.readOnly?null:"drop2-"+this.el.dom.id+",drop1-"+this.el.dom.id,width:this.msWidth,height:this.msHeight,displayField:this.displayField,valueField:this.valueField,store:this.toStore,isFormField:false,tbar:this.toTBar,sortField:this.toSortField,sortDir:this.toSortDir});this.toMultiselect.on('dblclick',this.onRowDblClick,this);var p=new Ext.Panel({bodyStyle:this.bodyStyle,border:this.border,layout:"table",layoutConfig:{columns:3}});p.add({text:this.fromHeader,xtype:'label',cls:this.fromHeaderCls});p.add({xtype:'label'});p.add({text:this.toHeader,xtype:'label',cls:this.toHeaderCls});p.add(this.switchToFrom?this.toMultiselect:this.fromMultiselect);var icons=new Ext.Panel({header:false});p.add(icons);p.add(this.switchToFrom?this.fromMultiselect:this.toMultiselect);p.render(this.el);icons.el.down('.'+icons.bwrapCls).remove();if(this.imagePath!=""&&this.imagePath.charAt(this.imagePath.length-1)!="/")
this.imagePath+="/";this.iconUp=this.imagePath+(this.iconUp||'up2.gif');this.iconDown=this.imagePath+(this.iconDown||'down2.gif');this.iconLeft=this.imagePath+(this.iconLeft||'left2.gif');this.iconRight=this.imagePath+(this.iconRight||'right2.gif');this.iconTop=this.imagePath+(this.iconTop||'top2.gif');this.iconBottom=this.imagePath+(this.iconBottom||'bottom2.gif');var el=icons.getEl();if(!this.toSortField){this.toTopIcon=el.createChild({tag:'img',src:this.iconTop,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});this.upIcon=el.createChild({tag:'img',src:this.iconUp,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});}
this.addIcon=el.createChild({tag:'img',src:this.switchToFrom?this.iconLeft:this.iconRight,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});this.removeIcon=el.createChild({tag:'img',src:this.switchToFrom?this.iconRight:this.iconLeft,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});if(!this.toSortField){this.downIcon=el.createChild({tag:'img',src:this.iconDown,style:{cursor:'pointer',margin:'2px'}});el.createChild({tag:'br'});this.toBottomIcon=el.createChild({tag:'img',src:this.iconBottom,style:{cursor:'pointer',margin:'2px'}});}
if(!this.readOnly){if(!this.toSortField){this.toTopIcon.on('click',this.toTop,this);this.upIcon.on('click',this.up,this);this.downIcon.on('click',this.down,this);this.toBottomIcon.on('click',this.toBottom,this);}
this.addIcon.on('click',this.fromTo,this);this.removeIcon.on('click',this.toFrom,this);}
if(!this.drawUpIcon||this.hideNavIcons){this.upIcon.dom.style.display='none';}
if(!this.drawDownIcon||this.hideNavIcons){this.downIcon.dom.style.display='none';}
if(!this.drawLeftIcon||this.hideNavIcons){this.addIcon.dom.style.display='none';}
if(!this.drawRightIcon||this.hideNavIcons){this.removeIcon.dom.style.display='none';}
if(!this.drawTopIcon||this.hideNavIcons){this.toTopIcon.dom.style.display='none';}
if(!this.drawBotIcon||this.hideNavIcons){this.toBottomIcon.dom.style.display='none';}
var tb=p.body.first();this.el.setWidth(p.body.first().getWidth());p.body.removeClass();this.hiddenName=this.name;var hiddenTag={tag:"input",type:"hidden",value:"",name:this.name};this.hiddenField=this.el.createChild(hiddenTag);this.valueChanged(this.toStore);},initValue:Ext.emptyFn,toTop:function(){if(this.disabled)return;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){selectionsArray.sort();for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
selectionsArray=[];for(var i=records.length-1;i>-1;i--){record=records[i];this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.insert(0,record);selectionsArray.push(((records.length-1)-i));}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(selectionsArray);},toBottom:function(){if(this.disabled)return;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){selectionsArray.sort();for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
selectionsArray=[];for(var i=0;i<records.length;i++){record=records[i];this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.add(record);selectionsArray.push((this.toMultiselect.view.store.getCount())-(records.length-i));}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(selectionsArray);},up:function(){if(this.disabled)return;var record=null;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();selectionsArray.sort();var newSelectionsArray=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);if((selectionsArray[i]-1)>=0){this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.insert(selectionsArray[i]-1,record);newSelectionsArray.push(selectionsArray[i]-1);}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(newSelectionsArray);}},down:function(){if(this.disabled)return;var record=null;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();selectionsArray.sort();selectionsArray.reverse();var newSelectionsArray=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);if((selectionsArray[i]+1)<this.toMultiselect.view.store.getCount()){this.toMultiselect.view.store.remove(record);this.toMultiselect.view.store.insert(selectionsArray[i]+1,record);newSelectionsArray.push(selectionsArray[i]+1);}}
this.toMultiselect.view.refresh();this.toMultiselect.view.select(newSelectionsArray);}},fromTo:function(){if(this.disabled)return;var selectionsArray=this.fromMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.fromMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
if(!this.allowDup)selectionsArray=[];for(var i=0;i<records.length;i++){record=records[i];if(this.allowDup){var x=new Ext.data.Record();record.id=x.id;delete x;this.toMultiselect.view.store.add(record);}else{this.fromMultiselect.view.store.remove(record);this.toMultiselect.view.store.add(record);selectionsArray.push((this.toMultiselect.view.store.getCount()-1));}}}
this.toMultiselect.view.refresh();this.fromMultiselect.view.refresh();if(this.toSortField)this.toMultiselect.store.sort(this.toSortField,this.toSortDir);if(this.allowDup)this.fromMultiselect.view.select(selectionsArray);else this.toMultiselect.view.select(selectionsArray);},toFrom:function(){if(this.disabled)return;var selectionsArray=this.toMultiselect.view.getSelectedIndexes();var records=[];if(selectionsArray.length>0){for(var i=0;i<selectionsArray.length;i++){record=this.toMultiselect.view.store.getAt(selectionsArray[i]);records.push(record);}
selectionsArray=[];for(var i=0;i<records.length;i++){record=records[i];this.toMultiselect.view.store.remove(record);if(!this.allowDup){this.fromMultiselect.view.store.add(record);selectionsArray.push((this.fromMultiselect.view.store.getCount()-1));}}}
this.fromMultiselect.view.refresh();this.toMultiselect.view.refresh();if(this.fromSortField)this.fromMultiselect.store.sort(this.fromSortField,this.fromSortDir);this.fromMultiselect.view.select(selectionsArray);},valueChanged:function(store){var record=null;var values=[];for(var i=0;i<store.getCount();i++){record=store.getAt(i);values.push(record.get(this.valueField));}
this.hiddenField.dom.value=values.join(this.delimiter);this.fireEvent('change',this,this.getValue(),this.hiddenField.dom.value);},getValue:function(){return this.hiddenField.dom.value;},onRowDblClick:function(vw,index,node,e){return this.fireEvent('rowdblclick',vw,index,node,e);},reset:function(){range=this.toMultiselect.store.getRange();this.toMultiselect.store.removeAll();if(!this.allowDup){this.fromMultiselect.store.add(range);this.fromMultiselect.store.sort(this.displayField,'ASC');}
this.valueChanged(this.toMultiselect.store);},onDestroy:function(){if(this.fromMultiselect){this.fromMultiselect.destroy();}
if(this.toMultiselect){this.toMultiselect.destroy();}
Ext.ux.ItemSelector.superclass.onDestroy.call(this);},onEnable:function(){this.fromMultiselect.enable();this.toMultiselect.enable();},onDisable:function(){this.fromMultiselect.disable();this.toMultiselect.disable();}});Ext.reg("itemselector",Ext.ux.ItemSelector);;
/*DDView.js*/
Array.prototype.contains=function(element){return this.indexOf(element)!==-1;};Ext.namespace("Ext.ux");Ext.ux.DDView=function(config){if(!config.itemSelector){var tpl=config.tpl;if(this.classRe.test(tpl)){config.tpl=tpl.replace(this.classRe,'class=$1x-combo-list-item $2$1');}
else{config.tpl=tpl.replace(this.tagRe,'$1 class="x-combo-list-item" $2');}
config.itemSelector=".x-combo-list-item";}
Ext.ux.DDView.superclass.constructor.call(this,Ext.apply(config,{border:false}));};Ext.extend(Ext.ux.DDView,Ext.DataView,{dragDisabled:false,sortDir:'ASC',isFormField:true,classRe:/class=(['"])(.*)\1/,tagRe:/(<\w*)(.*?>)/,reset:Ext.emptyFn,clearInvalid:Ext.form.Field.prototype.clearInvalid,msgTarget:'qtip',afterRender:function(){Ext.ux.DDView.superclass.afterRender.call(this);if(this.dragGroup){this.setDraggable(this.dragGroup.split(","));}
if(this.dropGroup){this.setDroppable(this.dropGroup.split(","));}
if(this.deletable){this.setDeletable();}
this.isDirtyFlag=false;this.addEvents("drop");},validate:function(){return true;},onDestroy:function(){this.purgeListeners();this.getEl().removeAllListeners();this.getEl().remove();if(this.dragZone){Ext.dd.ScrollManager.unregister(this.dragZone.el);if(this.dragZone.destroy){this.dragZone.destroy();this.dragZone.proxy.el.destroy();}}
if(this.dropZone){Ext.dd.ScrollManager.unregister(this.dropZone.el);if(this.dropZone.destroy){this.dropZone.destroy();}}
Ext.ux.DDView.superclass.onDestroy.call(this);},getName:function(){return this.name;},setValue:function(v){if(!this.store){throw"DDView.setValue(). DDView must be constructed with a valid Store";}
var data={};data[this.store.reader.meta.root]=v?[].concat(v):[];this.store.proxy=new Ext.data.MemoryProxy(data);this.store.load();},getValue:function(){var result='(';this.store.each(function(rec){result+=rec.id+',';});return result.substr(0,result.length-1)+')';},getIds:function(){var i=0,result=new Array(this.store.getCount());this.store.each(function(rec){result[i++]=rec.id;});return result;},isDirty:function(){return this.isDirtyFlag;},getTargetFromEvent:function(e){var target=e.getTarget();while((target!==null)&&(target.parentNode!=this.el.dom)){target=target.parentNode;}
if(!target){target=this.el.dom.lastChild||this.el.dom;}
return target;},getDragData:function(e){var target=this.findItemFromChild(e.getTarget());if(target){if(!this.isSelected(target)){delete this.ignoreNextClick;this.onItemClick(target,this.indexOf(target),e);this.ignoreNextClick=true;}
var dragData={sourceView:this,viewNodes:[],records:[],copy:this.copy||(this.allowCopy&&e.ctrlKey)};if(this.getSelectionCount()==1){var i=this.getSelectedIndexes()[0];var n=this.getNode(i);dragData.viewNodes.push(dragData.ddel=n);dragData.records.push(this.store.getAt(i));dragData.repairXY=Ext.fly(n).getXY();}else{dragData.ddel=document.createElement('div');dragData.ddel.className='multi-proxy';this.collectSelection(dragData);}
return dragData;}
return false;},getRepairXY:function(e){return this.dragData.repairXY;},collectSelection:function(data){data.repairXY=Ext.fly(this.getSelectedNodes()[0]).getXY();if(this.preserveSelectionOrder===true){Ext.each(this.getSelectedIndexes(),function(i){var n=this.getNode(i);var dragNode=n.cloneNode(true);dragNode.id=Ext.id();data.ddel.appendChild(dragNode);data.records.push(this.store.getAt(i));data.viewNodes.push(n);},this);}else{var i=0;this.store.each(function(rec){if(this.isSelected(i)){var n=this.getNode(i);var dragNode=n.cloneNode(true);dragNode.id=Ext.id();data.ddel.appendChild(dragNode);data.records.push(this.store.getAt(i));data.viewNodes.push(n);}
i++;},this);}},setDraggable:function(ddGroup){if(ddGroup instanceof Array){Ext.each(ddGroup,this.setDraggable,this);return;}
if(this.dragZone){this.dragZone.addToGroup(ddGroup);}else{this.dragZone=new Ext.dd.DragZone(this.getEl(),{containerScroll:true,ddGroup:ddGroup});if(!this.multiSelect){this.singleSelect=true;}
this.dragZone.getDragData=this.getDragData.createDelegate(this);this.dragZone.getRepairXY=this.getRepairXY;this.dragZone.onEndDrag=this.onEndDrag;}},setDroppable:function(ddGroup){if(ddGroup instanceof Array){Ext.each(ddGroup,this.setDroppable,this);return;}
if(this.dropZone){this.dropZone.addToGroup(ddGroup);}else{this.dropZone=new Ext.dd.DropZone(this.getEl(),{owningView:this,containerScroll:true,ddGroup:ddGroup});this.dropZone.getTargetFromEvent=this.getTargetFromEvent.createDelegate(this);this.dropZone.onNodeEnter=this.onNodeEnter.createDelegate(this);this.dropZone.onNodeOver=this.onNodeOver.createDelegate(this);this.dropZone.onNodeOut=this.onNodeOut.createDelegate(this);this.dropZone.onNodeDrop=this.onNodeDrop.createDelegate(this);}},getDropPoint:function(e,n,dd){if(n==this.el.dom){return"above";}
var t=Ext.lib.Dom.getY(n),b=t+n.offsetHeight;var c=t+(b-t)/2;var y=Ext.lib.Event.getPageY(e);if(y<=c){return"above";}else{return"below";}},isValidDropPoint:function(pt,n,data){if(this.dragDisabled)return false;if(!data.viewNodes||(data.viewNodes.length!=1)){return true;}
var d=data.viewNodes[0];if(d==n){return false;}
if((pt=="below")&&(n.nextSibling==d)){return false;}
if((pt=="above")&&(n.previousSibling==d)){return false;}
return true;},onNodeEnter:function(n,dd,e,data){if(this.highlightColor&&(data.sourceView!=this)){this.el.highlight(this.highlightColor);}
return false;},onNodeOver:function(n,dd,e,data){var dragElClass=this.dropNotAllowed;var pt=this.getDropPoint(e,n,dd);if(this.isValidDropPoint(pt,n,data)){if(this.appendOnly||this.sortField){return"x-tree-drop-ok-below";}
if(pt){var targetElClass;if(pt=="above"){dragElClass=n.previousSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-above";targetElClass="x-view-drag-insert-above";}else{dragElClass=n.nextSibling?"x-tree-drop-ok-between":"x-tree-drop-ok-below";targetElClass="x-view-drag-insert-below";}
if(this.lastInsertClass!=targetElClass){Ext.fly(n).replaceClass(this.lastInsertClass,targetElClass);this.lastInsertClass=targetElClass;}}}
return dragElClass;},onNodeOut:function(n,dd,e,data){this.removeDropIndicators(n);},onNodeDrop:function(n,dd,e,data){if(this.dragDisabled)return false;if(this.fireEvent("drop",this,n,dd,e,data)===false){return false;}
var pt=this.getDropPoint(e,n,dd);var insertAt=(this.appendOnly||(n==this.el.dom))?this.store.getCount()-1:n.viewIndex;if(pt=="below"){insertAt++;}
if(data.sourceView==this){if(pt=="below"){if(data.viewNodes[0]==n){data.viewNodes.shift();}}else{if(data.viewNodes[data.viewNodes.length-1]==n){data.viewNodes.pop();}}
if(!data.viewNodes.length){return false;}
if(insertAt>this.store.indexOf(data.records[0])){insertAt--;}}
if(data.node instanceof Ext.tree.TreeNode){var r=data.node.getOwnerTree().recordFromNode(data.node);if(r){data.records=[r];}}
if(!data.records){alert("Programming problem. Drag data contained no Records");return false;}
for(var i=0;i<data.records.length;i++){var r=data.records[i];var dup=this.store.getById(r.id);if(dup&&(dd!=this.dragZone)){if(!this.allowDup&&!this.allowTrash){Ext.fly(this.getNode(this.store.indexOf(dup))).frame("red",1);return true}
var x=new Ext.data.Record();r.id=x.id;delete x;}
if(data.copy){this.store.insert(insertAt++,r.copy());}else{if(data.sourceView){data.sourceView.isDirtyFlag=true;data.sourceView.store.remove(r);}
if(!this.allowTrash)this.store.insert(insertAt++,r);}
if(this.sortField){this.store.sort(this.sortField,this.sortDir);}
this.isDirtyFlag=true;}
this.dragZone.cachedTarget=null;return true;},onEndDrag:function(data,e){var d=Ext.get(this.dragData.ddel);if(d&&d.hasClass("multi-proxy")){d.remove();}},removeDropIndicators:function(n){if(n){Ext.fly(n).removeClass(["x-view-drag-insert-above","x-view-drag-insert-left","x-view-drag-insert-right","x-view-drag-insert-below"]);this.lastInsertClass="_noclass";}},setDeletable:function(imageUrl){if(!this.singleSelect&&!this.multiSelect){this.singleSelect=true;}
var c=this.getContextMenu();this.contextMenu.on("itemclick",function(item){switch(item.id){case"delete":this.remove(this.getSelectedIndexes());break;}},this);this.contextMenu.add({icon:imageUrl||AU.resolveUrl("/images/delete.gif"),id:"delete",text:AU.getMessage("deleteItem")});},getContextMenu:function(){if(!this.contextMenu){this.contextMenu=new Ext.menu.Menu({id:this.id+"-contextmenu"});this.el.on("contextmenu",this.showContextMenu,this);}
return this.contextMenu;},disableContextMenu:function(){if(this.contextMenu){this.el.un("contextmenu",this.showContextMenu,this);}},showContextMenu:function(e,item){item=this.findItemFromChild(e.getTarget());if(item){e.stopEvent();this.select(this.getNode(item),this.multiSelect&&e.ctrlKey,true);this.contextMenu.showAt(e.getXY());}},remove:function(selectedIndices){selectedIndices=[].concat(selectedIndices);for(var i=0;i<selectedIndices.length;i++){var rec=this.store.getAt(selectedIndices[i]);this.store.remove(rec);}},onDblClick:function(e){var item=this.findItemFromChild(e.getTarget());if(item){if(this.fireEvent("dblclick",this,this.indexOf(item),item,e)===false){return false;}
if(this.dragGroup){var targets=Ext.dd.DragDropMgr.getRelated(this.dragZone,true);while(targets.contains(this.dropZone)){targets.remove(this.dropZone);}
if((targets.length==1)&&(targets[0].owningView)){this.dragZone.cachedTarget=null;var el=Ext.get(targets[0].getEl());var box=el.getBox(true);targets[0].onNodeDrop(el.dom,{target:el.dom,xy:[box.x,box.y+box.height-1]},null,this.getDragData(e));}}}},onItemClick:function(item,index,e){if(this.ignoreNextClick){delete this.ignoreNextClick;return;}
if(this.fireEvent("beforeclick",this,index,item,e)===false){return false;}
if(this.multiSelect||this.singleSelect){if(this.multiSelect&&e.shiftKey&&this.lastSelection){this.select(this.getNodes(this.indexOf(this.lastSelection),index),false);}else if(this.isSelected(item)&&e.ctrlKey){this.deselect(item);}else{this.deselect(item);this.select(item,this.multiSelect&&e.ctrlKey);this.lastSelection=item;}
e.preventDefault();}
return true;}});;
/*Application.js*/
var Application=function(){var type=new Ext.extend(Object,{menuBootstrap:null,constructor:function(){Ext.state.Manager.setProvider(new Ext.state.CookieProvider());},getMenuBootsrap:function(){if(this.menuBootstrap==null){this.menuBootstrap=new Tp.controls.MenuBootstrap();this.menuBootstrap.init();}
return this.menuBootstrap;},baseUrl:'',user:{},getViewUrl:function(entityId,entityKind){var url=this.baseUrl+'/View.aspx?ID='+encodeURIComponent(entityId);if(entityKind){url=url+'&Entity='+encodeURIComponent(entityKind);}
return url;}});return new type();}();;
/*DraggableItemBehavior.js*/
Type.registerNamespace('TpDragDropExtenders.DraggableItem');TpDragDropExtenders.DraggableItem.DraggableItemBehavior=function(){TpDragDropExtenders.DraggableItem.DraggableItemBehavior.initializeBase(this);this._mousedownHandler;this._parent;this._argumentValue;this._typeValue;this._Highlighter;this._targetControl;this._floatContainer;}
TpDragDropExtenders.DraggableItem.DraggableItemBehavior.prototype={initialize:function(){TpDragDropExtenders.DraggableItem.DraggableItemBehavior.callBaseMethod(this,'initialize');if(!this._targetControl.control){$create(TpDragDropExtenders.DropZone.DropZoneControl,null,null,null,this._targetControl);}
this._mousedownHandler=Function.createDelegate(this,this.mousedownHandler);$addHandler(this._targetControl,'mousedown',this._mousedownHandler);if(this._Highlighter!=null)
this._Highlighter.registerDruggableItem(this,this._typeValue);},dispose:function(){if(this._Highlighter!=null)
this._Highlighter.unregisterDruggableItem(this);TpDragDropExtenders.DraggableItem.DraggableItemBehavior.callBaseMethod(this,'dispose');},add_dragStart:function(handler){this.get_events().addHandler('dragStart',handler);},remove_dragStart:function(handler){this.get_events().removeHandler('dragStart',handler);},add_dragEnd:function(handler){this.get_events().addHandler('dragEnd',handler);},remove_dragEnd:function(handler){this.get_events().removeHandler('dragEnd',handler);},mousedownHandler:function(ev){window._event=ev;if(window.getSelection)
window.getSelection().removeAllRanges();if(ev.button==2)return;var el=this._targetControl.parentNode.parentNode;this._floatContainer=this.createFloatContainer(el);document.body.appendChild(this._floatContainer);Sys.Preview.UI.DragDropManager.startDragDrop(this,this._floatContainer,null);},createFloatContainer:function(element){if(element.druggableElement)
element=element.druggableElement;var table=document.createElement("table");var tbody=document.createElement("tbody");table.appendChild(tbody);tbody.appendChild(element.cloneNode(true));var currentLocation=Sys.UI.DomElement.getLocation(element);Sys.UI.DomElement.setLocation(table,currentLocation.x,currentLocation.y);table.style.backgroundColor="white";table.style.width=element.offsetWidth+"px";table.style.height=element.offsetHeight+"px";table.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity=0.75);";table.style.opacity="0.75";table.style.position="absolute";table.style.zIndex=32000;return table;},get_Argument:function(){return this._argumentValue;},set_Argument:function(value){this._argumentValue=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},get_Type:function(){return this._typeValue;},set_Type:function(value){this._typeValue=value;},get_Highlighter:function(){return this._Highlighter;},set_Highlighter:function(value){this._Highlighter=value;},getClientState:function(){var value=TpDragDropExtenders.DraggableItem.DraggableItemBehavior.callBaseMethod(this,'get_ClientState');if(value=='')value=null;return value;},setClientState:function(value){return TpDragDropExtenders.DraggableItem.DraggableItemBehavior.callBaseMethod(this,'set_ClientState',[value]);},get_dataType:function(){return this._typeValue;},get_data:function(){return this.get_Argument();},get_dragMode:function(){return Sys.Preview.UI.DragMode.Move;},get_dragDataType:function(){return this._typeValue;},getDragData:function(context){return this.get_Argument();},onDragStart:function(){var handler=this.get_events().getHandler('dragStart');if(handler){handler(this,Sys.EventArgs.Empty);}
this._floatContainer.style.backgroundColor="orange";this._targetControl.parentNode.parentNode.style.backgroundColor='#FFFFC1';},onDrag:function(){},onDragEnd:function(cancelled){var handler=this.get_events().getHandler('dragEnd');if(handler){handler(this,Sys.EventArgs.Empty);}
if(this._floatContainer){document.body.removeChild(this._floatContainer);this._floatContainer=null;}
if(cancelled){this._targetControl.parentNode.parentNode.style.backgroundColor='';}
else{var el1=this._targetControl.parentNode.parentNode;el1.style.display='none';}}}
TpDragDropExtenders.DraggableItem.DraggableItemBehavior.registerClass('TpDragDropExtenders.DraggableItem.DraggableItemBehavior',Sys.Component);;
/*DropZoneHighlighter.js*/
Type.registerNamespace('TpDragDropExtenders');TpDragDropExtenders.DropZoneHighlighter=function(){TpDragDropExtenders.DropZoneHighlighter.initializeBase(this);this._dropZones=new Array();this._druggableItems=new Array();this._eventHandlers=new Array();}
TpDragDropExtenders.DropZoneHighlighter.prototype={ToggleHighlight:function(){Array.forEach(this._dropZones,function(dz){dz.ToggleHighlight();},this);},registerDropZone:function(dropZone){Array.forEach(this._druggableItems,function(item){this._attachEvents(dropZone,item,dropZone.get_AcceptedTypes());},this);Array.add(this._dropZones,dropZone);},unregisterDropZone:function(dropZone){Array.forEach(this._druggableItems,function(item){this._detachEvents(dropZone,item);},this);Array.remove(this._dropZones,dropZone);},registerDruggableItem:function(item,entityKind){Array.forEach(this._dropZones,function(dropZone){this._attachEvents(dropZone,item,entityKind);},this);Array.add(this._druggableItems,item);},unregisterDruggableItem:function(item){Array.forEach(this._dropZones,function(dropZone){this._detachEvents(dropZone,item);},this);Array.remove(this._druggableItems,item);},_attachEvents:function(dropZone,item,entityKind){if(dropZone.canDrop(item.get_dragMode(),entityKind)){var delegateOnDragStart=Function.createDelegate(dropZone,dropZone.OnDragStart);var delegateOnDragEnd=Function.createDelegate(dropZone,dropZone.OnDragEnd);Array.add(this._eventHandlers,{'zone':dropZone,'item':item,'start':delegateOnDragStart,'end':delegateOnDragEnd});item.add_dragStart(delegateOnDragStart);item.add_dragEnd(delegateOnDragEnd);}},_detachEvents:function(dropZone,item){var handles=this._findHandlers(dropZone,item);if(handles){item.remove_dragStart(handles.start);item.remove_dragEnd(handles.end);Array.remove(this._eventHandlers,handles);}},_findHandlers:function(zone,item){for(var i=0;i<this._eventHandlers.length;i++){if(this._eventHandlers[i].zone==zone&&this._eventHandlers[i].item==item)
return this._eventHandlers[i];}
return null;}}
TpDragDropExtenders.DropZoneHighlighter.registerClass('TpDragDropExtenders.DropZoneHighlighter',Sys.Component);;
/*DropZoneBehavior.js*/
Type.registerNamespace('TpDragDropExtenders.DropZone');TpDragDropExtenders.DropZone.DropZoneBehavior=function(element){TpDragDropExtenders.DropZone.DropZoneBehavior.initializeBase(this);this._targetControl=null;this._postBackCodeValue='';this._cssClassNormalValue='';this._cssClassOverValue='';this._cssClassHighlightValue='';this._cssClassCurrent='';this._Highlighter=null;this._AcceptedTypes='';this._DropZoneData='';this._disposed=false;}
TpDragDropExtenders.DropZone.DropZoneBehavior.prototype={initialize:function(){TpDragDropExtenders.DropZone.DropZoneBehavior.callBaseMethod(this,'initialize');if(!this._targetControl.control){$create(TpDragDropExtenders.DropZone.DropZoneControl,null,null,null,this._targetControl);}
Sys.Preview.UI.DragDropManager.registerDropTarget(this);this.get_dropTargetElement().control.addCssClass(this._cssClassNormalValue);this._cssClassCurrent=this._cssClassNormalValue;if(this._Highlighter!=null)
this._Highlighter.registerDropZone(this);},dispose:function(){if(this._disposed)return;this._disposed=true;if(this._Highlighter!=null)
this._Highlighter.unregisterDropZone(this);if(Sys.Preview.UI.DragDropManager._getInstance()._dropTargets)
Sys.Preview.UI.DragDropManager.unregisterDropTarget(this);TpDragDropExtenders.DropZone.DropZoneBehavior.callBaseMethod(this,'dispose');},add_dropped:function(handler){this.get_events().addHandler('dropped',handler);},remove_dropped:function(handler){this.get_events().removeHandler('dropped',handler);},get_PostBackCode:function(){return this._postBackCodeValue;},set_PostBackCode:function(value){this._postBackCodeValue=value;},get_Highlighter:function(){return this._Highlighter;},set_Highlighter:function(value){this._Highlighter=value;},get_CssClassNormal:function(){return this._cssClassNormalValue;},set_CssClassNormal:function(value){this._cssClassNormalValue=value;},get_CssClassOver:function(){return this._cssClassOverValue;},set_CssClassOver:function(value){this._cssClassOverValue=value;},get_CssClassHighlight:function(){return this._cssClassHighlightValue;},set_CssClassHighlight:function(value){this._cssClassHighlightValue=value;},get_AcceptedTypes:function(){return this._AcceptedTypes;},set_AcceptedTypes:function(value){this._AcceptedTypes=value;},get_DropZoneData:function(){return this._DropZoneData;},set_DropZoneData:function(value){this._DropZoneData=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},getClientState:function(){var value=TpDragDropExtenders.DropZone.DropZoneBehavior.callBaseMethod(this,'get_ClientState');if(value=='')value=null;return value;},setClientState:function(value){return TpDragDropExtenders.DropZone.DropZoneBehavior.callBaseMethod(this,'set_ClientState',[value]);},get_dropTargetElement:function(){return this._targetControl;},drop:function(dragMode,type,data){var handler=this.get_events().getHandler('dropped');if(handler){handler(this,data);}
var postBackString=this.get_PostBackCode();postBackString=postBackString.replace("None",this._DropZoneData+':'+data);window.setTimeout(postBackString,0);},canDrop:function(dragMode,dataType){return this._AcceptedTypes.indexOf(dataType)>-1;},onDragEnterTarget:function(dragMode,type,data){Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassOverValue);},onDragLeaveTarget:function(dragMode,type,data){Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassCurrent);},onDragInTarget:function(dragMode,type,data){},OnDragStart:function(dragBehavior){if(dragBehavior){if(!this.canDrop(dragBehavior.get_dragMode(),dragBehavior.get_dragDataType())){return;}}
this._cssClassCurrent=this._cssClassHighlightValue;Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassHighlightValue);Sys.UI.DomElement.addCssClass(document.body,"disableSelection");},OnDragEnd:function(){this._cssClassCurrent=this._cssClassNormalValue;Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassNormalValue);Sys.UI.DomElement.removeCssClass(document.body,"disableSelection");}}
TpDragDropExtenders.DropZone.DropZoneBehavior.registerClass('TpDragDropExtenders.DropZone.DropZoneBehavior',Sys.Component);TpDragDropExtenders.DropZone.DropZoneControl=function(element){TpDragDropExtenders.DropZone.DropZoneControl.initializeBase(this,[element]);}
TpDragDropExtenders.DropZone.DropZoneControl.prototype={initialize:function(){TpDragDropExtenders.DropZone.DropZoneControl.callBaseMethod(this,'initialize');},dispose:function(){TpDragDropExtenders.DropZone.DropZoneControl.callBaseMethod(this,'dispose');}}
TpDragDropExtenders.DropZone.DropZoneControl.registerClass('TpDragDropExtenders.DropZone.DropZoneControl',Sys.UI.Control);Sys.UI.DomElement.setCssClass=function Sys$UI$DomElement$setCssClass(element,className){if(element.className!=className){element.className=className;}};
/*ReleasePlan.js*/
function attachBrowser(button)
{var release=button.parentNode.control;var context=release._browserContext;if(!context)
{throw Error.create('browserContext is null');}
if(release.isVisible())
{button.src=button.src.replace("minus","plus");release.collapse();}
else
{button.src=button.src.replace("plus","minus");release.expand();}}
function OnProjectFilterChanged(selector)
{Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.set_ProjectID(selector.value);Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.Refresh();}
function OnTypeFilterChanged()
{var showFeaturesElement=$get('showFeatures');var showFeatures=showFeaturesElement?showFeaturesElement.checked:false;var showUserStoriesElement=$get('showUserStories');var showUserStories=showUserStoriesElement?showUserStoriesElement.checked:false;var showBugsElement=$get('showBugs');var showBugs=showBugsElement?showBugsElement.checked:false;Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.set_TypeFilter(showFeatures,showUserStories,showBugs);Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.Refresh();}
function OnKeywordFilterChanged(){var keywordsControl=$get('txtKeywords');Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.set_KeywordsFilter(keywordsControl.value,tags.dom.value);Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.Refresh();}
function SortBy(field)
{Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.set_SortOrder(field);Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance.Refresh();}
function OnDrop(sender,args)
{var entity=args.entityDataItem;var releaseBarTo=args.releaseBar;var releaseBarFrom=entity.parent;if(entity.browserContext==releaseBarTo.browserContext)return;if(!releaseBarTo.canAdd(entity))
{alert("Practice is not supported in the target project");return;}
releaseBarTo.addEntity(entity);ReleasePlan.MoveEntity(entity.ID,releaseBarTo._releaseDataItem.ID,OnEffortUpdate,OnError,{r1:releaseBarTo,r2:releaseBarFrom,backlog:false});}
function ShowWarningIfNecessary(){WebMethods.GetActionProcessorMessagesAndClear('',onGetActionProcessorMessagesAndClear,onErrorGetActionProcessorMessagesAndClear);}
function onErrorGetActionProcessorMessagesAndClear(result){}
function onGetActionProcessorMessagesAndClear(result){SetLastAction(result,false);}
function OnDropToBacklog(sender,args)
{var entity=args.entityDataItem;var releaseBarFrom=args.releaseBarFrom;var backlog=Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance;if(entity.browserContext==backlog._context)return;if(releaseBarFrom)
{releaseBarFrom.removeEntity(entity);}
backlog.addEntity(entity,2);ReleasePlan.MoveEntity(entity.ID,0,OnEffortUpdate,OnError,{r1:releaseBarFrom,backlog:true});}
function OnEffortUpdate(result,context)
{clearMessages();ShowWarningIfNecessary();if(context.backlog)
{context.r1.Refresh(result[0]);}
else
{if(context.r1)
context.r1.Refresh(result[0]);if(context.r2&&!context.r2._BacklogItems)
context.r2.Refresh(result[1]);}}
var i=0;function AttachCalendar(element)
{if(!element.calendar)
{element.calendar=new Ext.DatePicker({renderTo:Ext.getBody(),format:extJsDateFormat,listeners:{'select':function(dp,date){dp.hide();this.control.set_text(date.localeFormat(shortDateFormat));},scope:element}});element.calendar.setValue(element.initialDate);Ext.fly(document).on({'keyup':function(e){if(e.getKey()==e.ESC)this.hide();},'click':function(e){if(!this.getEl().getRegion().adjust(-30,-30,30,30).contains(e.getPoint()))this.hide();},scope:element.calendar});}
element.calendar.show();element.calendar.getEl().alignTo(element,"");}
function CloseCalendar(sender)
{sender.hide();}
function FixDate(sender,args)
{var value=args.get_value();if(value.localeFormat)
{args.set_value(value.localeFormat(shortDateFormat));sender.get_target().get_element().initialDate=value;}
else
args.set_value(sender.get_target().get_element().calendar.getValue())}
function FixHtmlCharacters(sender,args){var value=args.get_value();args.set_value(Ext.util.Format.htmlEncode(value))}
function OnReleaseSave(releaseBar,args)
{var dataItem=args.dataItem;ReleasePlan.UpdateRelease(dataItem,UpdateRelease,OnError,releaseBar);}
function UpdateRelease(dataItem,releaseBar)
{releaseBar.Refresh(dataItem);}
function OnError(error)
{alert(error.get_message());};
/*Milestones.js*/
Ext.ns('Tp.components');Ext.ns('Tp.controls');Tp.components.MilestoneManager=Ext.extend(Ext.Component,{applyTo:null,constructor:function(config){Tp.components.MilestoneManager.superclass.constructor.call(this,config);this.addMilestonePanelLink=Ext.get(config.addMilestoneLinkId);this.applyTo=config.applyTo;this.addMilestonePanelLink.on('click',this.onAddMilestone,this);},onAddMilestone:function(){var x=this.addMilestonePanelLink.getLeft(false);var y=this.addMilestonePanelLink.getTop(false)+this.addMilestonePanelLink.getHeight(false);this.milestonePanel=new Tp.controls.MilestonePanel({applyTo:this.applyTo,x:x,y:y});this.milestonePanel.show();},milestonePanel:null,addMilestonePanelLink:null});Tp.controls.MilestonePanel=Ext.extend(Ext.Panel,{txtDate:null,chkProjectList:null,btnSave:null,txtName:null,constructor:function(config){this.txtDate=new Ext.form.DateField({width:100});this.chkProjectList=new Ext.form.CheckboxGroup({id:'myGroup',xtype:'checkboxgroup',fieldLabel:'Single Column',itemCls:'x-check-group-alt',columns:1,items:[{boxLabel:'Item 1',name:'cb-col-1'},{boxLabel:'Item 2',name:'cb-col-2',checked:true},{boxLabel:'Item 3',name:'cb-col-3'}],rowspan:2});this.btnSave=new Ext.Button({width:70,text:'Save',colspan:2});this.txtName=new Ext.form.TextField({width:100,fieldLabel:'test'});config=Ext.apply({layout:'table',width:200,height:150,applyTo:config.applyTo,layoutConfig:{columns:2},items:[{html:'Name',cellCls:'milestones'},{html:'Projects'},this.txtName,this.chkProjectList,this.txtDate,this.btnSave]},config);Tp.controls.MilestonePanel.superclass.constructor.call(this,config);}});;
/*IterationPlan.aspx.js*/
function IterationPlan_filterData(iterationId,ctrlId,releaseId,projectId,showUserStories,showBugs){showUserStories=showUserStories?true:false;showBugs=showBugs?true:false;IterationPlan_loadData(iterationId,ctrlId,releaseId,projectId,showUserStories,showBugs);}
function LoadData(iterationId,ctrlId,releaseId,projectId,pageIndex,showUserStories,showBugs,successDelegate,context){var params={"iterationID":iterationId,"targetControl":ctrlId,"releaseID":releaseId,"projectID":projectId,"pageIndex":pageIndex,"showUserStories":showUserStories,"showBugs":showBugs};function failureDelegate(exception){if(exception.status==0&&exception.statusText=='communication failure')
return;var message='Unexpected error';try{message=window.jsonParse(exception.responseText).Message;}
catch(e){SetLastWarning(String.format('Unable to parse error due to "{0}"',e));}
SetLastWarning(message);}
var params={"iterationID":iterationId,"targetControl":ctrlId,"releaseID":releaseId,"projectID":projectId,"pageIndex":pageIndex,"showUserStories":showUserStories,"showBugs":showBugs};Ext.Ajax.request({url:new Tp.WebServiceURL('/PageServices/WebMethods.asmx/LoadData').toString(),jsonData:params,scope:context,success:successDelegate,failure:failureDelegate});}
function IterationPlan_loadData(iterationId,ctrlId,releaseId,projectId,showUserStories,showBugs){var context={'ctrlId':ctrlId,'iterationId':iterationId,'releaseId':releaseId,'projectID':projectId,'showUserStories':showUserStories,'showBugs':showBugs,'pageIndex':0,'data':[]};LoadData(iterationId,ctrlId,releaseId,projectId,context.pageIndex,context.showUserStories,context.showBugs,IterationPlan_OnDataLoaded,context);return false;}
function IterationPlan_OnDataLoaded(result1,requeset,methodName){var context=requeset.scope;var result=jsonParse(result1.responseText).d;var velocity=result[0];var data=result[1];var message=result[2];var filterUsingPostback=result[3];var pageCount=result[4];var assignedEffort=result[5];var acceptedTypes=result[6];var isBacklog=result[7];var projectName=result[8];SetLastAction(message);Array.addRange(context.data,eval(data));if(pageCount>context.pageIndex+1){context.pageIndex+=1;LoadData(context.iterationId,context.ctrlId,context.releaseId,context.projectID,context.pageIndex,context.showUserStories,context.showBugs,IterationPlan_OnDataLoaded,context);return;}
var ctrl=$get(context.ctrlId).control;ctrl.iterationId=context.iterationId;ctrl.releaseId=context.releaseId;ctrl.projectID=context.projectID;ctrl.projectName=projectName;ctrl.iterationVelocity=velocity;ctrl.assignedEffort=assignedEffort;ctrl.filterUsingPostBack=filterUsingPostback;ctrl.isBacklog=isBacklog;ctrl.set_acceptedTypes(acceptedTypes);ctrl.set_data(context.data);}
function IterationPlan_OnFail(response){var responseObject=jsonParse(response.responseText);if(responseObject.ExceptionType==null||responseObject.ExceptionType=="")
return;alert(responseObject.Message);}
function IterationPlan_OnDrop(sender,args){var context={};var rows=args.row;var rowIDs=[];for(var i=0;i<rows.length;i++){Array.add(rowIDs,rows[i].getData().ID);if(!context.list1)
context.list1=rows[i].getList();}
var positionRow=args.positionRow;context.list2=positionRow.getList();Ext.Ajax.request({url:new Tp.WebServiceURL('/PageServices/WebMethods.asmx/MoveItem').toString(),method:'POST',headers:{'Content-Type':'application/json'},success:Function.createDelegate(this,IterationPlan_OnItemMoved),failure:Function.createDelegate(this,IterationPlan_OnFail),jsonData:{'assignableID':rowIDs,'positionAssignableID':positionRow.getData()?positionRow.getData().ID:0,'iterationID':positionRow.getList().iterationId,'releaseID':positionRow.getList().releaseId,'toProjectID':positionRow.getList().isBacklog?null:positionRow.getList().projectID},params:{'context':context}});}
function IterationPlan_OnItemMoved(res,con){var result=jsonParse(res.responseText).d;var context=con.params.context;var isError=result[0]=="ERR";var message=result[1];var assignedEffort1=result[2];var assignedEffort2=result[3];if(context.list1){context.list1.assignedEffort=assignedEffort1;IterationPlan_OnAfterDrop(context.list1,context.list1.get_afterDropArg());}
if(context.list2){context.list2.assignedEffort=assignedEffort2;IterationPlan_OnAfterDrop(context.list2,context.list2.get_afterDropArg());}
clearMessages();if(isError){SetLastWarning(message);Init();}
else{WebMethods.GetActionProcessorMessagesAndClear(message,onGetActionProcessorMessagesAndClear,onErrorGetActionProcessorMessagesAndClear);}}
function onErrorGetActionProcessorMessagesAndClear(result){}
function onGetActionProcessorMessagesAndClear(result){SetLastAction(result,false);}
function clearMessages(){SetLastWarning(null);SetLastAction(null);}
function IterationPlan_OnAfterDrop(list,args){IterationPlan_OnAfterDropDo(list,args);CountColumnsAndSetClass();}
function CountColumnsAndSetClass(){var c=Math.floor(document.documentElement.offsetWidth/(700));cc=c>1?c:1;document.getElementById('adaptiveBlockContainer').className='columns'+cc;var projectIterationPlanBlocks=Ext.select(".adaptiveBlock");var lineBlocks=new Array();for(var i=0;i<projectIterationPlanBlocks.getCount();i++){Ext.get(projectIterationPlanBlocks.elements[i]).setStyle("height","");}
for(var i=0;i<projectIterationPlanBlocks.getCount();i++){if(i%cc==0&&i!=0){setMaxWidthForAllInIterationPlan(lineBlocks);Array.clear(lineBlocks);}
lineBlocks.push(Ext.get(projectIterationPlanBlocks.elements[i]));}}
function setMaxWidthForAllInIterationPlan(lineBlocks){var maxHeight=0;for(var i=0;i<lineBlocks.length;i++){if(maxHeight<lineBlocks[i].getHeight())
maxHeight=lineBlocks[i].getHeight();}
for(var i=0;i<lineBlocks.length;i++){lineBlocks[i].setHeight(maxHeight);}}
function getCurrentReleaseDropDownValueForBacklog(filterId){var current=getCurrentReleaseDropDownForBacklog(filterId);return current?current.children[0].value:"-1";}
function getCurrentReleaseDropDownForBacklog(filterId){var releasesHolder=$get(filterId);var result;if(releasesHolder&&releasesHolder.children){Array.forEach(releasesHolder.children,function(element){if(element.style.display=='inline')
result=element;},this);}
return result;}
function getReleaseDropDownForBacklog(filterId,projectId)
{var releasesHolder=$get(filterId);var result;if(releasesHolder&&releasesHolder.children){Array.forEach(releasesHolder.children,function(element){if(element.attributes['projectid'].value==projectId)
result=element;},this);}
return result;}
function IterationPlan_OnAfterDropDo(list,args){if(!args)return;var ids=eval('('+args+')');var sumVelocityId=ids.sumVelocity;var itVelocityId=ids.itVelocity;var parentId=ids.parent;var alertId=ids.alert;var effortDeltaId=ids.effortDelta;var releaseFilterId=ids.releaseFilter;if(releaseFilterId){if(list.isBacklog&&$get(releaseFilterId).children.length>1){var releaseDropDown=getReleaseDropDownForBacklog(releaseFilterId,list.projectID);var current=getCurrentReleaseDropDownForBacklog(releaseFilterId);if(current!=releaseDropDown){if(current){current.style.display='none';current.children[0].selectedIndex=0;}
if(releaseDropDown){releaseDropDown.style.display='inline';}}}
else{var element=$get(releaseFilterId).children[0];if(element){if(list.iterationId==0)
{element.style.display='inline';}
else{element.style.display='none';element.children[0].selectedIndex=0;}}}}
if(parentId){var parent=$get(parentId);if(parent){if(isNaN(list.iterationId)||list.iterationId<=0){parent.style.display='none';return;}
else{parent.style.display='block';}}}
var sumEffort=list.assignedEffort;if(sumVelocityId){var element=$get(sumVelocityId);if(element){element.innerHTML=Math.round(sumEffort);}}
if(itVelocityId){var element=$get(itVelocityId);if(element){element.innerHTML=list.iterationVelocity;}}
if(alertId&&effortDeltaId){var element=$get(alertId);var delta=$get(effortDeltaId);if(element&&delta){if(isNaN(list.iterationVelocity)||list.iterationVelocity>=sumEffort){element.style.display='none';}
else{delta.innerHTML=Math.round(sumEffort-list.iterationVelocity);element.style.display='inline';}}}};
/*TpDataPager.js*/
Type.registerNamespace('Tp.Ajax.Data');Tp.Ajax.Data.Pager=function(element)
{Tp.Ajax.Data.Pager.initializeBase(this,[element]);this._dataView=null;this._prevPageTemplate=null;this._nextPageTemplate=null;this._pageTemplate=null;this._activePageTemplate=null;this._prevPageElement=null;this._nextPageElement=null;this._pageElements=null;this._dataViewChangedDelegate=null;this._listViewId='';}
Tp.Ajax.Data.Pager.prototype={initialize:function(){Tp.Ajax.Data.Pager.callBaseMethod(this,'initialize');this._pageElements=[];if(this._prevPageTemplate){this._prevPageTemplate.initialize();}
if(this._nextPageTemplate){this._nextPageTemplate.initialize();}
if(this._pageTemplate){this._pageTemplate.initialize();}
if(this._activePageTemplate){this._activePageTemplate.initialize();}
var listView=$find(this._listViewId);if(listView)
{this.set_dataView(listView.get_dataView());}
if(this._dataView)
{this.render();}},dispose:function(){if(this._prevPageTemplate){this._prevPageTemplate.dispose();this._prevPageTemplate=null;}
if(this._nextPageTemplate){this._nextPageTemplate.dispose();this._nextPageTemplate=null;}
if(this._pageTemplate){this._pageTemplate.dispose();this._pageTemplate=null;}
if(this._activePageTemplate){this._activePageTemplate.dispose();this._activePageTemplate=null;}
this._dataViewChangedDelegate=null;Tp.Ajax.Data.Pager.callBaseMethod(this,'dispose');},render:function(){if(this._prevPageElement)
{if(this._prevPageElement.control)
{this._prevPageElement.control.dispose();}
Sys.Preview.UI.ITemplate.disposeInstance(this._prevPageElement);}
if(this._nextPageElement)
{if(this._nextPageElement.control)
{this._nextPageElement.control.dispose();}
Sys.Preview.UI.ITemplate.disposeInstance(this._nextPageElement);}
var pageElements=this._pageElements;if(pageElements&&pageElements.length>0)
{for(var i=0;i<pageElements.length;i++)
{if(pageElements[i].control)
{pageElements[i].control.dispose();}
Sys.Preview.UI.ITemplate.disposeInstance(pageElements[i]);}}
this._pageElements=[];this.get_element().innerHTML='';if(!this._dataView)return;var pageCount=this._dataView.get_pageCount();if(pageCount<=1)return;var template=this.get_prevPageTemplate();if(template&&this._dataView.get_hasPreviousPage())
{this._prevPageElement=template.createInstance(this.get_element()).instanceElement;$create(Sys.Preview.UI.Button,{command:'previousPage'},null,null,this._prevPageElement);}
var activePageTemplate=this.get_activePageTemplate();template=this.get_pageTemplate();if(template)
{var pageIndex=Number(this._dataView.get_pageIndex());var lIndex=pageIndex-10;var hIndex=10+pageIndex;for(var i=0;i<pageCount;i++)
{if((i<lIndex)||(i>hIndex))continue;var pageElement;if(activePageTemplate!=null&&i==pageIndex)
{pageElement=activePageTemplate.createInstance(this.get_element(),{page:(i+1)}).instanceElement;}
else
pageElement=template.createInstance(this.get_element(),{page:(i+1)}).instanceElement;pageElement.id='page'+i;$create(Sys.Preview.UI.Button,{command:'page',argument:''+i},null,null,pageElement);Array.add(this._pageElements,pageElement);}}
template=this.get_nextPageTemplate();if(template&&this._dataView.get_hasNextPage())
{this._nextPageElement=template.createInstance(this.get_element()).instanceElement;$create(Sys.Preview.UI.Button,{command:'nextPage'},null,null,this._nextPageElement);}},_dataViewChange:function(sender,args){if(args.get_propertyName()=='filteredData')
{this.render();}},onBubbleEvent:function(source,args){if(!this._dataView)return false;var cmd=args.get_commandName().toLowerCase();switch(cmd){case"page":var arg=args.get_argument();if(arg||arg===0){this._dataView.set_pageIndex(arg);return true;}
break;case"nextpage":this._dataView.set_pageIndex(this._dataView.get_pageIndex()+1);return true;case"previouspage":var idx=this._dataView.get_pageIndex()-1;if(idx>=0){this._dataView.set_pageIndex(idx);}
return true;case"firstpage":this._dataView.set_pageIndex(0);return true;case"lastpage":this._dataView.set_pageIndex(this._dataView.get_pageCount()-1);return true;}
return false;},get_dataView:function(){return this._dataView;},set_dataView:function(dataView){if(this._dataViewChangedDelegate==null)
{this._dataViewChangedDelegate=Function.createDelegate(this,this._dataViewChange);}
if(this._dataView)
{this._dataView.remove_propertyChanged(this._dataViewChangedDelegate)}
this._dataView=dataView;this._dataView.add_propertyChanged(this._dataViewChangedDelegate)},get_prevPageTemplate:function(){return this._prevPageTemplate;},set_prevPageTemplate:function(template){if(this._prevPageTemplate){this._prevPageTemplate.dispose();}
this._prevPageTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('prevPageTemplate');},get_nextPageTemplate:function(){return this._nextPageTemplate;},set_nextPageTemplate:function(template){if(this._nextPageTemplate){this._nextPageTemplate.dispose();}
this._nextPageTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('nextPageTemplate');},get_pageTemplate:function(){return this._pageTemplate;},set_pageTemplate:function(template){if(this._pageTemplate){this._pageTemplate.dispose();}
this._pageTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('pageTemplate');},get_activePageTemplate:function(){return this._activePageTemplate;},set_activePageTemplate:function(template){if(this._activePageTemplate){this._activePageTemplate.dispose();}
this._activePageTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('activePageTemplate');},get_listViewId:function(){return this._listViewId;},set_listViewId:function(listViewId){this._listViewId=listViewId;this.raisePropertyChanged('listViewId');}}
Tp.Ajax.Data.Pager.descriptor={properties:[{name:'prevPageTemplate',type:Sys.Preview.UI.ITemplate},{name:'nextPageTemplate',type:Sys.Preview.UI.ITemplate},{name:'pageTemplate',type:Sys.Preview.UI.ITemplate},{name:'activePageTemplate',type:Sys.Preview.UI.ITemplate},{name:'listViewId',type:String}],events:[]}
Tp.Ajax.Data.Pager.registerClass('Tp.Ajax.Data.Pager',Sys.UI.Control);Sys.Application.notifyScriptLoaded();;
/*TpDragBehavior.js*/
Type.registerNamespace('Tp.Atlas');Tp.Atlas.TpDragBehavior=function(list){Tp.Atlas.TpDragBehavior.initializeBase(this);this._list=list;this._elements=null;this._rows=null;this._currentElement=null;this._currentRow=null;this._floatContainer=null;this._highlighter=null;}
Tp.Atlas.TpDragBehavior.prototype={initialize:function(){Tp.Atlas.TpDragBehavior.callBaseMethod(this,'initialize');this._mousedownHandler=Function.createDelegate(this,this.mousedownHandler);this._elements=[];this._rows=[];var highlighterId=this._list._highlighterId;if(highlighterId){this._highlighter=$find(highlighterId);}},dispose:function(){Tp.Atlas.TpDragBehavior.callBaseMethod(this,'dispose');for(var i=0;i<this._elements.length;i++){$removeHandler(this._elements[i],'mousedown',this._mousedownHandler);}
if(this._elements)
Array.clear(this._elements);if(this._rows)
Array.clear(this._rows);this._elements=null;this._rows=null;this._mousedownHandler=null;this._highlighter=null;this._currentElement=null;this._currentRow=null;this._floatContainer=null;this._highlighter=null;},registerElement:function(row,element,entityKind){if(Array.contains(this._elements,element))return;element.style.MozUserSelect='none';Array.add(this._elements,element);Array.add(this._rows,row);$addHandler(element,'mousedown',this._mousedownHandler);if(this._highlighter!=null){this._highlighter.registerDruggableItem(this,entityKind);}},mousedownHandler:function(ev){window._event=ev;if(window.getSelection)
window.getSelection().removeAllRanges();if(ev.button==2)return;this._currentElement=ev.target;while(!Array.contains(this._elements,this._currentElement)&&this._currentElement!=null){this._currentElement=this._currentElement.parentNode;}
if(this._currentElement==null)return;this._currentRow=this._rows[Array.indexOf(this._elements,this._currentElement)];this._floatContainer=this.createFloatContainer(this._currentElement.druggableElement?this._currentElement.druggableElement:this._currentElement);document.body.appendChild(this._floatContainer);Sys.Preview.UI.DragDropManager.startDragDrop(this,this._floatContainer,null);},createFloatContainer:function(element){if(element.druggableElement)
element=element.druggableElement;var table=document.createElement("table");var tbody=document.createElement("tbody");table.appendChild(tbody);var rows=this._list.getCheckedRows();if(rows.length>0){if(rows.length>10){var tr=document.createElement("tr");var td=document.createElement("td");tr.appendChild(td);td.innerHTML=rows.length+' entities...';tbody.appendChild(tr);}
else{for(var i=0;i<rows.length;i++){tbody.appendChild(rows[i].rowElement().cloneNode(true));}}}
else{tbody.appendChild(element.cloneNode(true));}
var currentLocation=Sys.UI.DomElement.getLocation(element);Sys.UI.DomElement.setLocation(table,currentLocation.x,currentLocation.y);table.style.backgroundColor="white";table.style.width=element.offsetWidth+"px";table.style.height=element.offsetHeight+"px";table.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity=0.75);";table.style.opacity="0.75";table.style.position="absolute";table.style.zIndex=32000;return table;},add_dragStart:function(handler){this.get_events().addHandler('dragStart',handler);},remove_dragStart:function(handler){this.get_events().removeHandler('dragStart',handler);},add_dragEnd:function(handler){this.get_events().addHandler('dragEnd',handler);},remove_dragEnd:function(handler){this.get_events().removeHandler('dragEnd',handler);},get_Row:function(){return this._currentRow;},get_dragDataType:function(){var checkedRows=this._list.getCheckedRows();if(checkedRows.length>0)
{var dragDataTypes=new Array();for(var i=0;i<checkedRows.length;i++)
{var entityKind=checkedRows[i]._dataItem.entityKind;if(!Array.contains(dragDataTypes,entityKind))
{dragDataTypes.push(entityKind);}}
dragDataTypes.sort();return dragDataTypes.join(',');}
return this._currentRow._dataItem.entityKind;},getDragData:function(){return this;},get_data:function(){return this;},get_dragMode:function(){return Sys.Preview.UI.DragMode.Move;},onDragStart:function(){if(this._currentElement!=null){var handler=this.get_events().getHandler('dragStart');if(handler){handler(this,Sys.EventArgs.Empty);}}
if(this._currentRow){this._currentRow.highlight(true);}},onDrag:function(){},onDragEnd:function(cancelled){var handler=this.get_events().getHandler('dragEnd');if(handler){handler(this,Sys.EventArgs.Empty);}
if(this._floatContainer){document.body.removeChild(this._floatContainer);this._floatContainer=null;}
if(this._currentRow){this._currentRow.highlight(false);}
this._currentElement=null;this._currentRow=null;}}
Tp.Atlas.TpDragBehavior.registerClass('Tp.Atlas.TpDragBehavior',Sys.Component);Sys.Application.notifyScriptLoaded();;
/*TpListView.js*/
Type.registerNamespace('Tp.Atlas');Tp.Atlas.TpListView=function(associatedElement){Tp.Atlas.TpListView.initializeBase(this,[associatedElement]);this._itemControls=[];this._rows=[];this._emptyRow=null;this._layoutTemplate=null;this._itemTemplate=null;this._edgeTemplate=null;this._emptyTemplate=null;this._layoutTemplateElement=null;this._itemsParent=null;this._zoneBehavior=null;this._dragBehavior=null;this._dataView=null;this._onDataChanged=null;this._itemTemplateParentElementId='';this._dropZoneElementId='';this._dragHandleElementId='';this._highlighterId='';this._checkBoxElementId='';this._acceptedTypes='';this._afterDropArg='';this._iterationId=0;this._pageSize=20;}
Tp.Atlas.TpListView.prototype={initialize:function(){Tp.Atlas.TpListView.callBaseMethod(this,'initialize');if(this._itemTemplate){this._itemTemplate.initialize();}
if(this._emptyTemplate){this._emptyTemplate.initialize();}
if(this._edgeTemplate){this._edgeTemplate.initialize();}
if(this._layoutTemplate){this._layoutTemplate.initialize();}
var element=this.get_element();if(!element.tabIndex){element.tabIndex=0;}
this._dragBehavior=new Tp.Atlas.TpDragBehavior(this);this._dragBehavior.initialize();this._dataView=new Sys.Preview.Data.DataView();this._dataView.set_pageSize(this._pageSize);this._dataChanged=Function.createDelegate(this,this.__onDataChanged);this._dataView.add_propertyChanged(this._dataChanged);},dispose:function(){this._disposeRows();if(this._layoutTemplate){this._layoutTemplate.dispose();this._layoutTemplate=null;}
if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null;}
if(this._edgeTemplate){this._edgeTemplate.dispose();this._edgeTemplate=null;}
if(this._emptyTemplate){this._emptyTemplate.dispose();this._emptyTemplate=null;}
this._layoutTemplateElement=null;this._itemsParent=null;this._dataView.remove_propertyChanged(this._dataChanged);this._dataChanged=null;this._dataView.dispose();this._dataView=null;Tp.Atlas.TpListView.callBaseMethod(this,'dispose');},_disposeRows:function(){this.removeEmptyRow();for(i=this._rows.length-1;i>=0;i--){var element=this._rows[i];if(element){element.dispose();}}
this._rows=[];},set_data:function(value){this._dataView.set_pageIndex(0);this._dataView.set_data(value);},__onDataChanged:function(sender,args){if(args.get_propertyName()=='filteredData'){Tp.Atlas.TpListView.callBaseMethod(this,'set_data',[this._dataView.get_filteredData()]);}},get_dataView:function(){return this._dataView;},add_drop:function(handler){this.get_events().addHandler('drop',handler);},remove_drop:function(handler){this.get_events().removeHandler('drop',handler);},add_afterDrop:function(handler){this.get_events().addHandler('afterDrop',handler);},remove_afterDrop:function(handler){this.get_events().removeHandler('afterDrop',handler);},set_dataIndex:function(value){var oldIndex=this.get_dataIndex();if(oldIndex!=value){var sel=this.getItemElement(oldIndex);if(sel&&this._selectedItemClass){Sys.UI.DomElement.removeCssClass(sel,this._selectedItemClass);}
Tp.Atlas.TpListView.callBaseMethod(this,'set_dataIndex',[value]);sel=this.getItemElement(value);if(sel&&this._selectedItemClass){Sys.UI.DomElement.addCssClass(sel,this._selectedItemClass);}}},get_pageSize:function(){return this._pageSize;},set_pageSize:function(value){this._pageSize=value;},get_layoutTemplate:function(){return this._layoutTemplate;},set_layoutTemplate:function(template){if(this._layoutTemplate){this._layoutTemplate.dispose();}
this._layoutTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('layoutTemplate');},get_itemTemplate:function(){return this._itemTemplate;},set_itemTemplate:function(template){if(this._itemTemplate){this._itemTemplate.dispose();}
this._itemTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('itemTemplate');},get_emptyTemplate:function(){return this._emptyTemplate;},set_emptyTemplate:function(template){if(this._emptyTemplate){this._emptyTemplate.dispose();}
this._emptyTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('emptyTemplate');},get_edgeTemplate:function(){return this._edgeTemplate;},set_edgeTemplate:function(template){if(this._edgeTemplate){this._edgeTemplate.dispose();}
this._edgeTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('edgeTemplate');},get_itemTemplateParentElementId:function(){return this._itemTemplateParentElementId;},set_itemTemplateParentElementId:function(id){this._itemTemplateParentElementId=id;this.raisePropertyChanged('itemTemplateParentElementId');},get_dropZoneElementId:function(){return this._dropZoneElementId;},set_dropZoneElementId:function(id){this._dropZoneElementId=id;this.raisePropertyChanged('dropZoneElementId');},get_checkBoxElementId:function(){return this._checkBoxElementId;},set_checkBoxElementId:function(id){this._checkBoxElementId=id;this.raisePropertyChanged('checkBoxElementId');},get_dragHandleElementId:function(){return this._dragHandleElementId;},set_dragHandleElementId:function(id){this._dragHandleElementId=id;this.raisePropertyChanged('dragHandleElementId');},get_highlighterId:function(){return this._highlighterId;},set_highlighterId:function(value){this._highlighterId=value;},get_acceptedTypes:function(){return this._acceptedTypes;},set_acceptedTypes:function(value){this._acceptedTypes=value;if(this._zoneBehavior){this._zoneBehavior.set_AcceptedTypes(value);}},get_afterDropArg:function(){return this._afterDropArg;},set_afterDropArg:function(arg){this._afterDropArg=arg;this.raisePropertyChanged('afterDropArg');},getItemsParent:function(){return this._itemsParent;},getRows:function(){return this._rows;},getCheckedRows:function(){var rows=[];for(var i=0;i<this._rows.length;i++){if(this._rows[i].isChecked())
Array.add(rows,this._rows[i]);}
return rows;},render:function(){var i,element;for(i=this._itemControls.length-1;i>=0;i--){element=this._itemControls[i];if(element){element.dispose();}}
this._disposeRows();if(this.get_element().childNodes.length){if(this._layoutTemplateElement){Sys.Preview.UI.ITemplate.disposeInstance(this._layoutTemplateElement);}}
try{this.get_element().innerHTML='';}
catch(e){while(this.get_element().children(0)){this.get_element().removeChild(this.get_element().children(0));}}
var tasksPending=false;var itemLength=0;var items=this.get_data();if(Sys.Preview.Data.IData.isImplementedBy(items)){itemLength=items.get_length();}
else if(items instanceof Array){itemLength=items.length;}
if(true||itemLength>0){var template=this.get_layoutTemplate();if(template){var itemTemplate=this.get_itemTemplate();var edgeTemplate=this.get_edgeTemplate();var layoutTemplateInstance=template.createInstance(this.get_element(),null,this._findItemTemplateParentCallback,this._itemTemplateParentElementId);var itemTemplateParent=layoutTemplateInstance.callbackResult;this._layoutTemplateElement=layoutTemplateInstance.instanceElement;this._itemsParent=itemTemplateParent;tasksPending=true;if(this._dropZoneElementId&&this._dropZoneElementId!==''){var el=$get(this._dropZoneElementId);if(this._zoneBehavior==null){this._zoneBehavior=$create(Tp.Atlas.DropZoneBehavior,{list:this,CssClassHighlight:'dropZoneHighlight',CssClassOver:'dropZoneOver',CssClassNormal:'dropZoneNormal',AcceptedTypes:this._acceptedTypes,HighlighterID:this._highlighterId},{dropped:Function.createDelegate(this,this._OnDrop)},{},el);}}
var renderTask=new Tp.Atlas.TpListViewRenderTask(this,items,itemTemplate,itemTemplateParent,edgeTemplate,this._rows);Sys.Preview.TaskManager.addTask(renderTask);}}
else{var emptyTemplate=this.get_emptyTemplate();if(emptyTemplate){emptyTemplate.createInstance(this.get_element());}}},filterData:function(key,show){Array.forEach(this._rows,function(item){if(item.getData()==null||item.getData().typeIconPath.indexOf(key)==-1){return;}
if(show){item.show();}
else{item.hide();}},this);},removeEmptyRow:function(){if(this._emptyRow){Array.remove(this._rows,this._emptyRow);this._emptyRow.removeVisual();this._emptyRow.dispose();this._emptyRow=null;}},addEmptyRow:function(){var emptyTemplate=this.get_emptyTemplate();var edgeTemplate=this.get_edgeTemplate();if(emptyTemplate&&edgeTemplate&&this._itemsParent){var row=new Tp.Atlas.TpListViewRow(this,null,emptyTemplate,edgeTemplate,this._itemsParent);row.initialize();Array.add(this._rows,row);this._emptyRow=row;}},insureEmptyRow:function(){if(this._emptyRow){if(this._rows.length>1){this.removeEmptyRow();}}
else{if(this._rows.length==0){this.addEmptyRow();}}
var handler=this.get_events().getHandler('afterDrop');if(handler){handler(this,this._afterDropArg);}},_findItemTemplateParentCallback:function(instanceElement,markupContext,id){return markupContext.findElement(id);},_OnDrop:function(sender,args){this.fixData(args.positionRow,args.row);var handler=this.get_events().getHandler('drop');if(handler){handler(this,args);}},fixData:function(positionRow,rows){if(rows==null||rows.length==0)return;var srcDataItems=[];for(var i=0;i<rows.length;i++){Array.add(srcDataItems,rows[i].getData());}
var dstDataItem=positionRow.getData();var srcDataView=rows[0].getList().get_dataView();var dstDataView=positionRow.getList().get_dataView();var srcDataList=srcDataView._data;var dstDataList=dstDataView._data;for(var i=0;i<srcDataItems.length;i++){Array.remove(srcDataList,srcDataItems[i]);}
var dstIndex=Array.indexOf(dstDataList,dstDataItem);for(var i=0;i<srcDataItems.length;i++){Array.insert(dstDataList,dstIndex,srcDataItems[i]);}
srcDataView._filteredTable=null;srcDataView.ensureFilteredData();dstDataView._filteredTable=null;dstDataView.ensureFilteredData();}}
Tp.Atlas.TpListView.descriptor={properties:[{name:'layoutTemplate',type:Sys.Preview.UI.ITemplate},{name:'itemTemplate',type:Sys.Preview.UI.ITemplate},{name:'edgeTemplate',type:Sys.Preview.UI.ITemplate},{name:'emptyTemplate',type:Sys.Preview.UI.ITemplate},{name:'itemTemplateParentElementId',type:String},{name:'dropZoneElementId',type:String},{name:'dragHandleElementId',type:String},{name:'afterDropArg',type:String},{name:'edgeElementId',type:String},{name:'highlighterId',type:String},{name:'acceptedTypes',type:String},{name:'pageSize',type:Number},{name:'checkBoxElementId',type:String}],events:[{name:'drop'},{name:'afterDrop'}]}
Tp.Atlas.TpListView.registerClass('Tp.Atlas.TpListView',Sys.Preview.UI.Data.DataControl);Sys.Application.notifyScriptLoaded();;
/*TpListViewDropZoneBehavior.js*/
Type.registerNamespace('Tp.Atlas');Tp.Atlas.DropZoneBehavior=function(element){Tp.Atlas.DropZoneBehavior.initializeBase(this,[element]);this._postBackCodeValue='';this._cssClassNormalValue='';this._cssClassOverValue='';this._cssClassHighlightValue='';this._cssClassCurrent='';this._HighlighterID='';this._Highlighter=null;this._AcceptedTypes='';this._DropZoneData='';this._edges=[];this._disposed=false;this._list=null;this._task=null;this._lastY=0;this._lastDirection=true;}
Tp.Atlas.DropZoneBehavior.prototype={initialize:function(){Tp.Atlas.DropZoneBehavior.callBaseMethod(this,'initialize');Sys.Preview.UI.DragDropManager.registerDropTarget(this);Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassNormalValue);this._cssClassCurrent=this._cssClassNormalValue;if(this._HighlighterID){this._Highlighter=$find(this._HighlighterID);if(this._Highlighter!=null)
this._Highlighter.registerDropZone(this);}},dispose:function(){if(this._disposed)return;if(this._Highlighter!=null)
this._Highlighter.unregisterDropZone(this);if(Sys.Preview.UI.DragDropManager._getInstance()._dropTargets)
Sys.Preview.UI.DragDropManager.unregisterDropTarget(this);Tp.Atlas.DropZoneBehavior.callBaseMethod(this,'dispose');_edges=null;_disposed=true;},add_dropped:function(handler){this.get_events().addHandler('dropped',handler);},remove_dropped:function(handler){this.get_events().removeHandler('dropped',handler);},get_PostBackCode:function(){return this._postBackCodeValue;},set_PostBackCode:function(value){this._postBackCodeValue=value;},get_CssClassNormal:function(){return this._cssClassNormalValue;},set_CssClassNormal:function(value){this._cssClassNormalValue=value;},get_CssClassOver:function(){return this._cssClassOverValue;},set_CssClassOver:function(value){this._cssClassOverValue=value;},get_CssClassHighlight:function(){return this._cssClassHighlightValue;},set_CssClassHighlight:function(value){this._cssClassHighlightValue=value;},get_HighlighterID:function(){return this._HighlighterID;},set_HighlighterID:function(value){this._HighlighterID=value;},get_AcceptedTypes:function(){return this._AcceptedTypes;},set_AcceptedTypes:function(value){if(value)
this._AcceptedTypes=value;if(this._Highlighter!=null){this._Highlighter.unregisterDropZone(this);this._Highlighter.registerDropZone(this);}},get_DropZoneData:function(){return this._DropZoneData;},set_DropZoneData:function(value){this._DropZoneData=value;},get_edges:function(){return this._edges;},set_list:function(value){this._list=value;},get_list:function(){return this._list;},getClientState:function(){var value=Tp.Atlas.DropZoneBehavior.callBaseMethod(this,'get_ClientState');if(value=='')value=null;return value;},setClientState:function(value){return Tp.Atlas.DropZoneBehavior.callBaseMethod(this,'set_ClientState',[value]);},get_dropTargetElement:function(){return this.get_element();},drop:function(dragMode,type,druggableItem){var positionRow=null;if(this._task){positionRow=this._task.getRow();this._task.stopTask();this._task=null;}
if(!positionRow)return;var rows=druggableItem._list.getCheckedRows().reverse();if(rows.length==0){Array.add(rows,druggableItem.get_Row());}
var handler=this.get_events().getHandler('dropped');if(handler){handler(this,{row:rows,positionRow:positionRow});}
for(var i=0;i<rows.length;i++){var row=rows[i];row.riseDragEnd();positionRow=positionRow.insertBefore(row);}},canDrop:function(dragMode,dataType){return this._AcceptedTypes.indexOf(dataType)>-1;},onDragEnterTarget:function(dragMode,type,data){Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassOverValue);if(!this._task){this._task=new Tp.Atlas.TpListViewSwitchEdge(this._list);this._task.setMousePosition(this._getMousePosition());}
Sys.Preview.TaskManager.addTask(this._task);},onDragLeaveTarget:function(dragMode,type,data){Sys.UI.DomElement.setCssClass(this.get_dropTargetElement(),this._cssClassCurrent);for(var i=0;i<this._edges.length;i++){this._edges[i].style.visibility='hidden';}
if(this._task){this._task.stopTask();this._task.execute();this._task=null;}},onDragInTarget:function(dragMode,type,data){if(this._task){var pos=this._getMousePosition();this._task.setMousePosition(pos);var currentDirection=pos.y>this._lastY;if(this._lastDirection==!currentDirection){this._lastDirection=currentDirection;this._task.execute();}
this._lastY=pos.y;}},_getMousePosition:function(){var ev=window._event;var mousePosition={x:ev.clientX,y:ev.clientY};return mousePosition;},OnDragStart:function(dragBehavior){if(dragBehavior)
{if(!this.canDrop(dragBehavior.get_dragMode(),dragBehavior.get_dragDataType()))
{return;}}
this._cssClassCurrent=this._cssClassHighlightValue;Sys.UI.DomElement.setCssClass(this.get_element(),this._cssClassHighlightValue);Sys.UI.DomElement.addCssClass(document.body,"disableSelection");},OnDragEnd:function(){this._cssClassCurrent=this._cssClassNormalValue;Sys.UI.DomElement.setCssClass(this.get_element(),this._cssClassNormalValue);Sys.UI.DomElement.removeCssClass(document.body,"disableSelection");}}
Tp.Atlas.DropZoneBehavior.registerClass('Tp.Atlas.DropZoneBehavior',Sys.UI.Control);Sys.UI.DomElement.setCssClass=function Sys$UI$DomElement$setCssClass(element,className){if(element.className!=className){element.className=className;}}
Sys.Application.notifyScriptLoaded();;
/*TpListViewRenderTask.js*/
Type.registerNamespace('Tp.Atlas');Tp.Atlas.TpListViewRenderTask=function(listView,dataItems,itemTemplate,itemTemplateParent,edgeTemplate,rows)
{this._currentIndex=0;this._listView=listView;this._dataItems=dataItems;this._itemTemplate=itemTemplate;this._itemTemplateParent=itemTemplateParent;this._edgeTemplate=edgeTemplate;this._rows=rows;}
Tp.Atlas.TpListViewRenderTask.prototype={dispose:function(){this._listView=null;this._dataItems=null;this._itemTemplate=null;this._itemTemplateParent=null;this._edgeTemplate=null;this._rows=null;},execute:function(){var itemLength=0;var isIData=Sys.Preview.Data.IData.isImplementedBy(this._dataItems);if(isIData){itemLength=this._dataItems.get_length();}
else if(this._dataItems instanceof Array){itemLength=this._dataItems.length;}
var lastElementToRender=Math.min(itemLength,this._currentIndex+5);for(;this._currentIndex<lastElementToRender;this._currentIndex++){var item;if(isIData){item=this._dataItems.getItem(this._currentIndex);}
else if(this._dataItems instanceof Array)
{item=this._dataItems[this._currentIndex];}
var dataItem=item;if(item.get_rowObject)
{dataItem=item.get_rowObject();}
var row=new Tp.Atlas.TpListViewRow(this._listView,dataItem,this._itemTemplate,this._edgeTemplate,this._itemTemplateParent,this._currentIndex);row.initialize();Array.add(this._rows,row);}
this._listView.insureEmptyRow();if(this._currentIndex==itemLength)
return true;return false;}}
Tp.Atlas.TpListViewRenderTask.registerClass('Tp.Atlas.TpListViewRenderTask',null,Sys.Preview.ITask,Sys.IDisposable);Sys.Application.notifyScriptLoaded();;
/*TpListViewRow.js*/
Type.registerNamespace('Tp.Atlas');var _globalInt=0;function get_globalID(){return _globalInt++;}
Tp.Atlas.TpListViewRow=function(list,dataItem,itemTemplate,edgeTemplate,parentElement,index){this._list=list;this._dataItem=dataItem;this._itemTemplate=itemTemplate;this._edgeTemplate=edgeTemplate;this._parentElement=parentElement;this._edgeElement=null;this._rowElement=null;this._rowControl=null;this._rowBehavior=null;this._checkBoxHandler=null;this._lastStyle;this._timeoutCookie;this._timeoutHandler;this._index=index;}
Tp.Atlas.TpListViewRow.prototype={initialize:function(){if(this._edgeTemplate){this._edgeElement=this._edgeTemplate.createInstance(this._parentElement).instanceElement;}
if(this._itemTemplate){var tmplInstance=this._itemTemplate.createInstance(this._parentElement,this._dataItem,this._findItemCallback,[this._list.get_dragHandleElementId(),this._list.get_checkBoxElementId()]);this._rowElement=tmplInstance.instanceElement;this._rowElement.tabIndex=-1;if(this._dataItem){if(tmplInstance.callbackResult){if(tmplInstance.callbackResult[0]){var el=tmplInstance.callbackResult[0];el.druggableElement=this._rowElement;this._addDrugDrop(el,this._dataItem.entityKind);}
if(tmplInstance.callbackResult[1]){var checkBox=tmplInstance.callbackResult[1];this._addCheckBoxHandler(checkBox);}}
else{this._addDrugDrop(this._rowElement,this._dataItem.entityKind);}
if(this._dataItem.cssClass){this._rowElement.className=this._dataItem.cssClass;}
if(typeof(ctrlRightClickHandler)!='undefined'&&Tp.Atlas.Extenders&&Tp.Atlas.Extenders.RightClickPopup){$create(Tp.Atlas.Extenders.RightClickPopup.RightClickPopup,{id:get_globalID()+'_rcp',TargetElement:this._rowElement,'DataItem':this._dataItem},null,null,null);}
if(typeof(ctrlDetailsClickHandler)!='undefined'&&Tp.Atlas.Extenders&&Tp.Atlas.Extenders.DetailsClickPopup){$create(Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup,{id:get_globalID()+'_rcp',TargetElement:this._rowElement,'DataItem':this._dataItem},null,null,null);}}}},dispose:function(){if(this._rowBehavior){this._rowBehavior.dispose();this._rowBehavior=null;}
if(this._checkBoxHandler&&this._checkBox){$removeHandler(this._checkBox,'click',this._checkBoxHandler);this._checkBoxHandler=null;}
this._dataItem=null;},getList:function(){return this._list;},getData:function(){return this._dataItem;},setList:function(list){this._list=list;},edgeElement:function(){return this._edgeElement;},rowElement:function(){return this._rowElement;},hide:function(){if(this._rowElement){this._rowElement.style.display='none';}
this.hideEdge();},show:function(){if(this._rowElement){this._rowElement.style.display='';}},hideEdge:function(){if(this._edgeElement){this._edgeElement.style.display='none';}},showEdge:function(){if(this._edgeElement){this._edgeElement.style.display='';}},getPosition:function(){var pos=Sys.UI.DomElement.getLocation(this._rowElement);return pos;},_findItemCallback:function(instanceElement,markupContext,ids){var elements=[];for(var i=0;i<ids.length;i++){if(ids[i]){var element=markupContext.findElement(ids[i]);if(element)
Array.add(elements,markupContext.findElement(ids[i]));}}
return elements;},_addDrugDrop:function(element,entityKind){this._list._dragBehavior.registerElement(this,element,entityKind);},_addCheckBoxHandler:function(element){element.id=get_globalID();this._checkBox=element;this._checkBoxHandler=Function.createDelegate(this,this.checkBoxHandler);$addHandler(this._checkBox,'click',this._checkBoxHandler);},checkBoxHandler:function(){this.highlight(this.isChecked());},isChecked:function(){if(this._checkBox){return this._checkBox.checked;}
return false;},set_isChecked:function(value){if(this._checkBox){this._checkBox.checked=value?true:false;}},insertBefore:function(row){var rows=this._list.getRows();if(row==this){this.set_isChecked(false);this.highlight(false);return this;}
Array.remove(row.getList().getRows(),row);var documentFragment=document.createDocumentFragment();if(this.getList().projectName)
row.getData().projectName=this.getList().projectName;var newRow=new Tp.Atlas.TpListViewRow(this._list,row.getData(),this._list.get_itemTemplate(),this._list.get_edgeTemplate(),documentFragment);newRow.initialize();newRow.highlight(true);newRow.highlight(false);Array.insert(rows,Array.indexOf(rows,this),newRow);this.addVisual(newRow)
row.removeVisual();row.getList().insureEmptyRow();this._list.insureEmptyRow();row.dispose();return newRow;},addVisual:function(newRow){this._list.getItemsParent().insertBefore(newRow.edgeElement(),this._edgeElement);this._list.getItemsParent().insertBefore(newRow.rowElement(),this._edgeElement);},removeVisual:function(){this._list.getItemsParent().removeChild(this._edgeElement);this._list.getItemsParent().removeChild(this._rowElement);},highlight:function(value){if(!this._rowElement)return;if(value){if("#fffccc"==this._rowElement.style.backgroundColor)return;this._lastStyle=this._rowElement.style.backgroundColor;this._rowElement.style.backgroundColor="#fffccc";}
else{this._startTimeout();}},_onTimeout:function(){this._timeoutCookie=0;if(this.isChecked())return;this._rowElement.style.backgroundColor=this._lastStyle;},_startTimeout:function(){if(!this._timeoutCookie){if(!this._timeoutHandler){this._timeoutHandler=Function.createDelegate(this,this._onTimeout);}
this._timeoutCookie=window.setTimeout(this._timeoutHandler,500);}},riseDragEnd:function(){}}
Tp.Atlas.TpListViewRow.registerClass('Tp.Atlas.TpListViewRow',null,Sys.IDisposable);Sys.Application.notifyScriptLoaded();;
/*TpListViewSwitchEdge.js*/
Type.registerNamespace('Tp.Atlas');Tp.Atlas.TpListViewSwitchEdge=function(list)
{this._list=list;this._rows=list.getRows();this._closestRow=null;this._closestRow=null;this._stopTask=false;this._mousePosition=null;this._mousePositionChanged=false;}
Tp.Atlas.TpListViewSwitchEdge.prototype={dispose:function(){this._closestRow=null;this._mousePosition=null;this._closestRow=null;},stopTask:function()
{this._stopTask=true;},setMousePosition:function(mousePosition)
{this._mousePosition=mousePosition;this._mousePositionChanged=true;},getRow:function()
{return this._closestRow;},execute:function(){if(this._stopTask)
{if(this._closestRow)
{this._closestRow.hideEdge();}
return true;}
if(!this._mousePositionChanged)
{return false;}
else
{this._mousePositionChanged=false;}
if(this._rows.length==0)return false;var row=this._getClosestRow();if(this._closestRow!=row)
{this._closestRow.hideEdge();this._closestRow=row;this._closestRow.showEdge();}
return false;},_getClosestRow:function()
{if(!this._closestRow)
{this._closestRow=this._rows[0];this._closestRow.showEdge();}
var scrollOffset=this.getScrollOffset(document.body,true);var lookUp=this._mousePosition.y+scrollOffset.y-this._closestRow.getPosition().y<0;if(lookUp)
{return this._findAbove(this._closestRow);}
else
{return this._findBelow(this._closestRow);}},_findAbove:function(startRow)
{var rowsArr=this._rows;var index=Array.indexOf(this._rows,startRow);if(!this._mousePosition)
return startRow;var scrollOffset=this.getScrollOffset(document.body,true);var closestRow=rowsArr[index];var closestRowDelta=Math.abs(this._mousePosition.y+scrollOffset.y-closestRow.getPosition().y);var rowDelta;for(var i=index;i>=0;i--)
{rowDelta=Math.abs(this._mousePosition.y+scrollOffset.y-rowsArr[i].getPosition().y);if(rowDelta<=closestRowDelta)
{closestRow=rowsArr[i];closestRowDelta=rowDelta;}
else
{return closestRow;}}
return closestRow;},_findBelow:function(startRow)
{var rowsArr=this._rows;var index=Array.indexOf(this._rows,startRow);if(!this._mousePosition)
return startRow;var scrollOffset=this.getScrollOffset(document.body,true);var closestRow=rowsArr[index];var closestRowDelta=Math.abs(this._mousePosition.y+scrollOffset.y-closestRow.getPosition().y);var rowDelta;for(var i=index;i<rowsArr.length;i++)
{rowDelta=Math.abs(this._mousePosition.y+scrollOffset.y-rowsArr[i].getPosition().y);if(rowDelta<=closestRowDelta)
{closestRow=rowsArr[i];closestRowDelta=rowDelta;}
else
{return closestRow;}}
return closestRow;},getScrollOffset:function(element,recursive){var left=element.scrollLeft;var top=element.scrollTop;if(recursive){var parent=element.parentNode;while(parent!=null&&parent.scrollLeft!=null){left+=parent.scrollLeft;top+=parent.scrollTop;if(parent==document.body&&(left!=0&&top!=0))
break;parent=parent.parentNode;}}
return{x:left,y:top};}}
Tp.Atlas.TpListViewSwitchEdge.registerClass('Tp.Atlas.TpListViewSwitchEdge',null,Sys.Preview.ITask,Sys.IDisposable);Sys.Application.notifyScriptLoaded();;
/*DraggableCatalogItemBehavior.js*/
Type.registerNamespace('TpDragDropExtenders.DragDropCatalog');TpDragDropExtenders.DragDropCatalog.DraggableCatalogItemBehavior=function(){TpDragDropExtenders.DragDropCatalog.DraggableCatalogItemBehavior.initializeBase(this);var _handle;var _mouseDownHandler=Function.createDelegate(this,mouseDownHandler);var _argumentValue;var _typeValue;var _cssDraggingClass;var _targetControl;function mouseDownHandler(ev){window._event=ev;var el=this.get_TargetControl();if(this.checkCanDrag(ev.target)){ev.preventDefault();this._visual=el.cloneNode(true);this._visual.className=_cssDraggingClass;this._visual.style.width=el.offsetWidth+"px";this._visual.style.height=el.offsetHeight+"px";document.body.appendChild(this._visual);var location=Sys.UI.DomElement.getLocation(el);Sys.UI.DomElement.setLocation(this._visual,location.x,location.y);Sys.Preview.UI.DragDropManager.startDragDrop(this,this._visual,null);}}
this.get_CssDraggingClass=function(){return _cssDraggingClass;}
this.set_CssDraggingClass=function(value){_cssDraggingClass=value;}
this.get_TargetControl=function(){return _targetControl;}
this.set_TargetControl=function(value){_targetControl=value;}
this.get_Type=function(){return _typeValue;}
this.set_Type=function(value){_typeValue=value;}
this.get_Argument=function(){return _argumentValue;}
this.set_Argument=function(value){_argumentValue=value;}
this.get_handle=function(){return _handle;}
this.set_handle=function(value){if(_handle!=null){$removeHandler(_handle,"mousedown",_mouseDownHandler);}
_handle=value;$addHandler(_handle,"mousedown",_mouseDownHandler);}
this.initialize=function(){TpDragDropExtenders.DragDropCatalog.DraggableCatalogItemBehavior.callBaseMethod(this,'initialize');}
this.dispose=function(){if(_handle&&_mouseDownHandler)
$removeHandler(_handle,"mousedown",_mouseDownHandler);_mouseDownHandler=null;TpDragDropExtenders.DragDropCatalog.DraggableCatalogItemBehavior.callBaseMethod(this,'dispose');}
this.checkCanDrag=function(element){var undraggableTagNames=["input","button","select","textarea","label"];var tagName=element.tagName;if((tagName.toLowerCase()=="a")&&(element.href!=null)&&(element.href.length>0)){return false;}
if(Array.indexOf(undraggableTagNames,tagName.toLowerCase())>-1){return false;}
if(element.attributes["undraggable"]!=null)
return false;return true;}
this.get_dragDataType=function(){return _typeValue;}
this.get_dataType=function(){return _typeValue;}
this.get_data=function(){return _argumentValue;}
this.getDragData=function(context){return _argumentValue;}
this.get_dragMode=function(){return Sys.Preview.UI.DragMode.Copy;}
this.onDragEnd=function(canceled){if(this._visual!=null)
this._visual.parentNode.removeChild(this._visual);}
this.onDrag=function(){}
this.onDragStart=function(){}}
TpDragDropExtenders.DragDropCatalog.DraggableCatalogItemBehavior.registerClass('TpDragDropExtenders.DragDropCatalog.DraggableCatalogItemBehavior',Sys.Component);;
/*DropZoneCatalogItemBehavior.js*/
Type.registerNamespace('TpDragDropExtenders.DragDropCatalog');TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior=function(){TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior.initializeBase(this);this._postBackCodeValue='';this._cssClassNormalValue='';this._cssClassOverValue='';this._AcceptedTypes='';this._disposed=false;this.newPositionIndex=0;this._targetControl=null;}
TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior.prototype={initialize:function(){TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior.callBaseMethod(this,'initialize');this.get_dropTargetElement().className=this._cssClassNormalValue;Sys.Preview.UI.DragDropManager.registerDropTarget(this);},dispose:function(){if(this._disposed)return;this._disposed=true;if(Sys.Preview.UI.DragDropManager._getInstance()._dropTargets)
Sys.Preview.UI.DragDropManager.unregisterDropTarget(this);TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior.callBaseMethod(this,'dispose');},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},get_PostBackCode:function(){return this._postBackCodeValue;},set_PostBackCode:function(value){this._postBackCodeValue=value;},get_CssClassNormal:function(){return this._cssClassNormalValue;},set_CssClassNormal:function(value){this._cssClassNormalValue=value;},get_CssClassOver:function(){return this._cssClassOverValue;},set_CssClassOver:function(value){this._cssClassOverValue=value;},get_AcceptedTypes:function(){return this._AcceptedTypes;},set_AcceptedTypes:function(value){this._AcceptedTypes=value;},get_dropTargetElement:function(){return this._targetControl;},drop:function(dragMode,type,data){this.removeEdge();var dragElementID=this.getValueByKey("dragElementClientID",data);if(dragElementID!=""&&this.hasItems()){var element=this.get_dropTargetElement();for(index=0;index<element.childNodes.length;index++){var childElement=element.childNodes[index]
if(childElement.nodeType==3){childElement.parentNode.removeChild(childElement);continue;}
if(childElement.id==dragElementID&&(this.newPositionIndex==index||this.newPositionIndex==index+1)){element.className=this._cssClassNormalValue;return;}}}
var postBackString=this.get_PostBackCode();postBackString=postBackString.replace("None",data+",index:"+this.newPositionIndex);window.setTimeout(postBackString,0);},canDrop:function(dragMode,dataType){return this._AcceptedTypes.indexOf(dataType)>-1;},onDragEnterTarget:function(dragMode,type,data){this.highlightEdge();this.get_dropTargetElement().className=this._cssClassOverValue;},onDragLeaveTarget:function(dragMode,type,data){this.get_dropTargetElement().className=this._cssClassNormalValue;this.removeEdge();},onDragInTarget:function(dragMode,type,data){this.highlightEdge();},hasItems:function(){var element=this.get_dropTargetElement();if(element.childNodes.length==1&&element.childNodes[0].nodeType==3)
return false;return true;},highlightEdge:function(){this.removeEdge();var element=this.get_dropTargetElement();var x=window._event.clientX+document.documentElement.scrollLeft;var y=window._event.clientY+document.documentElement.scrollTop;if(!this.hasItems()){this.newPositionIndex=0;return;}
for(index=0;index<element.childNodes.length;index++){var elementChild=element.childNodes[index];if(elementChild.nodeType==3){elementChild.parentNode.removeChild(elementChild);continue;}
var elementXStart;var elementXEnd;var elementYStart;var elementYEnd;var formOffset=this.getFormOffsets(elementChild.id,index);if(formOffset==null){var prevoiusPosition=elementChild.style.position;elementChild.style.position="relative";elementXStart=elementChild.offsetLeft;elementXEnd=elementXStart+elementChild.offsetWidth;elementYStart=elementChild.offsetTop;elementYEnd=elementYStart+elementChild.offsetHeight;elementChild.style.position=prevoiusPosition;this.saveFormOffsets(elementChild.id,index,elementXStart,elementXEnd,elementYStart,elementYEnd);}
else{elementXStart=formOffset.startX;elementXEnd=formOffset.endX;elementYStart=formOffset.startY;elementYEnd=formOffset.endY;}
if(y>elementYStart&&y<elementYEnd&&x>elementXStart&&x<elementXEnd){var relativeOffsetY=y-elementYStart;var elementWidth=elementYEnd-elementYStart;var attitude=elementWidth/relativeOffsetY;if(attitude>2){element.insertBefore(this.createEdgeElement(),elementChild);this.newPositionIndex=index;}
else{element.insertBefore(this.createEdgeElement(),elementChild.nextSibling);this.newPositionIndex=index+1;}
break;}}},getValueByKey:function(key,strArray){var sIndex=strArray.indexOf(key);if(sIndex==-1)
return"";var eIndex=strArray.indexOf(",",sIndex)
return strArray.substr(sIndex+key.length+1,eIndex-sIndex-key.length-1);},saveFormOffsets:function(formId,index,startX,endX,startY,endY){if(this.offsets==null)
this.offsets=new Object();this.offsets[formId]=new Object();this.offsets[formId][index]=new Object();this.offsets[formId][index].startX=startX;this.offsets[formId][index].endX=endX;this.offsets[formId][index].startY=startY;this.offsets[formId][index].endY=endY;},getFormOffsets:function(formId,index){if(this.offsets==null)
return null;if(this.offsets[formId]==null)
return null;return this.offsets[formId][index];},createEdgeElement:function(){if(this.edgeElement!=null)
return this.edgeElement;this.edgeElement=document.createElement("div");this.edgeElement.isEdgeElement=true;var edgeElementHTML='<table style="width:100%"      cellpadding="0" cellspacing="0" ><tr>';edgeElementHTML+=' <td style="background-color:blue;width:3px;height:3px;font-size:1px"  >&nbsp;</td> ';edgeElementHTML+=' <td style="font-size:1px" >&nbsp;</td>';edgeElementHTML+=' <td style="background-color:blue;width:3px;height:3px;font-size:1px"  >&nbsp;</td></tr> ';edgeElementHTML+='  <tr><td style="background-color:blue;height:3px;font-size:1px"  colspan="3" >&nbsp;</td></tr>';edgeElementHTML+='  <tr><td style="background-color:blue;width:3px;height:3px;font-size:1px"  >&nbsp;</td>';edgeElementHTML+='  <td style="font-size:1px" >&nbsp;</td><td style="background-color:blue;width:3px;height:3px;font-size:1px"  >&nbsp;</td></tr></table>';this.edgeElement.innerHTML=edgeElementHTML;return this.edgeElement;},removeEdge:function(){var element=this.get_dropTargetElement();for(index=0;index<element.childNodes.length;index++){var elementChild=element.childNodes[index];if(elementChild.isEdgeElement)
elementChild.parentNode.removeChild(elementChild);}}}
TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior.registerClass('TpDragDropExtenders.DragDropCatalog.DropZoneCatalogItemBehavior',Sys.Component);;
/*CardLayout.js*/
Ext.namespace('Ext.ux.layout');Ext.ux.layout.CardLayout=Ext.extend(Ext.layout.CardLayout,{setActiveItem:function(item)
{item=this.container.getComponent(item);if(this.activeItem!=item){if(this.activeItem){this.activeItem.hide();}
if(this.activeItem&&!this.activeItem.hidden){return;}
this.activeItem=item;item.show();this.layout();}}});;
/*Wizard.js*/
Ext.namespace('Ext.ux');Ext.ux.Wiz=Ext.extend(Ext.Window,{loadMaskConfig:{'default':'Saving...'},height:400,width:540,closable:true,resizable:false,modal:true,cards:null,previousButtonText:'&lt; Previous',nextButtonText:'Next &gt;',cancelButtonText:'Cancel',finishButtonText:'Finish',headerConfig:{},cardPanelConfig:{},previousButton:null,nextButton:null,cancelButton:null,cardPanel:null,currentCard:-1,headPanel:null,cardCount:0,initComponent:function()
{this.initButtons();this.initPanels();var title=this.title||this.headerConfig.title;title=title||"";Ext.apply(this,{title:title,layout:'border',cardCount:this.cards.length,buttons:[this.previousButton,this.nextButton,this.cancelButton],items:[this.headPanel,this.cardPanel]});this.addEvents('cancel','finish');Ext.ux.Wiz.superclass.initComponent.call(this);},getWizardData:function()
{var formValues={};var cards=this.cards;for(var i=0,len=cards.length;i<len;i++){if(cards[i].form){formValues[cards[i].id]=cards[i].form.getValues(false);}else{formValues[cards[i].id]={};}}
return formValues;},switchDialogState:function(enabled,type)
{this.showLoadMask(!enabled,type);this.previousButton.setDisabled(!enabled);this.nextButton.setDisabled(!enabled);this.cancelButton.setDisabled(true);if(this.closable){var ct=this.tools['close'];switch(enabled){case true:this.tools['close'].unmask();break;default:this.tools['close'].mask();break;}}},showLoadMask:function(show,type)
{if(!type){type='default';}
if(show){if(this.loadMask==null){this.loadMask=new Ext.LoadMask(this.body);}
this.loadMask.msg=this.loadMaskConfig['type'];this.loadMask.show();}else{if(this.loadMask){this.loadMask.hide();}}},initEvents:function()
{Ext.ux.Wiz.superclass.initEvents.call(this);var cards=this.cards;for(var i=0,len=cards.length;i<len;i++){cards[i].on('show',this.onCardShow,this);cards[i].on('hide',this.onCardHide,this);cards[i].on('clientvalidation',this.onClientValidation,this);}},initPanels:function()
{var cards=this.cards;var cardPanelConfig=this.cardPanelConfig;Ext.apply(this.headerConfig,{steps:cards.length});this.headPanel=new Ext.ux.Wiz.Header(this.headerConfig);Ext.apply(cardPanelConfig,{layout:new Ext.ux.layout.CardLayout(),items:cards});Ext.applyIf(cardPanelConfig,{region:'center',border:false,activeItem:0});this.cardPanel=new Ext.Panel(cardPanelConfig);},initButtons:function()
{this.previousButton=new Ext.Button({text:this.previousButtonText,disabled:true,minWidth:75,handler:this.onPreviousClick,scope:this});this.nextButton=new Ext.Button({text:this.nextButtonText,minWidth:75,handler:this.onNextClick,scope:this});this.cancelButton=new Ext.Button({text:this.cancelButtonText,handler:this.onCancelClick,scope:this,minWidth:75});},onClientValidation:function(card,isValid)
{if(!isValid){this.nextButton.setDisabled(true);}else{this.nextButton.setDisabled(false);}},onCardHide:function(card)
{if(this.cardPanel.layout.activeItem.id===card.id){this.nextButton.setDisabled(true);}},onCardShow:function(card)
{var parent=card.ownerCt;var items=parent.items;for(var i=0,len=items.length;i<len;i++){if(items.get(i).id==card.id){break;}}
this.currentCard=i;this.headPanel.updateStep(i,card.title);if(i==len-1){this.nextButton.setText(this.finishButtonText);}else{this.nextButton.setText(this.nextButtonText);}
if(card.isValid()){this.nextButton.setDisabled(false);}
if(i==0){this.previousButton.setDisabled(true);}else{this.previousButton.setDisabled(false);}},onCancelClick:function()
{if(this.fireEvent('cancel',this)!==false){this.close();}},onFinish:function()
{if(this.fireEvent('finish',this,this.getWizardData())!==false){this.close();}},onPreviousClick:function()
{if(this.currentCard>0){this.cardPanel.getLayout().setActiveItem(this.currentCard-1);}},onNextClick:function()
{if(this.currentCard==this.cardCount-1){this.onFinish();}else{this.cardPanel.getLayout().setActiveItem(this.currentCard+1);}}});;
/*Header.js*/
Ext.namespace('Ext.ux.Wiz');Ext.ux.Wiz.Header=Ext.extend(Ext.BoxComponent,{height:55,region:'north',title:'Wizard',steps:0,stepText:"Step {0} of {1}: {2}",autoEl:{tag:'div',cls:'ext-ux-wiz-Header',children:[{tag:'div',cls:'ext-ux-wiz-Header-title'},{tag:'div',children:[{tag:'div',cls:'ext-ux-wiz-Header-step'},{tag:'div',cls:'ext-ux-wiz-Header-stepIndicator-container'}]}]},titleEl:null,stepEl:null,imageContainer:null,indicators:null,stepTemplate:null,lastActiveStep:-1,updateStep:function(currentStep,title)
{var html=this.stepTemplate.apply({0:currentStep+1,1:this.steps,2:title});this.stepEl.update(html);if(this.lastActiveStep!=-1){this.indicators[this.lastActiveStep].removeClass('ext-ux-wiz-Header-stepIndicator-active');}
this.indicators[currentStep].addClass('ext-ux-wiz-Header-stepIndicator-active');this.lastActiveStep=currentStep;},onRender:function(ct,position)
{Ext.ux.Wiz.Header.superclass.onRender.call(this,ct,position);this.indicators=[];this.stepTemplate=new Ext.Template(this.stepText),this.stepTemplate.compile();var el=this.el.dom.firstChild;var ns=el.nextSibling;this.titleEl=new Ext.Element(el);this.stepEl=new Ext.Element(ns.firstChild);this.imageContainer=new Ext.Element(ns.lastChild);this.titleEl.update(this.title);var image=null;for(var i=0,len=this.steps;i<len;i++){image=document.createElement('div');image.innerHTML="&#160;";image.className='ext-ux-wiz-Header-stepIndicator';this.indicators[i]=new Ext.Element(image);this.imageContainer.appendChild(image);}}});;
/*Card.js*/
Ext.namespace('Ext.ux.Wiz');Ext.ux.Wiz.Card=Ext.extend(Ext.FormPanel,{header:false,hideMode:'display',initComponent:function()
{this.addEvents('beforecardhide');Ext.ux.Wiz.Card.superclass.initComponent.call(this);},isValid:function()
{if(this.monitorValid){return this.bindHandler();}
return true;},bindHandler:function()
{if(!this.bound){return false;}
var valid=true;this.form.items.each(function(f){if(f.isValid&&!f.isValid(true)){valid=false;return false;}});if(this.buttons){for(var i=0,len=this.buttons.length;i<len;i++){var btn=this.buttons[i];if(btn.formBind===true&&btn.disabled===valid){btn.setDisabled(!valid);}}}
this.fireEvent('clientvalidation',this,valid);},initEvents:function()
{var old=this.monitorValid;this.monitorValid=false;Ext.ux.Wiz.Card.superclass.initEvents.call(this);this.monitorValid=old;this.on('beforehide',this.bubbleBeforeHideEvent,this);this.on('beforecardhide',this.isValid,this);this.on('show',this.onCardShow,this);this.on('hide',this.onCardHide,this);},bubbleBeforeHideEvent:function()
{var ly=this.ownerCt.layout;var activeItem=ly.activeItem;if(activeItem&&activeItem.id===this.id){return this.fireEvent('beforecardhide',this);}
return true;},onCardHide:function()
{if(this.monitorValid){this.stopMonitoring();}},onCardShow:function()
{if(this.monitorValid){this.startMonitoring();}}});;
/*UseCaseHelp.js*/
function ShowFlow()
{Ext.getBody().select('#flow').show(true);}
function FillShowDefaultActionCheckBox(value)
{var checkBox=new Ext.form.Checkbox({renderTo:'chkDefault',checked:value,boxLabel:"Show default action"});checkBox.on('check',function(){Help.SwitchShowDefaultAction();});}
function FillUseCaseDropDown(data,currentValue)
{var store=new Ext.data.SimpleStore
({fields:['Url','Title'],data:data});var combo=new Ext.form.ComboBox({store:store,displayField:'Title',valueField:'Url',typeAhead:true,mode:'local',width:200,triggerAction:'all',forceSelection:true,selectOnFocus:true,allowBlank:false,renderTo:'lstHelpUseCases'});combo.setValue(currentValue);combo.on('select',function(combo,record,index){document.location.href=record.data.Url;});Ext.getBody().select('#lstHelpUseCases').show();};
/*Extensions.js*/
Array.findOne=function(array,finderPredicate){for(var i=0;i<array.length;i++){if(finderPredicate(array[i])===true)
return array[i];}
return null;}
String.prototype.contains=function(str){return this.indexOf(str)!=-1;}
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');};String.prototype.isBlank=function(){if(this.trim().length==0)
return true;else
return false;};Date.prototype.toLocalDate=function(){var localTime=this.getTime();var localOffset=this.getTimezoneOffset()*60000;return new Date(localTime-localOffset);};Date.prototype.toUniversalDate=function(){var localTime=this.getTime();var localOffset=this.getTimezoneOffset()*60000;return new Date(localTime+localOffset);};;
/*Collections.js*/
Ext.ns('Tp.collections');Tp.collections.createMixedCollection=function(array){Tp.util.validateForNulls([array]);var collection=new Ext.util.MixedCollection();collection.addAll(array);return collection;};;
/*Util.js*/
Ext.ns('Tp.util');Tp.util.validateForNulls=function(args){for(var i=0;i<args.length;i++){if(args[i]==null){throw new Error(String.format('Argument is null. Caller: "{0}"',Tp.util.validateForNulls.caller.toString()));}}};Tp.util.clone=function(o){if(!o||'object'!==typeof o)
return o;var c='function'===typeof o.pop?[]:{};var p,v;for(p in o){if(o.hasOwnProperty(p)){v=o[p];if(v&&'object'===typeof v)
c[p]=Tp.util.clone(v);else
c[p]=v;}}
return c;};Ext.ns('Tp');Tp.NullObject=function(ot,overrides){var nullFunction=function(){return{};};var newType=nullFunction;var op=ot.prototype;var methods={};for(var p in op){if(typeof(op[p])=='function')
methods[p]=nullFunction;}
var type=function(){for(var f in methods){this[f]=methods[f];}
if(overrides){for(var f in overrides){this[f]=overrides[f];}}};return new type();};function nullToString(){return'';};
/*url.js*/
Ext.ns('Tp');Tp.UrlParameterCollection=Ext.extend(Object,{query:null,_parameters:null,constructor:function(query){this.query=query;var a=[];var b=this.query.split('&');var c='';if(b.length<1)return a;for(i=0;i<b.length;i++){c=b[i].split('=');if(c[0].length>0){a[i]=[c[0],((c.length==1)?c[0]:c[1])];}}
this._parameters=a;},get:function(key){var parameter=this._findParameter(key);if(parameter){return parameter[1];}},_findParameter:function(key){for(var i=0;i<this._parameters.length;i++){if(this._parameters[i][0]==key){return this._parameters[i];}}},set:function(key,value){var parameter=this._findParameter(key);if(parameter){parameter[1]=value;return;}
this._parameters.push([key,value]);},remove:function(key){for(var i=0;i<this._parameters.length;i++){if(this._parameters[i][0]==key){this._parameters.splice(i,1);}}},toString:function(){if(this._parameters.length==0){return'';}
var query='?';for(var i=0;i<this._parameters.length;i++){if(i>0)
query+='&';query+=this._parameters[i][0]+'='+this._parameters[i][1];}
return query;}});Tp.URL=Ext.extend(Object,{constructor:function(url){if(url.length==0)eval('throw "Invalid URL ['+url+'];');this.url=url;this.port=-1;this.query=(this.url.indexOf('?')>=0)?this.url.substring(this.url.indexOf('?')+1):'';if(this.query.indexOf('#')>=0)this.query=this.query.substring(0,this.query.indexOf('#'));this.protocol='';this.host='';this.protocolSep='';this.portSep='';var protocolSepIndex=this.url.indexOf('://');if(protocolSepIndex>=0){this.protocolSep='://';this.protocol=this.url.substring(0,protocolSepIndex).toLowerCase();this.host=this.url.substring(protocolSepIndex+3);if(this.host.indexOf('/')>=0)this.host=this.host.substring(0,this.host.indexOf('/'));var atIndex=this.host.indexOf('@');if(atIndex>=0){var credentials=this.host.substring(0,atIndex);var colonIndex=credentials.indexOf(':');if(colonIndex>=0){this.username=credentials.substring(0,colonIndex);this.password=credentials.substring(colonIndex);}else{this.username=credentials;}
this.host=this.host.substring(atIndex+1);}
var portColonIndex=this.host.indexOf(':');if(portColonIndex>=0){this.portSep=':';this.port=this.host.substring(portColonIndex);this.host=this.host.substring(0,portColonIndex);}
this.file=this.url.substring(protocolSepIndex+3);this.file=this.file.substring(this.file.indexOf('/'));}else{this.file=this.url;}
if(this.file.indexOf('?')>=0)this.file=this.file.substring(0,this.file.indexOf('?'));var refSepIndex=url.indexOf('#');if(refSepIndex>=0){this.file=this.file.substring(0,refSepIndex);this.reference=this.url.substring(this.url.indexOf('#'));}else{this.reference='';}
this.path=this.file;if(this.query.length>0)this.file+='?'+this.query;if(this.reference.length>0)this.file+='#'+this.reference;this._parameters=new Tp.UrlParameterCollection(this.query);},getPort:function(){return this.port;},getQuery:function(){return this._parameters.toString();},getProtocol:function(){return this.protocol;},getHost:function(){return this.host;},getUserName:function(){return this.username;},getPassword:function(){return this.password;},getFile:function(){return this.file;},getReference:function(){return this.reference;},getPath:function(){return this.path;},getAcid:function(){return this.getArgumentValue('acid');},setAcid:function(value){this.setArgumentValue('acid',value);},setArgumentValue:function(key,value){this._parameters.set(key,value);},removeArgument:function(key){this._parameters.remove(key);},getArgumentValue:function(key){return this._parameters.get(key);},toString:function(){var segments=[this.getProtocol(),this.protocolSep,this.getHost(),this.getPort(),this.getPath(),this.getQuery()];var _url='';Ext.each(segments,function(){if(this&&this!=-1)_url+=this;});return _url;}});Tp.WebServiceURL=Ext.extend(Tp.URL,{constructor:function(url){Tp.WebServiceURL.superclass.constructor.call(this,appHostAndPath+url);},toString:function(){var acid=new Tp.URL(document.location.href).getAcid();this.setAcid(acid);return Tp.WebServiceURL.superclass.toString.call(this);}});;
/*Tp.util.Notifier.js*/
Ext.ns('Tp.util');Tp.util.Notifier=function(){var msgCt;function createBox(t,s,cls){return['<div class="msg">','<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>','<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">','<h3 class="',cls,'">',t,'</h3>','<span class="',cls,'">',s,'</span>','</div></div></div>','<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>','</div>'].join('');}
function doNotify(title,format,cls,pause){if(!msgCt){msgCt=Ext.DomHelper.insertFirst(document.body,{id:'notifier'},true);}
msgCt.alignTo(document,'t-t');var s=String.format.apply(String,Array.prototype.slice.call(arguments,1));var m=Ext.DomHelper.append(msgCt,{html:createBox(title,s,cls)},true);m.slideIn('t').pause(pause).ghost("t",{remove:true});}
return{notify:function(title,format){doNotify(title,format,'message',0.5);},error:function(title,format){doNotify(title,format,'error',5);}};}();;
/*ToolTip.js*/
Ext.ns('UseCaseHelp');UseCaseHelp.ToolTip=Ext.extend(Ext.ToolTip,{constructor:function(config){UseCaseHelp.ToolTip.superclass.constructor.apply(this,arguments);this.autoHide=false;this.closable=true;this.draggable=false;this.targetXY=[0,0];this.layoutHandler=null;},showHelp:function(){this.layoutHandler=UseCaseHelp.ToolTipLayout.getInstance(this);this.layoutHandler.show();},onTargetOver:function(){},onHide:function(){UseCaseHelp.ToolTip.superclass.onHide.call(this);this.disposeLayoutHandler();},disposeLayoutHandler:function(){if(this.layoutHandler)
this.layoutHandler.dispose();}});;
/*ToolTipItem.js*/
UseCaseHelp.ToolTipItem=Ext.extend(Ext.Component,{constructor:function(config){UseCaseHelp.ToolTipItem.superclass.constructor.apply(this,arguments);if(this.initialConfig.Selector==null||this.initialConfig.Selector=="")
throw"UseCaseHelp.ToolTipItem: Selector is null or empty.";if(this.initialConfig.ArrowUpID==null||this.initialConfig.ArrowUpID=="")
throw"UseCaseHelp.ToolTipItem: arrowUpID is null or empty.";if(this.initialConfig.ArrowDownID==null||this.initialConfig.ArrowDownID=="")
throw"UseCaseHelp.ToolTipItem: arrowDownID is null or empty.";if(!this.isTargetElementExist())
throw"UseCaseHelp.ToolTipItem: target element does not exist.";this.target=Ext.get(this.initialConfig.TargetID);this.target.on('click',this.onTargetClick,this);this.arrowUpId=this.initialConfig.ArrowUpID;this.arrowDownId=this.initialConfig.ArrowDownID;this.title=this.initialConfig.Title;this.description=this.initialConfig.Description;this.alternativeDescription=this.initialConfig.AlternativeDescription;this.helpElementSelector=this.Selector;UseCaseHelp.ToolTipItemManagerFactory.getInstance().register(this);},onTargetClick:function(){this.showToolTip();},onToolTipHide:function(){this.target.applyStyles("font-weight:normal;");},onToolTipShow:function(){this.target.applyStyles("font-weight:bold;");},isTargetElementExist:function(){return(Ext.get(this.initialConfig.TargetID)==null)?false:true;},showToolTip:function(){if(!this.isTargetElementExist()){this.destroyActiveTooltip();return;}
var toolTip=new UseCaseHelp.ToolTip(this.collectToolTipParams());this.signForEvents(toolTip);this.onBeforeShowToolTip(toolTip);toolTip.showHelp();this.onAfterShowToolTip(toolTip);},destroyActiveTooltip:function(){if(UseCaseHelp.ToolTipItem.activeToolTip)
UseCaseHelp.ToolTipItem.activeToolTip.destroy();},onBeforeShowToolTip:function(toolTip){this.destroyActiveTooltip();},onAfterShowToolTip:function(toolTip){UseCaseHelp.ToolTipItem.activeToolTip=toolTip;},signForEvents:function(toolTip){toolTip.on('show',this.onToolTipShow,this);toolTip.on('beforedestroy',this.onToolTipHide,this);},collectToolTipParams:function(){var helpContext=this.getHelpContext();var params=new Object();params.html=helpContext.htmlDescription;params.target=helpContext.helpElement;params.title=this.title;params.arrowUpId=this.arrowUpId;params.arrowDownId=this.arrowDownId;return params;},getHelpContext:function(){var element=this.findElement(this.helpElementSelector);var helpElement;var htmlDescription;if(element){helpElement=element;htmlDescription=Ext.util.Format.htmlDecode(this.description);}
else{helpElement=this.target;htmlDescription=Ext.util.Format.htmlDecode(this.alternativeDescription);}
htmlDescription+=this.getNextPrevHtml();var result=new Object();result.helpElement=helpElement;result.htmlDescription=htmlDescription;return result;},getNextPrevHtml:function(){var nextId=UseCaseHelp.ToolTipItemManagerFactory.getInstance().getNextToolTipItemId(this.id);var prevId=UseCaseHelp.ToolTipItemManagerFactory.getInstance().getPrevToolTipItemId(this.id);var html="<div style='text-align:right;'>&lt;&nbsp;"
if(prevId)
html+="<a href='javascript:Ext.ComponentMgr.get(\""+prevId+"\").showToolTip();'>"
else
html+="<a href='#' style='color:grey;text-decoration:none'  onclick='return false;' disabled='true' >";html+="prev</a>&nbsp;|&nbsp;";if(nextId)
html+="<a href='javascript:Ext.ComponentMgr.get(\""+nextId+"\").showToolTip();'>"
else
html+="<a href='#' style='color:grey;text-decoration:none' onclick='return false;' disabled='true' >";html+="next</a>";html+="&nbsp;&gt;&nbsp;</div>";return html;},findElement:function(selector){var result=Ext.query(selector);if(result.length==0)
return null;if(!Ext.get(result[0]).isVisible)
return null;return Ext.get(result[0]);}});
/*ToolTipLayout.js*/
Ext.ns('UseCaseHelp.ToolTipLayout');UseCaseHelp.ToolTipLayout.getInstance=function(tooltip)
{tooltip.show();var layoutHandler;var toolTipHeightWithArrow=tooltip.getEl().getHeight()+UseCaseHelp.ImageHelper.getInstance().getImageHeight(tooltip.arrowUpId);if(tooltip.target.getXY()[1]<toolTipHeightWithArrow)
{layoutHandler=new UseCaseHelp.ToolTipLayout.ArrowUpStrategy();layoutHandler.initialize(tooltip,tooltip.arrowUpId);}
else
{layoutHandler=new UseCaseHelp.ToolTipLayout.ArrowDownStrategy();layoutHandler.initialize(tooltip,tooltip.arrowDownId);}
tooltip.hide();return layoutHandler;}
UseCaseHelp.ToolTipLayout.Strategy=Ext.extend(Object,{roundCornerFault:6,tooltipX:0,tooltipY:0,arrowX:0,arrowY:0,tooltip:null,arrowOffsetHeight:null,arrowOffsetWidth:null,helpElementOffsetHeight:0,scrollX:0,scrollY:0,initialize:function(tooltip,arrowId)
{this.arrowId=arrowId;this.tooltip=tooltip;this.tooltipOffsetHeight=this.tooltip.getEl().getHeight();this.tooltipOffsetWidth=this.tooltip.getEl().getWidth();this.arrowOffsetHeight=UseCaseHelp.ImageHelper.getInstance().getImageHeight(this.arrowId);this.arrowOffsetWidth=UseCaseHelp.ImageHelper.getInstance().getImageWidth(this.arrowId);this.helpElementOffsetHeight=this.tooltip.target.getHeight();this.helpElementXY=this.tooltip.target.getXY();this.initializeToolTipOffset();this.initializeArrowOffset();this.initializeScrolling();},adjustScrolling:function(elementX,elementY){var scrollTop=Ext.getBody().getScroll().top;var scrollLeft=Ext.getBody().getScroll().left;if(elementX<scrollLeft||elementY<scrollTop)
window.scrollTo(elementX,elementY);},show:function()
{this.adjustScrolling(this.scrollX,this.scrollY);this.tooltip.showAt([this.tooltipX,this.tooltipY]);UseCaseHelp.ImageHelper.getInstance().showImage(this.arrowId,[this.arrowX,this.arrowY]);},dispose:function()
{UseCaseHelp.ImageHelper.getInstance().hideImage(this.arrowId);}})
UseCaseHelp.ToolTipLayout.ArrowDownStrategy=Ext.extend(UseCaseHelp.ToolTipLayout.Strategy,{initializeToolTipOffset:function()
{if(document.body.offsetWidth<this.helpElementXY[0]+this.tooltipOffsetWidth)
this.tooltipX=this.helpElementXY[0]+this.roundCornerFault-this.tooltipOffsetWidth+this.arrowOffsetWidth;else
this.tooltipX=this.helpElementXY[0]-this.roundCornerFault;this.tooltipY=this.helpElementXY[1]-(this.tooltipOffsetHeight+this.arrowOffsetHeight);},initializeArrowOffset:function()
{this.arrowX=this.helpElementXY[0];this.arrowY=this.helpElementXY[1]-this.arrowOffsetHeight;this.arrowY-=1;},initializeScrolling:function()
{this.scrollX=this.tooltipX;this.scrollY=this.tooltipY;}})
UseCaseHelp.ToolTipLayout.ArrowUpStrategy=Ext.extend(UseCaseHelp.ToolTipLayout.Strategy,{initializeToolTipOffset:function()
{this.tooltipX=this.helpElementXY[0];if(document.body.offsetWidth<this.tooltipX+this.tooltipOffsetWidth)
this.tooltipX=this.helpElementXY[0]+this.roundCornerFault-this.tooltipOffsetWidth+this.arrowOffsetWidth;else
this.tooltipX=this.helpElementXY[0]-this.roundCornerFault;this.tooltipY=this.helpElementXY[1]+this.helpElementOffsetHeight+this.arrowOffsetHeight;},initializeArrowOffset:function()
{this.arrowX=this.helpElementXY[0];this.arrowY=this.helpElementXY[1]+this.helpElementOffsetHeight;this.arrowY+=1;},initializeScrolling:function()
{this.scrollX=this.helpElementXY[0];this.scrollY=this.helpElementXY[1];}});
/*ImageHelper.js*/
Ext.ns('UseCaseHelp.ImageHelper');UseCaseHelp.ImageHelper=Ext.extend(Object,{isImageExist:function(id){return(Ext.fly(id)==null)?false:true;},showImage:function(id,xy){if(!this.isImageExist(id))
return;var imageElement=new Ext.Element(id);imageElement.applyStyles("display:block;")
imageElement.position("absolute",100000,xy[0],xy[1]);},hideImage:function(id){if(!this.isImageExist(id))
return;new Ext.Element(id).applyStyles("display:none;")},getImageWidth:function(id){if(!this.isImageExist(id))
return;var imageElement=new Ext.Element(id);imageElement.applyStyles("display:block;")
var width=imageElement.getWidth();imageElement.applyStyles("display:none;")
return width;},getImageWidth:function(id){if(!this.isImageExist(id))
return;var imageElement=new Ext.Element(id);imageElement.applyStyles("display:block;")
var width=imageElement.getWidth();imageElement.applyStyles("display:none;")
return width;},getImageHeight:function(id){if(!this.isImageExist(id))
return;var imageElement=new Ext.Element(id);imageElement.applyStyles("display:block;")
var width=imageElement.getHeight();imageElement.applyStyles("display:none;")
return width;}})
UseCaseHelp.ImageHelper.getInstance=function(){if(UseCaseHelp.ImageHelper.instance==null)
UseCaseHelp.ImageHelper.instance=new UseCaseHelp.ImageHelper();return UseCaseHelp.ImageHelper.instance;};
/*ToolTipItemManager.js*/
Ext.ns('UseCaseHelp.ToolTipItemManager');UseCaseHelp.ToolTipItemManager.defaultItem=null;UseCaseHelp.ToolTipItemManager=Ext.extend(Object,{getItemIndex:function(componentId){for(var i=0;i<this.items.length;i++){if(this.items[i].id==componentId)
return i;}
throw"UseCaseHelp.ToolTipItemManager.getItemIndex: Unable to find item index.";},getNextToolTipItemId:function(componentId){if(!this.items)
return null;var index=this.getItemIndex(componentId);if(index>=this.items.length-1)
return null;return this.items[index+1].id;},getPrevToolTipItemId:function(componentId){if(!this.items)
return null;var index=this.getItemIndex(componentId);if(index<=0)
return null;return this.items[index-1].id;},register:function(item){if(!this.items)
this.items=new Array();this.items.push(item);}})
UseCaseHelp.ShowDefaultToolTipItemManager=Ext.extend(UseCaseHelp.ToolTipItemManager,{register:function(item){UseCaseHelp.ShowDefaultToolTipItemManager.superclass.register.call(this,item);if(this.items.length<=2)
this.items[0].showToolTip();}})
Ext.ns('UseCaseHelp.ToolTipItemManagerFactory');UseCaseHelp.ToolTipItemManagerFactory.Type="UseCaseHelp.ToolTipItemManager";UseCaseHelp.ToolTipItemManagerFactory.getInstance=function(){if(UseCaseHelp.ToolTipItemManagerFactory.instance==null)
UseCaseHelp.ToolTipItemManagerFactory.instance=eval("new "+UseCaseHelp.ToolTipItemManagerFactory.Type);return UseCaseHelp.ToolTipItemManagerFactory.instance;};
/*BooleanField.js*/
Ext.ns('Tp.controls');Tp.controls.BooleanField=Ext.extend(Ext.form.ComboBox,{constructor:function(config){Tp.util.validateForNulls([config]);config.disableKeyFilter=true;config.editable=false;config.store=[[true,"Yes"],[false,"No"]];config.mode="local";config.allQuery=null;config.triggerAction="all";Tp.controls.BooleanField.superclass.constructor.call(this,config);}});Ext.reg('tpbooleanfield',Tp.controls.BooleanField);;
/*BlockCollapser.js*/
Ext.ns('Tp.controls');Tp.controls.BlockCollpaser=Ext.extend(Object,{imageElement:null,containerElement:null,constructor:function(imageElement,containerElement){this.imageElement=imageElement;this.containerElement=containerElement;this.containerElement.setVisibilityMode(Ext.Element.DISPLAY);this.imageElement.on("click",Function.createDelegate(this,this.onShowProjectItemsDiv));},onShowProjectItemsDiv:function(e,target)
{if(this.containerElement.isVisible())
{this.imageElement.dom.src=this.imageElement.dom.src.replace("minus.gif","plus.gif");this.containerElement.hide();}
else
{this.imageElement.dom.src=this.imageElement.dom.src.replace("plus.gif","minus.gif");this.containerElement.show();}}});;
/*Checkbox.js*/
Ext.ns('Tp.controls');Tp.controls.CheckBox=Ext.extend(Ext.form.Checkbox,{getValue:function(){if(this.rendered){return this.el.dom.checked;}
return this.checked;}});Ext.reg('tpcheckbox',Tp.controls.CheckBox);;
/*SelectBox.js*/
Ext.ns('Tp.controls');Tp.controls.SelectBox=Ext.extend(Ext.form.ComboBox,{constructor:function(config){Tp.controls.SelectBox.superclass.constructor.call(this,config);if(this.insertEmptyOption)
this.createEmptyOption();},createEmptyOption:function(){if(this.emptyText==null)
return;if(this.emptyText.length==0)
return;var data=new Object();data[this.displayField]=this.emptyText;data[this.valueField]=null;var record=new Ext.data.Record(data,Tp.controls.SelectBox.EmptyID);this.store.insert(0,record);}});Tp.controls.SelectBox.EmptyID=0;Ext.reg('tpselectbox',Tp.controls.SelectBox);;
/*TextField.js*/
Tp.controls.TextField=Ext.extend(Ext.form.TextField,{constructor:function(config){if(config.maxLength){var autoCreate=Ext.apply({},this.defaultAutoCreate||config.autoCreate);Ext.apply(autoCreate,{maxlength:config.maxLength});Ext.apply(config,{autoCreate:autoCreate});}
Tp.controls.TextField.superclass.constructor.call(this,config);},beforeBlur:function(){var v=this.getRawValue();Tp.controls.TextField.superclass.setValue.call(this,v.trim());}});Ext.reg('tptextfield',Tp.controls.TextField);;
/*TableDnd.js*/
Ext.ns("Tp.controls");Tp.controls.TableDnd=Ext.extend(Object,{currentTable:null,dragObject:null,mouseOffset:null,oldY:0,constructor:function(options){options=options||{};if(options.tableId==null){throw"tableId"}
var tableEl=Ext.get(options.tableId);if(tableEl==null){return;}
var table=tableEl.dom;table.tableDnDConfig={onDragStyle:options.onDragStyle,onDropStyle:options.onDropStyle,onDragClass:options.onDragClass?options.onDragClass:"tDnD_whileDrag",onDrop:options.onDrop,requiredAttribute:options.requiredAttribute,onDragStart:options.onDragStart,scrollAmount:options.scrollAmount?options.scrollAmount:5};Tp.controls.TableDnd.makeDraggable(table);Ext.getBody().on('mousemove',Tp.controls.TableDnd.mousemove);Ext.getBody().on('mouseup',Tp.controls.TableDnd.mouseup);}});Tp.controls.TableDnd.makeDraggable=function(table){var rows=table.rows;var config=table.tableDnDConfig;for(var i=0;i<rows.length;i++){var nodrag=rows[i].getAttribute("NoDrag");var requiredAttribute=config.requiredAttribute;var isRequiredAttributeDefined=true;if(requiredAttribute!=null&&requiredAttribute!='undefined')
isRequiredAttributeDefined=rows[i].getAttribute(requiredAttribute)!=null;if((nodrag==null||nodrag=="undefined")&&isRequiredAttributeDefined){var row=Ext.get(rows[i]);row.on('mousedown',function(ev){if(ev.target.tagName=="TD"){Tp.controls.TableDnd.dragObject=this.dom;Tp.controls.TableDnd.currentTable=table;Tp.controls.TableDnd.mouseOffset=Tp.controls.TableDnd.getMouseOffset(this,ev);if(config.onDragStart){config.onDragStart(table,this.dom);}
return false;}});row.setStyle('cursor','move');if(typeof row.dom.onselectstart!="undefined")
row.dom.onselectstart=function(){return false}
else if(typeof row.dom.style.MozUserSelect!="undefined")
row.dom.style.MozUserSelect="none";}}}
Tp.controls.TableDnd.mousemove=function(ev){if(Tp.controls.TableDnd.dragObject==null){return;}
var dragObj=Ext.get(Tp.controls.TableDnd.dragObject);var config=Tp.controls.TableDnd.currentTable.tableDnDConfig;var mousePos=Tp.controls.TableDnd.mouseCoords(ev);var y=mousePos.y-Tp.controls.TableDnd.mouseOffset.y;var yOffset=window.pageYOffset;if(document.all){yOffset=document.body.scrollTop;}
if(mousePos.y-yOffset<config.scrollAmount){window.scrollBy(0,-config.scrollAmount);}else{var windowHeight=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight;if(windowHeight-(mousePos.y-yOffset)<5){window.scrollBy(0,5);}}
if(y!=Tp.controls.TableDnd.oldY){var movingDown=y>Tp.controls.TableDnd.oldY;Tp.controls.TableDnd.oldY=y;if(config.onDragClass){dragObj.addClass(config.onDragClass);}else{dragObj.css(config.onDragStyle);}
var currentRow=Tp.controls.TableDnd.findDropTargetRow(y);var rows=Tp.controls.TableDnd.currentTable.rows;if(currentRow){if(movingDown&&Tp.controls.TableDnd.dragObject!=currentRow){Tp.controls.TableDnd.dragObject.parentNode.insertBefore(Tp.controls.TableDnd.dragObject,currentRow.nextSibling);}else if(!movingDown&&Tp.controls.TableDnd.dragObject!=currentRow){Tp.controls.TableDnd.dragObject.parentNode.insertBefore(Tp.controls.TableDnd.dragObject,currentRow);}}}
return false;}
Tp.controls.TableDnd.mouseup=function(e){if(Tp.controls.TableDnd.currentTable&&Tp.controls.TableDnd.dragObject){var droppedRow=Tp.controls.TableDnd.dragObject;var config=Tp.controls.TableDnd.currentTable.tableDnDConfig;if(config.onDragClass){Ext.fly(droppedRow).removeClass(config.onDragClass);}else{Ext.fly(droppedRow).css(config.onDropStyle);}
Tp.controls.TableDnd.dragObject=null;if(config.onDrop){config.onDrop(Tp.controls.TableDnd.currentTable,droppedRow);}
Tp.controls.TableDnd.currentTable=null;}}
Tp.controls.TableDnd.getMouseOffset=function(target,ev){ev=ev||window.event;var docPos=Tp.controls.TableDnd.getPosition(target.dom);var mousePos=Tp.controls.TableDnd.mouseCoords(ev);return{x:mousePos.x-docPos.x,y:mousePos.y-docPos.y};}
Tp.controls.TableDnd.getPosition=function(e){var left=0;var top=0;if(e.offsetHeight==0){e=e.firstChild;}
while(e.offsetParent){left+=e.offsetLeft;top+=e.offsetTop;e=e.offsetParent;}
left+=e.offsetLeft;top+=e.offsetTop;return{x:left,y:top};}
Tp.controls.TableDnd.mouseCoords=function(ev){return{x:ev.getPageX()+document.body.scrollLeft-document.body.clientLeft,y:ev.getPageY()+document.body.scrollTop-document.body.clientTop};}
Tp.controls.TableDnd.findDropTargetRow=function(y){var rows=Tp.controls.TableDnd.currentTable.rows;for(var i=0;i<rows.length;i++){var row=rows[i];var nodrop=row.getAttribute("NoDrop");if(nodrop==null||nodrop=="undefined"){var rowY=this.getPosition(row).y;var rowHeight=parseInt(row.offsetHeight)/2;if(row.offsetHeight==0){rowY=Tp.controls.TableDnd.getPosition(row.firstChild).y;rowHeight=parseInt(row.firstChild.offsetHeight)/2;}
if((y>rowY-rowHeight)&&(y<(rowY+rowHeight))){return row;}}}
return null;};
/*Prioritization.js*/
Ext.ns('Tp.controls');Tp.controls.Prioritization=Ext.extend(Object,{constructor:function(tableId,rowAttribute,postBackID,postBackRef,dropRowLast){var initialRowIndex;function replaceLastRowByIndex(table,index){var tbody=table.getElementsByTagName("TBODY")[0];var rows=new Array();while(table.rows.length!=0){rows.push(tbody.removeChild(table.rows[0]));}
for(var i=0;i<rows.length-1;i++){if(i==index)
tbody.appendChild(rows[rows.length-1]);tbody.appendChild(rows[i]);}}
var config={requiredAttribute:rowAttribute,onDragStart:function(table,row){initialRowIndex=row.rowIndex;},onDrop:function(table,row){if(!row.attributes[rowAttribute])
return;if(initialRowIndex==row.rowIndex)
return;if(!dropRowLast&&row.rowIndex==table.rows.length-1){replaceLastRowByIndex(table,initialRowIndex);return;}
var previousId=0;var nextId=0;var params='';var currentProjectId=row.attributes[rowAttribute].value;for(var i=0;i<table.rows.length;i++){if(table.rows[i].attributes[rowAttribute]){if(table[row.rowIndex]==row)
return;var projectId=table.rows[i].attributes[rowAttribute].value;if(projectId==currentProjectId){if(i>1&&table.rows[i-1].attributes[rowAttribute])
previousId=table.rows[i-1].attributes[rowAttribute].value;if(i<table.rows.length-1&&table.rows[i+1].attributes[rowAttribute])
nextId=table.rows[i+1].attributes[rowAttribute].value;break;}}}
if(postBackRef){var order=[previousId,currentProjectId,nextId];postBackRef(order);}
else{var params='REORDER:['+previousId+','+currentProjectId+','+nextId+']';__doPostBack(postBackID,params);}}};config.tableId=tableId;Tp.controls.TableDnd(config);}});;
/*RichTextField.js*/
Tp.controls.RichTextField=Ext.extend(Ext.form.HtmlEditor,{appended:false,okIdHolder:"bottomBarRicheditHolderOk",cancelIdHolder:"bottomBarRicheditHolderCancel",constructor:function(config){Tp.util.validateForNulls([config]);config.enableAlignments=false;config.enableColors=false;config.enableFont=false;config.enableFontSize=false;Tp.controls.RichTextField.superclass.constructor.call(this,config);this.on("beforeshow",this.onShowEditor,this);},createNonExtJsButton:function(text,handler,elementContext){var template="<table class='x-btn-wrap x-btn' cellspacing='0' cellpadding='0' border='0' style='width: auto;'><tbody><tr>"
+"<td class='x-btn-left'> </td>"
+"<td class='x-btn-center'><em unselectable='on'><button class='x-btn-text' type='button'>{0}</button></em></td>"
+"<td class='x-btn-right'></td>"
+"</tr></tbody></table>";Ext.DomHelper.insertHtml('beforeEnd',elementContext,String.format(template,text)).onclick=handler;},setValue:function(v){var value=v.replace(/src=[']~\//i,"src='"+appHostAndPath+"/").replace(/src=["]~\//i,"<img src=\""+appHostAndPath+"/");Ext.form.HtmlEditor.prototype.setValue.call(this,value);},createToolbarFrame:function(){var editorWrap=this.getEl().parent();var htmlBottomStr=String.format("<div class='x-toolbar'><center><table><tr><td id='{0}' ></td><td id='{1}' ></td></tr></table></center></div>",this.okIdHolder,this.cancelIdHolder);Ext.DomHelper.insertHtml('beforeEnd',editorWrap.dom,htmlBottomStr);},makeEditorFrameTopElement:function(){var editorFrame=this.getEl().parent().parent();document.body.appendChild(editorFrame.dom);},onShowEditor:function(){if(this.appended)
return;this.getToolbar().enable();this.makeEditorFrameTopElement();this.createToolbarFrame();this.createNonExtJsButton("Ok",this.onOkClick.createDelegate(),Ext.fly(this.okIdHolder).dom);this.createNonExtJsButton("Cancel",this.onCancelClick.createDelegate(),Ext.fly(this.cancelIdHolder).dom);this.appended=true;},onOkClick:function(){Tp.controls.grid.CurrentEditableItem.getInstance().grid.stopEditing();},onCancelClick:function(){Tp.controls.grid.CurrentEditableItem.getInstance().grid.stopEditing(true);}});Ext.reg('tprichtextfield',Tp.controls.RichTextField);;
/*UrlField.js*/
Tp.controls.UrlField=Ext.extend(Ext.form.TextField,{label:null,constructor:function(config){Tp.util.validateForNulls([config]);Tp.controls.UrlField.superclass.constructor.call(this,config);this.validator=this.validateUrl;},validateUrl:function(value){var v=new RegExp();v.compile("^[A-Za-z]+://[A-Za-z0-9-_.]+(/)?(/[A-Za-z0-9-_%&\?\/.=#]+)?$");return v.test(value);},getValue:function(){var v=Tp.controls.UrlField.superclass.getValue.call(this);if(v&&v!="http://"){if(this.label){return this.label+"\n"+v.trim();}else{return v.trim();}}else{return null;}},setValue:function(v){var label=null;var url=null;if(v){var s=v.split("\n");if(s.length==2){label=s[0];url=s[1];}else{url=v;}}else{url="http://";}
if(label==url){label=null;}
this.label=label;Tp.controls.UrlField.superclass.setValue.call(this,url);},beforeBlur:function(){var v=this.getRawValue();if(v=="http://"){this.label=null;Tp.controls.UrlField.superclass.setValue.call(this,null);}}});Ext.reg('tpurlfield',Tp.controls.UrlField);;
/*CommentManager.js*/
Ext.ns('Tp.controls');Tp.controls.CommentManager=Ext.extend(Object,{richeditorDiv:null,newcommentDiv:null,saveButton:null,cancelButton:null,commentIdStateHolder:null,richEditField:null,currentCommentDiv:null,currentContent:null,currentCommentId:null,txtCommentContentClientID:null,hiddenCommentId:null,richEditId:null,newCommentId:null,cancelId:null,constructor:function(txtCommentContentClientID,hiddenCommentId,richEditId,newCommentId,okId,cancelId){Tp.util.validateForNulls([txtCommentContentClientID,hiddenCommentId,richEditId,newCommentId,cancelId]);this.txtCommentContentClientID=txtCommentContentClientID;this.hiddenCommentId=hiddenCommentId;this.richEditId=richEditId;this.newCommentId=newCommentId;this.cancelId=cancelId;Ext.get(okId).on({'mousedown':this.sync,'keydown':this.sync,scope:this});},destroy:function(){if(this.richEditField!=null)
this.richEditField.destroy();if(this.commentIdStateHolder!=null)
this.commentIdStateHolder.destroy();},sync:function(){this.richEditField.syncValue();},apply:function(){this.destroy();this.commentIdStateHolder=new Ext.form.Hidden({applyTo:this.hiddenCommentId});this.commentIdStateHolder.setValue(null);this.richEditField=new Ext.form.HtmlEditor({applyTo:this.txtCommentContentClientID,enableFont:false,enableColors:false,enableAlignments:false,enableFontSize:false,enableFormat:true,width:600,height:250});this.richEditField.setValue("");this.richEditField.focus();this.richeditorDiv=Ext.get(this.richEditId);this.newcommentDiv=Ext.get(this.newCommentId);this.cancelButton=Ext.get(this.cancelId);this.cancelButton.hide();this.currentCommentDiv=null;this.currentContent=null;this.currentCommentId=null;this.richEditField.deferFocus();},pasteAndEdit:function(target,content){commentManager.apply();commentManager.switchRichEdit(Ext.get(target),content,true,false);},switchRichEdit:function(target,content,show,initFrame){target.appendChild(this.richeditorDiv);if(!Ext.isIE&&initFrame){this.richEditField.initFrame();}
this.richEditField.setValue(content);this.richEditField.focus();if(show)
this.cancelButton.show();else
this.cancelButton.hide();},beginEditComment:function(currentCommentId){var commentDiv=Ext.get("comment_"+currentCommentId);if(commentDiv.contains(this.richeditorDiv)){return;}
var content=commentDiv.dom.innerHTML;commentDiv.dom.innerHTML="";this.switchRichEdit(commentDiv,content,true,true);if(this.currentCommentDiv!=null){this.currentCommentDiv.dom.innerHTML=this.currentContent;}
this.currentCommentDiv=commentDiv;this.currentContent=content;this.currentCommentId=currentCommentId;this.commentIdStateHolder.setValue(this.currentCommentId);},cancelEditComment:function(){this.switchRichEdit(this.newcommentDiv,"",false,true);this.currentCommentId=null;this.commentIdStateHolder.setValue(null);if(this.currentCommentDiv!=null){this.currentCommentDiv.dom.innerHTML=this.currentContent;this.currentCommentDiv=null;}}});
/*XCheckbox.js*/
Ext.ns('Ext.ux.form');Ext.ux.form.XCheckbox=Ext.extend(Ext.form.Checkbox,{offCls:'xcheckbox-off',onCls:'xcheckbox-on',disabledClass:'xcheckbox-disabled',submitOffValue:'false',submitOnValue:'true',checked:false,onRender:function(ct){Ext.ux.form.XCheckbox.superclass.onRender.apply(this,arguments);var tabIndex=this.el.dom.tabIndex;var id=this.el.dom.id;this.el.remove();this.el=ct.createChild({tag:'input',type:'hidden',name:this.name,id:id});this.updateHidden();this.wrap.replaceClass('x-form-check-wrap','xcheckbox-wrap');this.cbEl=this.wrap.createChild({tag:'a',href:'javascript:void(0)',cls:this.checked?this.onCls:this.offCls});var boxLabel=this.wrap.down('label');if(boxLabel){this.wrap.appendChild(boxLabel);}
if(this.tooltip){this.cbEl.set({qtip:this.tooltip});}
this.wrap.on({click:{scope:this,fn:this.onClick,delegate:'a'}});this.wrap.on({keyup:{scope:this,fn:this.onClick,delegate:'a'}});this.cbEl.dom.tabIndex=tabIndex;},onClick:function(e){if(this.disabled||this.readOnly){return;}
if(!e.isNavKeyPress()){this.setValue(!this.checked);}},onDisable:function(){this.cbEl.addClass(this.disabledClass);this.el.dom.disabled=true;},onEnable:function(){this.cbEl.removeClass(this.disabledClass);this.el.dom.disabled=false;},setValue:function(val){if('string'==typeof val){this.checked=val===this.submitOnValue;}
else{this.checked=!(!val);}
if(this.rendered&&this.cbEl){this.updateHidden();this.cbEl.removeClass([this.offCls,this.onCls]);this.cbEl.addClass(this.checked?this.onCls:this.offCls);}
this.fireEvent('check',this,this.checked);},updateHidden:function(){this.el.dom.value=this.checked?this.submitOnValue:this.submitOffValue;},getValue:function(){return this.checked;}});Ext.reg('xcheckbox',Ext.ux.form.XCheckbox);;
/*Label.js*/
Ext.ns('Tp.controls');Tp.controls.Label=Ext.extend(Ext.form.Label,{setText:function(t,encode){if(encode!==false){this.text=t;}else{this.html=t;}
if(this.rendered){this.el.dom.innerHTML=encode!==false?Ext.util.Format.htmlEncode(t):t;}
return this;}});Ext.reg('tplabel',Tp.controls.Label);;
/*MenuBootstrap.js*/
Ext.ns('Tp.controls');var stopDropDownPanelHiding=false;Tp.controls.MenuBootstrap=Ext.extend(Object,{POPUP_AREA_CLASS:"dropDownPanel",popupWindows:[],registerPopup:function(popup){this.popupWindows.push(popup);popup.addClass(this.POPUP_AREA_CLASS);popup.getTriggerElement().on('mousedown',this.onTriggerClick,popup);popup.getTriggerElement().on('mouseup',function(a){a.stopPropagation();});popup.getContainerElement().on('mousedown',function(a){a.stopPropagation();});popup.getContainerElement().on('mouseup',function(a){a.stopPropagation();});},onTriggerClick:function(a,b){this.toggle();a.stopPropagation();},_onBodyMouseUpHandler:function(eventObj,element){if(stopDropDownPanelHiding)
return;Ext.each(this.popupWindows,function(window){if(window.isVisible()){window.hide();}});},_initBodyMouseUp:function(){Ext.getBody().on("mousedown",this._onBodyMouseUpHandler,this);},_getDropDownLink:function(eventObj){var element=Ext.fly(eventObj.getTarget());if(!element.hasClass('ddLink')){if(element.parent().hasClass('ddLink'))
return element.parent();return element.child(".ddLink");}
return element;},_positionPanel:function(dropDownPanel,parentLink){var browserWidth=Ext.lib.Dom.getViewWidth();if(parentLink.getX()+dropDownPanel.getWidth()>browserWidth){dropDownPanel.setX(browserWidth-dropDownPanel.getWidth());dropDownPanel.setY(parentLink.getY()+parentLink.getHeight());}
else{dropDownPanel.setLeft('');dropDownPanel.setTop('');}},_hidePanel:function(node){if(node.isVisible()){node.hide();node.parent().removeClass('popupTab');}},_initProjectContextLink:function(){if(_projectContext&&_projectContext.length>1){var clickHandler=function(){var link=this;if(!link._projectContextMenu){var tpl=new Ext.XTemplate('<div><tpl for="."><a href="',link.href||"#",'?ProjectID={id}">{name}</a><br></tpl></div>');link.href="javascript:void(0);";link._projectContextMenu=Ext.DomHelper.createDom({tag:'div',cls:'morePanel',style:'padding: 5px'},Ext.getBody());tpl.overwrite(link._projectContextMenu,_projectContext);}
Tp.Atlas.Extenders.HoverBehavior.show(link,link._projectContextMenu);}
Ext.select('.projectContextLink').on('click',clickHandler);}},_initInfoToggle:function(){var elements=Ext.getBody().select(".help").elements;if(elements.length>0){Ext.getBody().select(".infoLink").setStyle('display','');}
else{Ext.getBody().select(".infoLink").setStyle('display','none');}
var collapsed=true;var clickHandler=function(eventObj,sender){var senderElement=Ext.get(sender);var helpPanel=Ext.getBody().select(".help");if(collapsed){senderElement.update("Hide info");helpPanel.setVisibilityMode(Ext.Element.VISIBILITY);helpPanel.show(true);collapsed=false;}
else{senderElement.update("Show this page info");helpPanel.setVisibilityMode(Ext.Element.DISPLAY);helpPanel.hide(true);collapsed=true;}};var link=Ext.getBody().select(".infoLink");link.on("click",clickHandler);},init:function(){this._initBodyMouseUp();this._initInfoToggle();}});;
/*ExtJsFixes.js*/
Ext.override(Ext.grid.GridPanel,{processEvent:function(name,e){var t=e.getTarget();if(!t){return;}
if(!this.el){return;}
if(Ext.fly(this.el.id).query('.x-grid3').length>1&&Ext.fly(t).parent('.x-grid3')!=null){return;}
this.fireEvent(name,e);var v=this.view;var header=v.findHeaderIndex(t);if(header!==false){this.fireEvent("header"+name,this,header,e);}else{var row=v.findRowIndex(t);var cell=v.findCellIndex(t);if(row!==false){this.fireEvent("row"+name,this,row,e);if(cell!==false){this.fireEvent("cell"+name,this,row,cell,e);}}}}});Ext.override(Ext.grid.ColumnModel,{moveColumn:function(oldIndex,newIndex){if(this.isMovable(oldIndex)){var c=this.config[oldIndex];this.config.splice(oldIndex,1);this.config.splice(newIndex,0,c);this.dataMap=null;this.fireEvent("columnmoved",this,oldIndex,newIndex);}},isMovable:function(col){if(typeof this.config[col].movable=="undefined"){return this.enableColumnMove||true;}
return this.config[col].movable;}});Ext.override(Ext.EventObjectImpl,{getTarget:function(selector,maxDepth,returnEl){var targetElement;try{targetElement=selector?Ext.fly(this.target).findParent(selector,maxDepth,returnEl):(returnEl?Ext.get(this.target):this.target);}catch(e){targetElement=this.target;}
return targetElement;}});Ext.override(Ext.form.HtmlEditor,{getWin:function(){if((Ext.isChrome||Ext.isSafari)&&!window.frames[this.iframe.name]){for(var i=0;i<window.frames.length;i++){if(window.frames[i].name=="ux-lightbox-shim")
return window.frames[i];}}
if(Ext.isIE||Ext.isGecko){var frames=document.getElementsByTagName("iframe");for(var i=0;i<frames.length;i++){if(frames[i]==this.iframe)
return frames[i].contentWindow;}
for(var i=0;i<frames.length;i++){if(frames[i].name==""){return frames[i].contentWindow;}}
alert("The frame is not found for HtmlEditor");}
return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name];}});;
/*SummaryGroupingView.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.SummaryGroupingView=Ext.extend(Ext.grid.GroupingView,{groupChanging:"groupChanging",doRenderEnd:function(cs,rs,ds,startRow,colCount,stripe){return"";},isEndingPresent:false,doRender:function(cs,rs,ds,startRow,colCount,stripe){var markup=Tp.controls.grid.SummaryGroupingView.superclass.doRender.call(this,cs,rs,ds,startRow,colCount,stripe);var ending=this.doRenderEnd(cs,rs,ds,startRow,colCount,stripe);this.isEndingPresent=false;if(ending=="")
return markup;if(ending==null)
return markup;if(ending==undefined)
return markup;markup+=ending;isEndingPresent=true;return markup;},onShowGroupsClick:function(){this.fireEvent(this.groupChanging);Tp.controls.grid.SummaryGroupingView.superclass.onShowGroupsClick.apply(this,arguments);},getGroups:function(){if(this.mainBody.dom.childNodes.length<=1)
return Tp.controls.grid.SummaryGroupingView.superclass.getGroups.call(this);var lastNode=this.mainBody.dom.childNodes[this.mainBody.dom.childNodes.length-1];if(lastNode.childNodes.length>1)
return Tp.controls.grid.SummaryGroupingView.superclass.getGroups.call(this);var arr=[];for(var i=0;i<this.mainBody.dom.childNodes.length-1;i++){arr.push(this.mainBody.dom.childNodes[i]);}
return arr;}});;
/*EditorGridPanel.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.EditorGridPanel=Ext.extend(Ext.grid.EditorGridPanel,{onFatalErrorSavedDelegate:null,onSuccessSavedDelegate:null,successSaved:"successSaved",afterSuccessSaved:"afterSuccessSaved",fatalErrorSaved:"fatalErrorSaved",initializeEvents:"initializeEvents",save:"save",saving:"saving",saveButton:null,constructor:function(config){this.onPreInit(config);Tp.controls.grid.EditorGridPanel.superclass.constructor.call(this,config);this.addEvents(this.save);this.addEvents(this.saving);this.addEvents(this.successSaved);this.addEvents(this.afterSuccessSaved);this.addEvents(this.fatalErrorSaved);this.addEvents(this.initializeEvents);this.onFatalErrorSavedDelegate=Function.createDelegate(this,this.onFatalErrorSaved);this.onSuccessSavedDelegate=Function.createDelegate(this,this.onSuccessSaved);var thisRef=this;window.onbeforeunload=function(){if(thisRef.isDataModified()){return"This operation discards the change(s) you made, are you sure want to leave this page?";}else{return undefined;}};this.store.on("beforeload",this.onStoreBeforeLoad,this);this.on("save",this.onSave,this);this.on("beforeedit",this.onBeforeEdit,this);this.on("afteredit",this.onAfterEdit,this);this.on("headermousedown",this.onHeaderMouseDown,this);},onPreInit:function(config){if(config.showSaveButton){config.tbar=(config.tbar==null)?new Array():config.tbar;this.saveButton=new Ext.Button({text:'Submit Changes',disabled:true,tooltip:'Save changes made to the grid'});this.saveButton.on("click",this.onSaveClick,this);config.tbar.push('-');config.tbar.push(this.saveButton);}},onColumnResize:function(index,size){Tp.controls.grid.EditorGridPanel.superclass.onColumnResize.call(this,index,size);this.stopEditing();},onSuccessSaved:function(errors){this.fireEvent(this.successSaved,errors);this.fireEvent(this.afterSuccessSaved);},onFatalErrorSaved:function(fatalError){this.fireEvent(this.fatalErrorSaved,fatalError);},isDataModified:function(){return(this.store.getModifiedRecords().length>0)?true:false;},recordsToArray:function(records){var arr=[];for(i=0;i<records.length;i++){arr.push(records[i].data);}
return arr;},save:function(){var records=this.recordsToArray(this.store.getModifiedRecords());this.fireEvent(this.saving,records);Tp.Web.Extensions.ExtJs.Web.GridService.SaveRecords(this.gridDataRequest,records,this.onSuccessSavedDelegate,this.onFatalErrorSavedDelegate);},safeSave:function(){this.stopEditing();if(!this.isDataModified())
return;if(window.confirm("This operation discards the change(s) you made, do you want to save changes?"))
this.fireEvent("save");else
this.store.rejectChanges();},onStoreBeforeLoad:function(){this.safeSave();},onHeaderMouseDown:function(){this.safeSave();},onSave:function(){if(this.isDataModified()){this.save();}},onSaveClick:function(){this.fireEvent("save");},onBeforeEdit:function(arg){Tp.controls.grid.CurrentEditableItem.setInstance({columnName:arg.field,record:arg.record,grid:this});},onAfterEdit:function(arg){var item=Tp.controls.grid.CurrentEditableItem.getInstance();Tp.util.validateForNulls([item]);if(item.associativeRecord!=null){for(key in item.associativeRecord.data){item.record.set(key,item.associativeRecord.data[key]);}}
SpecialCaseHandler.getInstance().applyChangesToRecord(item.columnName,item.record,item.grid.gridHeader);Tp.controls.grid.CurrentEditableItem.reset();}});;
/*SpecialCaseTable.js*/
Ext.ns('Tp.controls.grid.components');Tp.controls.grid.components.SpecialCaseTable=Ext.extend(Ext.grid.EditorGridPanel,{getEmptyValue:function(columnName){Tp.util.validateForNulls([columnName]);var value=Tp.controls.grid.components.SpecialCaseTable.emptyValuesMapping[columnName];if(value!=null){return value;}
return Tp.controls.grid.components.SpecialCaseTable.emptyValuesMapping.defaultValue;},resetColumnsByType:function(entityType,gridHeader,record,value){for(var i=0;i<gridHeader.Columns.length;i++){if(entityType==gridHeader.Columns[i].Facet.entityType){record.set(gridHeader.Columns[i].Id,value);}}},findColumnHeaderById:function(columnId,gridHeader){for(var i=0;i<gridHeader.Columns.length;i++){if(gridHeader.Columns[i].Id==columnId){return gridHeader.Columns[i];}}},applyChangesToRecord:function(sourceColumnId,record,gridHeader){Tp.util.validateForNulls([sourceColumnId,record,gridHeader]);var specialCase=Tp.controls.grid.components.SpecialCaseTable.cascadeChangesMapping[sourceColumnId];if(specialCase==null)
return;var targetColumnHeader=this.findColumnHeaderById(specialCase.columnId,gridHeader);if(targetColumnHeader==null)
return;this.resetColumnsByType(targetColumnHeader.Facet.entityType,gridHeader,record,specialCase.value);}});Tp.controls.grid.components.SpecialCaseTable.emptyValuesMapping={"release":"- Backlog -","iteration":"- Backlog -","feature":"- No Feature -"};Tp.controls.grid.components.SpecialCaseTable.emptyValuesMapping.defaultValue="&nbsp;";Tp.controls.grid.components.SpecialCaseTable.cascadeChangesMapping={"release":{columnId:"iteration",value:""}};Tp.controls.grid.components.SpecialCaseTable.getInstance=function(){if(Tp.controls.grid.components.SpecialCaseTable.instance==null){Tp.controls.grid.components.SpecialCaseTable.instance=new Tp.controls.grid.components.SpecialCaseTable();}
return Tp.controls.grid.components.SpecialCaseTable.instance;};var SpecialCaseHandler=Tp.controls.grid.components.SpecialCaseTable;;
/*CurrentEditableItem.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.CurrentEditableItem=Ext.extend(Object,{columnName:null,record:null,associativeRecord:null,constructor:function(context){this.validateArguments(context);Ext.apply(this,context);},validateArguments:function(arg){if(arg==null)
throw"arg";if(arg.columnName==null)
throw"columnName";if(arg.record==null)
throw"record";}});Tp.controls.grid.CurrentEditableItem.instance=null;Tp.controls.grid.CurrentEditableItem.getInstance=function(){return Tp.controls.grid.CurrentEditableItem.instance;};Tp.controls.grid.CurrentEditableItem.setInstance=function(context){Tp.controls.grid.CurrentEditableItem.instance=new Tp.controls.grid.CurrentEditableItem(context);};Tp.controls.grid.CurrentEditableItem.reset=function(){delete Tp.controls.grid.CurrentEditableItem.instance;};;
/*Handlers.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.Handlers=new Object();Tp.controls.grid.Handlers.getPrintReportHandler=function(componentId){return function(){redirectToHandler(componentId,'print.ashx');};};Tp.controls.grid.Handlers.getReportExportToExcelHandler=function(componentId){return function(){redirectToHandler(componentId,'csv.ashx');};};function redirectToHandler(componentId,handler){var reportGrid=Ext.ComponentMgr.get(componentId);var url=document.location.href.toLowerCase().replace('viewcustomreport.aspx',handler);if(reportGrid&&reportGrid.gridDataRequest.GridID!=temporaryGridId){var customReportIDParam="CustomReportID="+reportGrid.gridDataRequest.GridID;if(url.contains("customreportid")){url=url.substring(0,url.indexOf("customreportid"))+customReportIDParam;}
else if(url.contains(handler+'?')){url+="&"+customReportIDParam;}
else{url+="?"+customReportIDParam;}}
document.location.href=url;}
Tp.controls.grid.Handlers.getReportEditHandler=function(componentId){return function(){var reportGrid=Ext.ComponentMgr.get(componentId);var reportGridEditor=new Tp.Ajax.ReportGridEditor(reportGrid);reportGridEditor.show();};};Tp.controls.grid.Handlers.refreshGrid=function(gridId){return function(){var grid=Ext.ComponentMgr.get(gridId);grid.getStore().reload();}};Tp.controls.grid.Handlers.getReorderHandler=function(componentId,prioritizationService){return function(gridDropTarget,index,targetIndex,selections){if(gridDropTarget.target){gridDropTarget.target.lock();if(targetIndex>index&&gridDropTarget.target.rowPosition<0){targetIndex--;}
if(targetIndex<index&&gridDropTarget.target.rowPosition>0){targetIndex++;}}
var grid=Ext.ComponentMgr.get(componentId);var store=grid.getStore();var targetId;if(targetIndex==store.data.items.length-1){targetId=0;}
else{if(targetIndex>index){targetIndex=targetIndex+1;}
targetId=store.getAt(targetIndex).id;}
var id=store.getAt(index).id;var nextPageFirstItemId=store.lastOptions.nextPageFirstEntityId==null?0:store.lastOptions.nextPageFirstEntityId;var onChangePriorityCompleted=function(retValue,callbackParams){callbackParams.newPriorityName=retValue;callbackParams.grid.fireEvent('onPriorityChanged',callbackParams);};var onChangePriorityFailed=function(error,callbackParams){if(callbackParams.target){callbackParams.target.unlock();}
Tp.util.Notifier.error('Error','Changing priority failed, please reload this page.\n<hr/>\n'+error.get_message());};prioritizationService.PrioritizeBefore(id,targetId,nextPageFirstItemId,onChangePriorityCompleted,onChangePriorityFailed,{grid:grid,recordId:id,target:gridDropTarget.target});}};
/*ConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.ConfigurationFactory=Ext.extend(Object,{initialConfig:null,constructor:function(config){this.initialConfig=config;},createColumns:function(gridHeader,gridDataRequest){Tp.util.validateForNulls([gridHeader,gridDataRequest]);var columns=new Array();for(var position=0;position<gridHeader.Columns.length;position++){var columnConfig=gridHeader.Columns[position];if(!columnConfig.IsSynthetic){var gridColumn={id:columnConfig.Id,header:columnConfig.Title,tooltip:columnConfig.Title,resizable:true,sortable:true,dataIndex:columnConfig.Id,editable:columnConfig.IsUpdateable};if(columnConfig.Width){gridColumn.width=columnConfig.Width;}
var fieldFactory=Tp.controls.grid.Factory.getInstance().getFieldFactory(gridDataRequest);gridColumn.editor=fieldFactory.createEditor(columnConfig);var renderer=fieldFactory.createRenderer(columnConfig,this.initialConfig);if(renderer!=null){gridColumn.renderer=renderer;}
columns.push(gridColumn);}}
return columns;},createColumnModel:function(columns){return new Ext.grid.ColumnModel(columns);},createPlugins:function(pluginTypes){if(pluginTypes==null){return[];}
if(pluginTypes.length==0){return[];}
var strArr=pluginTypes.split(',');var result=[];for(i=0;i<strArr.length;i++){var plugin=eval("new "+strArr[i]);result.push(plugin);}
return result;},getPageSize:function(){return this.initialConfig.gridDataRequest.Limit;},createPagingToolBar:function(store){var pageSizeCount=this.getPageSize();var pagingToolbar=new Ext.PagingToolbar({pageSize:pageSizeCount,store:store,cls:'x-pager',displayInfo:true,displayMsg:'Displaying records {0} - {1} of {2}',emptyMsg:"No records to display"});return pagingToolbar;},createView:function(){return new Ext.grid.GridView({forceFit:true,emptyText:'No items found.'});},addAdditionalParameters:function(store,records,options){store.lastOptions=options;},createConfig:function(){var config=Tp.util.clone(this.initialConfig);config.gridDataRequest.Limit=this.getPageSize();var store=Tp.controls.grid.Factory.getInstance().getStoreFactory().createStore(config.gridDataRequest,config.gridHeader);store.on("load",this.addAdditionalParameters,this);config.store=store;var columns=this.createColumns(this.initialConfig.gridHeader,config.gridDataRequest);config.columns=columns;config.sm=new Ext.grid.RowSelectionModel({singleSelect:false});config.cm=this.createColumnModel(columns);config.plugins=this.createPlugins(config.pluginTypes);config.stripeRows=true;config.loadMask=true;config.enableColumnHide=false;config.view=this.createView();config.title=Ext.util.Format.htmlEncode(config.gridHeader.Title);config.autoHeight=true;config.enableHdMenu=false;config.frame=false;return config;}});;
/*GeneralConfigurationFactory.js*/
Tp.controls.grid.GeneralConfigurationFactory=Ext.extend(Tp.controls.grid.ConfigurationFactory,{createView:function(columnModel){return new Ext.grid.GroupingView({cm:columnModel,forceFit:true,hideGroupedColumn:false,groupTextTpl:'{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'});},createConfig:function(sourceConfig){var config=Tp.controls.grid.GeneralConfigurationFactory.superclass.createConfig.call(this,sourceConfig);config.enableHdMenu=true;config.showSaveButton=true;config.view=this.createView(config.cm);config.bbar=this.createPagingToolBar(config.store);return config;}});;
/*TpReader.js*/
Ext.data.TpReader=Ext.extend(Ext.data.JsonReader,{readRecords:function(recordSet){var primaryIndex=recordSet.Header.indexOf("id");var recordType=this.recordType;fields=recordType.prototype.fields;var records=[];var root=recordSet.Records;for(var i=0;i<root.length;i++){var n=root[i];var values={};var id=((primaryIndex||primaryIndex===0)&&n[primaryIndex]!==undefined&&n[primaryIndex]!==""?n[primaryIndex]:null);for(var j=0;j<fields.length;j++){var f=fields.items[j];var k=recordSet.Header.indexOf(f.name);var v=n[k]!==undefined?n[k]:f.defaultValue;if(v===null){v="";}
values[f.name]=Tp.data.RecordHelper.getInstance().normalizeDate(v);}
var record=new recordType(values,id);record.json=n;records[records.length]=record;}
return{records:records,totalRecords:recordSet.Total};}});;
/*TpMultiSelect.js*/
Ext.ns('Tp.controls');Tp.controls.TpMultiSelect=Ext.extend(Ext.ux.ItemSelector,{rightPanelHidden:null,containerElement:null,constructor:function(config){this.containerElement=Ext.get(config.containerElementId);if(Ext.isEmpty(this.containerElement))
return;this.rightPanelHidden=Ext.get(config.rightPanelHiddenId);var storeFields=['Id','Name'];var leftStore=new Ext.data.JsonStore({fields:storeFields,data:config.leftPanelData});var rightStore=new Ext.data.JsonStore({fields:storeFields,data:config.rightPanelData});config=Ext.apply({fromStore:leftStore,toStore:rightStore,displayField:'Name',valueField:'Id',drawUpIcon:false,drawDownIcon:false,drawTopIcon:false,drawBotIcon:false,msWidth:337,msHeight:204,toHeader:'Projects in this program',toHeaderCls:'defaultLabel',fromHeader:'Available projects',fromHeaderCls:'defaultLabel',applyTo:config.containerElementId},config);Tp.controls.TpMultiSelect.superclass.constructor.call(this,config);this.on('change',Function.createDelegate(this,this.onStateChange))
this.containerElement.setWidth(this.containerElement.getWidth()+80);},onStateChange:function(sender,value){this.rightPanelHidden.dom.value=value;}});;
/*Handlers.js*/
Ext.ns('Tp.controls.grid.custom');Tp.controls.grid.custom.TestCasePassFailController=Ext.extend(Object,{changeState:function(grid,record,value){grid.fireEvent("entityStateChanging",record.id);var onChangeStateComplete=Function.createDelegate(this,this._onChangeStateComplete);var onChangeStateFailed=Function.createDelegate(this,this._onChangeStateFailed);Tp.Web.Extensions.ExtJs.TestCaseListService.ChangeRunState(record.id,value,onChangeStateComplete,onChangeStateFailed,{grid:grid,recordId:record.id});},_onChangeStateComplete:function(retValue,callbackParams){callbackParams.newLastRunDate=retValue.LastRunDate;callbackParams.newLastStatus=retValue.LastStatus;callbackParams.grid.fireEvent("entityStateChanged",callbackParams);},_onChangeStateFailed:function(fatalError){DisplayError(fatalError.get_message());}});;
/*AuditHistoryConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.AuditHistoryConfigurationFactory=Ext.extend(Tp.controls.grid.ConfigurationFactory,{pageSize:20,createConfig:function(sourceConfig){var config=Tp.controls.grid.AuditHistoryConfigurationFactory.superclass.createConfig.call(this,sourceConfig);config.header=false;config.sm=null;config.disableSelection=true;var expander=new Tp.custom.plugins.AuditDetailsExpander();config.columns.unshift(expander);config.cm=this.createColumnModel(config.columns);config.plugins.push(expander);config.bbar=this.createPagingToolBar(config.store);return config;},getPageSize:function(){return this.pageSize;}});;
/*TestCaseConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.TestCaseConfigurationFactory=Ext.extend(Tp.controls.grid.ConfigurationFactory,{pageSize:20,createConfig:function(){var config=Tp.controls.grid.TestCaseConfigurationFactory.superclass.createConfig.call(this);Tp.collections.createMixedCollection(config.columns).each(function(item){item.sortable=false;});config.header=false;config.sm=new Ext.grid.RowSelectionModel({singleSelect:true});var expander=new Tp.custom.plugins.TestCaseDetailsExpander();var passFail=new Tp.custom.plugins.PassFailColumn();var passFailController=new Tp.controls.grid.custom.TestCasePassFailController();passFail.on("pass",function(grid,record){passFailController.changeState(grid,record,true)});passFail.on("fail",function(grid,record){passFailController.changeState(grid,record,false)});config.columns.unshift(expander);config.columns.push(passFail);config.plugins.push(expander);config.plugins.push(passFail);config.plugins.push(new Tp.controls.grid.plugins.EditTestCaseOpenByDoubleClick({onSaveCallBack:Tp.controls.grid.Handlers.refreshGrid(this.initialConfig.id)}));config.plugins.push(new Tp.controls.grid.plugins.GridDragDropRowOrder({copy:false,scrollable:true,targetCfg:{}}));config.plugins.push(new Tp.controls.grid.plugins.PrioritizePlugin({prioritizationService:Tp.Web.Extensions.ExtJs.TestCaseListService}));config.plugins.push(new Tp.controls.grid.plugins.ChangeStatePlugin({testCaseService:Tp.Web.Extensions.ExtJs.TestCaseListService}));config.cm=this.createColumnModel(config.columns);config.bbar=this.createPagingToolBar(config.store);expander.on('onCompleteLoading',function(){this.onExpandedAndLoaded()});return config;},onExpandedAndLoaded:function(){},getPageSize:function(){return this.pageSize;}});;
/*ProjectAuditHistoryConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.ProjectAuditHistoryConfigurationFactory=Ext.extend(Tp.controls.grid.AuditHistoryConfigurationFactory,{createConfig:function(sourceConfig){var config=Tp.controls.grid.ProjectAuditHistoryConfigurationFactory.superclass.createConfig.call(this,sourceConfig);config.title="Audit History"
config.header=false;this.entitySelect=new Tp.controls.SelectBox({store:auditTypes,displayField:"name",valueField:"entityTypeId",typeAhead:true,width:120,mode:"local",triggerAction:"all",forceSelection:true,selectOnFocus:true,allowBlank:false,editable:false,insertEmptyOption:false});if(config.gridDataRequest.Cnt&&config.gridDataRequest.Cnt.EntityTypeID)
this.entitySelect.setValue(config.gridDataRequest.Cnt.EntityTypeID);this.modifierSelect=new Tp.controls.SelectBox({store:usersInProject,displayField:"name",valueField:"userId",typeAhead:true,width:150,mode:"local",triggerAction:"all",emptyText:"- Select Modifier -",forceSelection:true,selectOnFocus:true,allowBlank:true,editable:false,insertEmptyOption:true});if(config.gridDataRequest.Cnt&&config.gridDataRequest.Cnt.UserID)
this.modifierSelect.setValue(config.gridDataRequest.Cnt.UserID);this.fromDate=new Ext.tp.form.TpDateField({allowBlank:true,format:extJsDateFormat});if(config.gridDataRequest.Cnt&&config.gridDataRequest.Cnt.From)
this.fromDate.setValue(config.gridDataRequest.Cnt.From);this.toDate=new Ext.tp.form.TpDateField({allowBlank:true,format:extJsDateFormat});if(config.gridDataRequest.Cnt&&config.gridDataRequest.Cnt.To)
this.toDate.setValue(config.gridDataRequest.Cnt.To);var filterHandler=Function.createDelegate(this,this.onFilter);var clearHandler=Function.createDelegate(this,this.onClear);config.tbar=["Entity&nbsp;",this.entitySelect,"&nbsp;&nbsp;","Modifier&nbsp;",this.modifierSelect,"&nbsp;","From&nbsp;",this.fromDate,"&nbsp;&nbsp;","To&nbsp;",this.toDate,"&nbsp;&nbsp;",new Ext.Button({text:"Filter",handler:filterHandler}),new Ext.Button({text:"Clear",handler:clearHandler})];return config;},createView:function(){this.gridView=new Ext.grid.GridView({forceFit:true});return this.gridView;},filter:function(entity,modifier,from,to){var store=this.gridView.grid.store;var cnt={"EntityTypeID":entity,"UserID":modifier,"From":this.formatDate(from),"To":this.formatDate(to)};store.load({Cnt:cnt});},onFilter:function(){this.filter(this.entitySelect.getValue(),this.modifierSelect.getValue(),this.fromDate.getValue(),this.toDate.getValue());},formatDate:function(value){if(value==null||value=="")
return"";return value.format(extJsDateFormat);},onClear:function(){this.entitySelect.setValue("");this.modifierSelect.setValue("");this.fromDate.setValue("");this.toDate.setValue("");this.filter("","","","");}});;
/*ParentListConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.ParentListConfigurationFactory=Ext.extend(Tp.controls.grid.GeneralConfigurationFactory,{createConfig:function(sourceConfig){var config=Tp.controls.grid.ParentListConfigurationFactory.superclass.createConfig.call(this,sourceConfig);if(config.innerGridConfig.length!=0){var expander=new Tp.controls.grid.plugins.GridExpander(config);config.columns.unshift(expander);config.cm=this.createColumnModel(config.columns);config.plugins.push(expander);}
config.view=this.createView();config.plugins.push(new Tp.controls.grid.plugins.ReportEditor());return config;},createView:function(columnModel){return new Tp.controls.grid.SummaryGroupingView({cm:columnModel,forceFit:true,hideGroupedColumn:false,groupTextTpl:'{text}'});}});;
/*ReportConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.ReportConfigurationFactory=Ext.extend(Tp.controls.grid.ParentListConfigurationFactory,{createConfig:function(){var config=Tp.controls.grid.ReportConfigurationFactory.superclass.createConfig.call(this);config.tbar=[];config.tbar.push({id:"btnGridPrint",text:'Printable View',disabled:true,handler:Tp.controls.grid.Handlers.getPrintReportHandler(config.id)});config.tbar.push("-");config.tbar.push({id:"btnGridExport",text:'Export To Excel',disabled:true,handler:Tp.controls.grid.Handlers.getReportExportToExcelHandler(config.id)});config.tbar.push("-");config.tbar.push({text:'Edit Report',tooltip:'Change report configuration',handler:Tp.controls.grid.Handlers.getReportEditHandler(config.id),disabled:!this.initialConfig.canEdit});config.stateful=false;return config;}});;
/*InnerListConfigurationFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.InnerListConfigurationFactory=Ext.extend(Tp.controls.grid.ConfigurationFactory,{pageSize:20,createConfig:function(context){this.initialConfig.renderTo=context.renderTo;this.initialConfig.gridDataRequest.Cnt.ID=context.Id;this.initialConfig.gridDataRequest.GroupBy="";var config=Tp.controls.grid.InnerListConfigurationFactory.superclass.createConfig.call(this);config.view=this.createView();config.bbar=this.createPagingToolBar(config.store);config.plugins.push(new Tp.controls.grid.plugins.HidePagingConstraint());return config;},createView:function(columnModel){return new Tp.controls.grid.SummaryGroupingView({enableGrouping:false,cm:columnModel,forceFit:true});},getPageSize:function(){return this.pageSize;}});;
/*GridStoreFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.GridStoreFactory=Ext.extend(Object,{createFields:function(gridHeader){var fields=new Array();for(var i=0;i<gridHeader.Columns.length;i++){var column=gridHeader.Columns[i];fields.push({name:column.Id,type:column.Type});}
return fields;},createReader:function(gridHeader){var fieldMap=new Ext.data.Record.create(this.createFields(gridHeader));return new Ext.data.TpReader({},fieldMap);},createAssociationProxy:function(gridDataRequest){Tp.util.validateForNulls([gridDataRequest]);return new Tp.data.AssociationProxy(gridDataRequest);},createAssociationStore:function(columnConfig,gridDataRequest){Tp.util.validateForNulls([gridDataRequest,columnConfig]);return new Ext.data.SimpleStore({fields:[columnConfig.Id],proxy:this.createAssociationProxy(gridDataRequest)});},createStore:function(gridDataRequest,gridHeader){var proxy=Tp.controls.grid.Factory.getInstance().createProxy();proxy.gridDataRequest=gridDataRequest;var reader=this.createReader(gridHeader);var sortInfo={field:gridDataRequest.OrderBy,direction:gridDataRequest.OrderDir?"ASC":"DESC"};return new Ext.data.GroupingStore({autoLoad:true,proxy:proxy,reader:reader,sortInfo:sortInfo,remoteSort:true,remoteGroup:true,groupField:gridDataRequest.GroupBy});}});;
/*FieldFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.FieldFactory=Ext.extend(Object,{gridDataRequest:null,constructor:function(gridDataRequest){Tp.util.validateForNulls([gridDataRequest]);this.gridDataRequest=gridDataRequest;},createEditor:function(columnConfig){Tp.util.validateForNulls([columnConfig]);if(columnConfig.IsUpdateable){switch(columnConfig.Type){case"string":if(columnConfig.Facet.dictionary){return this.makeComboBox(columnConfig.Facet.dictionary);}
if(columnConfig.Facet.collection){return new Tp.controls.grid.Editors.ComboBox({columnConfig:columnConfig,gridDataRequest:this.gridDataRequest});}
if(columnConfig.Facet.format=="richText"){return new Tp.controls.RichTextField({});}
if(columnConfig.Facet.format=="url"){return new Tp.controls.UrlField({});}
return new Tp.controls.TextField({});case"int":if(columnConfig.Facet.dictionary){return this.makeComboBox(columnConfig.Facet.dictionary);}
return new Ext.form.NumberField({allowNegative:false});case"float":return new Ext.form.NumberField({allowNegative:false});case"bool":return new Tp.controls.BooleanField({});case"date":return new Ext.form.DateField({format:'d-M-Y'});}}},createRenderer:function(columnConfig){if(columnConfig.Facet.dictionary){return enumRenderer(columnConfig.Facet.dictionary);}
if(columnConfig.Type=="string"){if(columnConfig.Facet.format=="richText"){return richTextRenderer();}
if(columnConfig.Facet.format=="url"){return urlRenderer();}
if(columnConfig.Facet.format=="entity"){return entityRenderer();}
return stringRenderer();}
if(columnConfig.Type=="int"){if(columnConfig.Facet.entityKind){return viewLinkRenderer(columnConfig.Facet.entityKind);}
return null;}
if(columnConfig.Type=="bool"){return boolRenderer();}
if(columnConfig.Type=="date"){return Ext.util.Format.dateRenderer('d-M-Y');}
return null;},makeComboBox:function(entries){return new Ext.form.ComboBox({allQuery:null,triggerAction:"all",store:new Ext.data.ArrayStore({id:0,fields:['id','text'],data:this.convertDictToArray(entries)}),mode:"local",editable:false,valueField:'id',displayField:'text'});},convertDictToArray:function(dict)
{var array=new Array();Ext.each(dict,function(item){array.push([item.Key,item.Value])},this);return array;}});;
/*AuditHistoryFieldFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.AuditHistoryFieldFactory=Ext.extend(Object,{createEditor:function(columnConfig){return null;},createRenderer:function(columnConfig){columnConfig.movable=false;if(columnConfig.Type=="date"){return Ext.util.Format.dateRenderer('d-M-Y H:i:s');}
if(columnConfig.Type=="HTMLText"){return Ext.util.Format.htmlEncode;}
return null;}});;
/*TestCaseFieldFactory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.TestCaseFieldFactory=Ext.extend(Object,{createEditor:function(){return null;},statusRenderer:function(value){if(value===true){return"<span style='color:Green'>Passed</span>"}
else if(value===false){return"<span style='color:Red'>Failed</span>"}
return null;},createRenderer:function(columnConfig){if(columnConfig.Id=="LastStatus"){return this.statusRenderer;}
if(columnConfig.Type=="date"){return Ext.util.Format.dateRenderer('d-M-Y H:i:s');}
if(columnConfig.Facet.entityKind){return entityIconIdRenderer(columnConfig.Facet.entityKind);}
if(columnConfig.Facet.edit){return testCaseEditRenderer();}
if(columnConfig.Type=="HTMLText"){return Ext.util.Format.htmlEncode;}
return null;}});function testCaseEditRenderer(){return function(value){return String.format("<a href='{0}/Project/QA/TestCase/Edit.aspx?TestCaseID={1}'>Edit</a>",Application.baseUrl,value);};};
/*Factory.js*/
Ext.ns('Tp.controls.grid');Tp.controls.grid.Factory=new Object();Tp.controls.grid.Factory.getInstance=function(){if(Tp.controls.grid.Factory.instance==null){Tp.controls.grid.Factory.instance=eval("new "+factoryType);}
return Tp.controls.grid.Factory.instance;};var factoryType="Tp.controls.grid.ConfigurableFactory";Tp.controls.grid.ConfigurableFactory=Ext.extend(Object,{getStoreFactory:function(){return eval("new "+storeFactory);},_getConfigurationFactoryEvaluated:function(configurationFactory,initialConfig){return eval("new "+configurationFactory+"(initialConfig)");},getConfigurationFactory:function(initialConfig){return this._getConfigurationFactoryEvaluated(configurationFactory,initialConfig);},getInnerListConfigurationFactory:function(initialConfig){return this._getConfigurationFactoryEvaluated(innerListConfigurationFactory,initialConfig);},getFieldFactory:function(gridDataRequest){return eval("new "+editorFieldFactory+"(gridDataRequest)");},createGridPanel:function(initialConfig){var config=this.getConfigurationFactory(initialConfig).createConfig();return eval("new "+gridPanelType+"(config)");},createInnerGridPanel:function(initialConfig,context){var config=this.getInnerListConfigurationFactory(initialConfig).createConfig(context);return eval("new "+innerGridPanelType+"(config)");},createProxy:function(){try{return eval("new "+gridProxy);}
catch(ex){throw"GridProxy is undefined";}}});var gridPanelType="Tp.controls.grid.EditorGridPanel";var innerGridPanelType="Tp.controls.grid.EditorGridPanel";var editorFieldFactory="Tp.controls.grid.FieldFactory";var storeFactory="Tp.controls.grid.GridStoreFactory";var configurationFactory="Tp.controls.grid.ReportConfigurationFactory";var innerListConfigurationFactory="Tp.controls.grid.InnerListConfigurationFactory";var gridProxy="Ext.Tp.GridServiceProxy";;
/*RowExpander.js*/
Ext.ns('Ext.ux.grid');Ext.ux.grid.RowExpander=Ext.extend(Ext.util.Observable,{expandOnEnter:true,expandOnDblClick:true,header:'',width:20,sortable:false,fixed:true,menuDisabled:true,dataIndex:'',id:'expander',lazyRender:true,enableCaching:true,constructor:function(config){Ext.apply(this,config);this.addEvents({beforeexpand:true,expand:true,beforecollapse:true,collapse:true});Ext.ux.grid.RowExpander.superclass.constructor.call(this);if(this.tpl){if(typeof this.tpl=='string'){this.tpl=new Ext.Template(this.tpl);}
this.tpl.compile();}
this.state={};this.bodyContent={};},getRowClass:function(record,rowIndex,p,ds){p.cols=p.cols-1;var content=this.bodyContent[record.id];if(!content&&!this.lazyRender){content=this.getBodyContent(record,rowIndex);}
if(content){p.body=content;}
return this.state[record.id]?'x-grid3-row-expanded':'x-grid3-row-collapsed';},init:function(grid){this.grid=grid;var view=grid.getView();view.getRowClass=this.getRowClass.createDelegate(this);view.enableRowBody=true;grid.on('render',this.onRender,this);grid.on('destroy',this.onDestroy,this);},onRender:function(){var grid=this.grid;var mainBody=grid.getView().mainBody;mainBody.on('mousedown',this.onMouseDown,this,{delegate:'.x-grid3-row-expander'});if(this.expandOnEnter){this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{'enter':this.onEnter,scope:this});}
if(this.expandOnDblClick){grid.on('rowdblclick',this.onRowDblClick,this);}},onDestroy:function(){if(this.keyNav){this.keyNav.disable();delete this.keyNav;}
var mainBody=this.grid.getView().mainBody;if(mainBody){mainBody.un('mousedown',this.onMouseDown,this);}},onRowDblClick:function(grid,rowIdx,e){this.toggleRow(rowIdx);},onEnter:function(e){var g=this.grid;var sm=g.getSelectionModel();var sels=sm.getSelections();for(var i=0,len=sels.length;i<len;i++){var rowIdx=g.getStore().indexOf(sels[i]);this.toggleRow(rowIdx);}},getBodyContent:function(record,index){if(!this.enableCaching){return this.tpl.apply(record.data);}
var content=this.bodyContent[record.id];if(!content){content=this.tpl.apply(record.data);this.bodyContent[record.id]=content;}
return content;},onMouseDown:function(e,t){e.stopEvent();var row=e.getTarget('.x-grid3-row');this.toggleRow(row);},renderer:function(v,p,record){p.cellAttr='rowspan="2"';return'<div class="x-grid3-row-expander">&#160;</div>';},beforeExpand:function(record,body,rowIndex){if(this.fireEvent('beforeexpand',this,record,body,rowIndex)!==false){if(this.tpl&&this.lazyRender){body.innerHTML=this.getBodyContent(record,rowIndex);}
return true;}else{return false;}},toggleRow:function(row){if(typeof row=='number'){row=this.grid.view.getRow(row);}
this[Ext.fly(row).hasClass('x-grid3-row-collapsed')?'expandRow':'collapseRow'](row);},expandRow:function(row){if(typeof row=='number'){row=this.grid.view.getRow(row);}
var record=this.grid.store.getAt(row.rowIndex);var body=Ext.DomQuery.selectNode('tr:nth(2) div.x-grid3-row-body',row);if(this.beforeExpand(record,body,row.rowIndex)){this.state[record.id]=true;Ext.fly(row).replaceClass('x-grid3-row-collapsed','x-grid3-row-expanded');this.fireEvent('expand',this,record,body,row.rowIndex);}},collapseRow:function(row){if(typeof row=='number'){row=this.grid.view.getRow(row);}
var record=this.grid.store.getAt(row.rowIndex);var body=Ext.fly(row).child('tr:nth(1) div.x-grid3-row-body',true);if(this.fireEvent('beforecollapse',this,record,body,row.rowIndex)!==false){this.state[record.id]=false;Ext.fly(row).replaceClass('x-grid3-row-expanded','x-grid3-row-collapsed');this.fireEvent('collapse',this,record,body,row.rowIndex);if(Ext.isIE7){this.grid.getView().refreshRow(row.rowIndex);}}}});Ext.preg('rowexpander',Ext.ux.grid.RowExpander);Ext.grid.RowExpander=Ext.ux.grid.RowExpander;;
/*GridDragDropRowOrder.js*/
Ext.namespace('Ext.ux.dd');Ext.ux.dd.GridDragDropRowOrder=Ext.extend(Ext.util.Observable,{copy:false,scrollable:false,constructor:function(config){Ext.ux.dd.GridDragDropRowOrder.superclass.constructor.call(this);if(config)
Ext.apply(this,config);this.addEvents({beforerowmove:true,afterrowmove:true,beforerowcopy:true,afterrowcopy:true});},init:function(grid){this.grid=grid;grid.enableDragDrop=true;grid.on({render:{fn:this.onGridRender,scope:this,single:true}});},onGridRender:function(grid){var self=this;this.target=new Ext.dd.DropTarget(grid.getEl(),{ddGroup:grid.ddGroup||'GridDD',grid:grid,gridDropTarget:this,notifyDrop:function(dd,e,data){if(this.currentRowEl){this.currentRowEl.removeClass('grid-row-insert-below');this.currentRowEl.removeClass('grid-row-insert-above');}
var t=Ext.lib.Event.getTarget(e);var rindex=this.grid.getView().findRowIndex(t);if(rindex===false||rindex==data.rowIndex){return false;}
if(this.gridDropTarget.fireEvent(self.copy?'beforerowcopy':'beforerowmove',this.gridDropTarget,data.rowIndex,rindex,data.selections,123)===false){return false;}
var ds=this.grid.getStore();var selections=new Array();var keys=ds.data.keys;for(var key in keys){for(var i=0;i<data.selections.length;i++){if(keys[key]==data.selections[i].id){if(rindex==key){return false;}
selections.push(data.selections[i]);}}}
if(rindex>data.rowIndex&&this.rowPosition<0){rindex--;}
if(rindex<data.rowIndex&&this.rowPosition>0){rindex++;}
if(rindex>data.rowIndex&&data.selections.length>1){rindex=rindex-(data.selections.length-1);}
if(rindex==data.rowIndex){return false;}
if(!self.copy){for(var i=0;i<data.selections.length;i++){ds.remove(ds.getById(data.selections[i].id));}}
for(var i=selections.length-1;i>=0;i--){var insertIndex=rindex;ds.insert(insertIndex,selections[i]);}
var sm=this.grid.getSelectionModel();if(sm){sm.selectRecords(data.selections);}
this.gridDropTarget.fireEvent(self.copy?'afterrowcopy':'afterrowmove',this.gridDropTarget,data.rowIndex,rindex,data.selections);return true;},notifyOver:function(dd,e,data){var t=Ext.lib.Event.getTarget(e);var rindex=this.grid.getView().findRowIndex(t);var ds=this.grid.getStore();var keys=ds.data.keys;for(var key in keys){for(var i=0;i<data.selections.length;i++){if(keys[key]==data.selections[i].id){if(rindex==key){if(this.currentRowEl){this.currentRowEl.removeClass('grid-row-insert-below');this.currentRowEl.removeClass('grid-row-insert-above');}
return this.dropNotAllowed;}}}}
if(rindex<0||rindex===false){this.currentRowEl.removeClass('grid-row-insert-above');return this.dropNotAllowed;}
try{var currentRow=this.grid.getView().getRow(rindex);var resolvedRow=new Ext.Element(currentRow).getY()-this.grid.getView().scroller.dom.scrollTop;var rowHeight=currentRow.offsetHeight;this.rowPosition=e.getPageY()-resolvedRow-(rowHeight/2);if(this.currentRowEl){this.currentRowEl.removeClass('grid-row-insert-below');this.currentRowEl.removeClass('grid-row-insert-above');}
if(this.rowPosition>0){this.currentRowEl=new Ext.Element(currentRow);this.currentRowEl.addClass('grid-row-insert-below');}
else{if(rindex-1>=0){var previousRow=this.grid.getView().getRow(rindex-1);this.currentRowEl=new Ext.Element(previousRow);this.currentRowEl.addClass('grid-row-insert-below');}
else{this.currentRowEl.addClass('grid-row-insert-above');}}}
catch(err){console.warn(err);rindex=false;}
return(rindex===false)?this.dropNotAllowed:this.dropAllowed;},notifyOut:function(dd,e,data){if(this.currentRowEl){this.currentRowEl.removeClass('grid-row-insert-above');this.currentRowEl.removeClass('grid-row-insert-below');}}});if(this.targetCfg){Ext.apply(this.target,this.targetCfg);}
if(this.scrollable){Ext.dd.ScrollManager.register(grid.getView().getEditorParent());grid.on({beforedestroy:this.onBeforeDestroy,scope:this,single:true});}},getTarget:function(){return this.target;},getGrid:function(){return this.grid;},getCopy:function(){return this.copy?true:false;},setCopy:function(b){this.copy=b?true:false;},onBeforeDestroy:function(grid){Ext.dd.ScrollManager.unregister(grid.getView().getEditorParent());}});;
/*StatefulRowExpander.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.StatefulRowExpander=Ext.extend(Ext.grid.RowExpander,{movable:false,init:function(){Tp.controls.grid.plugins.StatefulRowExpander.superclass.init.apply(this,arguments);this.grid.on('columnmove',this._onRestoreStates,this);this.grid.getStore().on('load',this._onRestoreStates,this);this.grid.on('afterrender',function(){this.grid.getView().mainBody.on("dblclick",this._onDblClick,this);},this);this.grid.on('roworderchanged',this._onRowOrderChanged,this);},_onDblClick:function(eventObj){if(eventObj.getTarget('.x-grid3-row-body-tr')==null)
return;var row=eventObj.getTarget('.x-grid3-row');var id=this.grid.store.getAt(row.rowIndex).id;this.grid.fireEvent('expandedareadblclick',id);},_onRowOrderChanged:function(rowIndex){this.collapseRow(rowIndex);},_onRestoreStates:function(){var store=this.grid.getStore();var rows=this.grid.getView().getRows();for(var i=0;i<rows.length;i++){var row=rows[i];var recordId=store.getAt(row.rowIndex).id;if(this.state[recordId])
{this.expandRow(row);}
else
{this.collapseRow(row);}}}});;
/*BunchRowsExpander.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.BunchRowsExpander=Ext.extend(Tp.controls.grid.plugins.StatefulRowExpander,{header:'<div style="float:left;width:17px;" class="x-grid3-row-collapsed" ><div class="x-grid3-row-expander">&#160;</div></div><div style="float:left;width:17px" class="x-grid3-row-expanded" ><div class="x-grid3-row-expander">&#160;</div></div>',width:40,getExpandButtonCell:function(){var view=this.grid.getView();return Ext.fly(view.getHeaderCell(0));},init:function(){Tp.controls.grid.plugins.BunchRowsExpander.superclass.init.apply(this,arguments);this.grid.on('render',this._onRebindEventHandlers,this);this.grid.on('columnmove',this._onRebindEventHandlers,this);},_onRebindEventHandlers:function(){this.getExpandButtonCell().on('mousedown',this.onToggleAllButtonPressed,this);this.getExpandButtonCell(0).child('div').dom.style.padding='0'},onToggleAllButtonPressed:function(e,t){var target=Ext.fly(t).parent().dom;var store=this.grid.getStore();if(target.className=='x-grid3-row-collapsed')
{this.applyAction(this._expandRowIfPossible.createDelegate(this));}
else
if(target.className=='x-grid3-row-expanded'){this.applyAction(this._collapseRowIfPossible.createDelegate(this));}},applyAction:function(action){var count=this.grid.getStore().getCount();for(var i=0;i<count;i++){action(i);}},_expandRowIfPossible:function(rowIndex){var record=this.grid.store.getAt(rowIndex);if(this.state[record.id]==true)
return;this.expandRow.call(this,rowIndex);},_collapseRowIfPossible:function(rowIndex){var record=this.grid.store.getAt(rowIndex);if(this.state[record.id]==false)
return;this.collapseRow.call(this,rowIndex);}});;
/*SaveButtonActivator.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.SaveButtonActivator=Ext.extend(Object,{grid:null,init:function(grid){this.grid=grid;if(this.grid.saveButton!=null)
Tp.controls.grid.plugins.SaveButtonActivator.saveButton=this.grid.saveButton;this.grid.on("afteredit",this.activateSaveButton,this);this.grid.on(this.grid.afterSuccessSaved,this.activateSaveButton,this);},activateSaveButton:function(){if(this.grid.isDataModified())
Tp.controls.grid.plugins.SaveButtonActivator.saveButton.enable();else
Tp.controls.grid.plugins.SaveButtonActivator.saveButton.disable();}})
Tp.controls.grid.plugins.SaveButtonActivator.saveButton=null;;
/*GridExpander.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.GridExpander=Ext.extend(Ext.grid.RowExpander,{innerGrids:null,movable:false,lazyRender:false,constructor:function(config){if(config==null)
return;this.innerGrids=[];this.config=config;var template={tpl:new Ext.Template(this.generateTemplate())}
Tp.controls.grid.plugins.GridExpander.superclass.constructor.call(this,template);},init:function(grid){Tp.controls.grid.plugins.GridExpander.superclass.init.call(this,grid);this.on("expand",this.onExpand,this);this.on("beforecollapse",this.onBeforeCollapse,this);this.grid.store.on("update",this.onStoreUpdate,this);this.grid.getView().on("groupChanging",this.onCollapseAllLists,this);this.grid.store.on("beforeload",this.onCollapseAllLists,this);this.grid.getView().on("rowupdated",this.onRowUpdated,this);this.grid.on("save",this.onSave,this);this.grid.on("reconfiguring",this.onCollapseAllLists,this);this.grid.colModel.on("columnmoved",this.onCollapseAllLists,this);},onExpand:function(sender,record,body,rowIndex){if(this.isListsHidden(record.id)){this.showInnerLists(record.id);return;}
for(var i=0;i<this.config.innerGridConfig.length;i++){var elementId=this.config.renderTo+"_innerGrid_"+i+"_"+record.id;var context={renderTo:elementId,Id:record.id};var grid=Tp.controls.grid.Factory.getInstance().createInnerGridPanel(this.config.innerGridConfig[i],context);this.innerGrids.push(grid);}},onBeforeCollapse:function(sender,record,body,rowIndex){this.hideInnerLists(record.id);},onStoreUpdate:function(sender,record,operation){this.hideInnerLists(record.id);},onRowUpdated:function(view,firstRow,record){this.showInnerLists(record.id);},onCollapseAllLists:function(){if(this.grid.store.getCount()==0)
return;var recordCount=this.grid.store.getCount();for(var i=0;i<recordCount;i++){var record=this.grid.store.getAt(i);if(this.state[record.id]===true){this.collapseRow(i);}}},onSave:function(){for(var i=0;i<this.innerGrids.length;i++){this.innerGrids[i].fireEvent("save");}},generateTemplate:function(){var innerDivs="";for(var i=0;i<this.config.innerGridConfig.length;i++)
innerDivs+="<div id='"+this.config.renderTo+"_innerGrid_"+i+"_{id}'></div><br />";return"<div id='"+this.config.renderTo+"_{id}'>"+innerDivs+"</div>";},showInnerLists:function(id){if(!this.state[id])
return;var listsHolderId=this.config.renderTo+"_"+id;var listsHolder=Ext.fly(listsHolderId).dom;var listStorage=Ext.fly(listsHolderId+"_listStorage").dom;while(listsHolder.childNodes.length!=0){listsHolder.removeChild(listsHolder.childNodes[0])}
while(listStorage.childNodes.length!=0){listsHolder.appendChild(listStorage.childNodes[0])}
listStorage.parentNode.removeChild(listStorage);},hideInnerLists:function(id){if(!this.state[id])
return;var listsHolderId=this.config.renderTo+"_"+id;var listsHolder=Ext.fly(listsHolderId).dom;var listStorage=document.body.appendChild(document.createElement("div"));listStorage.id=listsHolder.id+"_listStorage";listStorage.style.display="none";while(listsHolder.childNodes.length!=0){listStorage.appendChild(listsHolder.childNodes[0])}},isListsHidden:function(id){var listsStorageId=this.config.renderTo+"_"+id+"_listStorage";return Ext.fly(listsStorageId)!=null;}});;
/*ReportEditor.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.ReportEditor=Ext.extend(Object,{grid:null,INNER_GRID_PREFIX:"INNER:",init:function(grid){this.grid=grid;this.grid.on("reconfiguring",this.onReconfigure,this);this.grid.on("render",this.onRender,this);},onRender:function(){if(this.grid.colModel.getColumnCount()==0){var reportGridEditor=new Tp.Ajax.ReportGridEditor(this.grid);reportGridEditor.show();}else{this.grid.topToolbar.items.get("btnGridPrint").enable();this.grid.topToolbar.items.get("btnGridExport").enable();}},onReconfigure:function(gridHeader,limitOfRecords,arg){var isGroupFieldFound=false;if(this.grid.gridDataRequest.GroupBy!=""&&this.grid.gridDataRequest.GroupBy!=null){for(var i=0;i<gridHeader.Columns.length;i++){if(gridHeader.Columns[i].Id==this.grid.gridDataRequest.GroupBy){isGroupFieldFound=true;break;}}
if(!isGroupFieldFound){this.grid.gridDataRequest.GroupBy=null;}}
if(limitOfRecords){this.grid.gridDataRequest.Limit=limitOfRecords;}
var configFactory=Tp.controls.grid.Factory.getInstance().getConfigurationFactory();var columns=configFactory.createColumns(gridHeader,this.grid.gridDataRequest);this.reconfigureInnerGrids(arg,columns);var colModel=configFactory.createColumnModel(columns);var storeFactory=Tp.controls.grid.Factory.getInstance().getStoreFactory();var store=storeFactory.createStore(this.grid.gridDataRequest,gridHeader);var gridWidth=this.grid.getWidth();this.grid.reconfigure(store,colModel);this.grid.setWidth(gridWidth);this.grid.store.on("beforeload",this.grid.onStoreBeforeLoad,this.grid);this.grid.getBottomToolbar().bind(store);this.grid.getBottomToolbar().pageSize=limitOfRecords;this.grid.setTitle(gridHeader.Title);this.grid.getView().fitColumns();this.grid.fireEvent("initializeEvents");this.grid.topToolbar.items.get("btnGridPrint").enable();this.grid.topToolbar.items.get("btnGridExport").enable();},reconfigureInnerGrids:function(arg,columns){if(arg.InnerReports.length==0)
return;if(arg.InnerReports.length!=this.grid.innerGridConfig.length){this.refresh();return;}
for(var i=0;i<this.grid.innerGridConfig.length;i++){var customReportID=this.getInnerReportId(this.grid.innerGridConfig[i].gridDataRequest.GridID);var isFound=false;for(var j=0;j<arg.InnerReports.length;j++){if(arg.InnerReports[j].ID==customReportID)
isFound=true;}
if(!isFound){this.refresh();return;}}
var expander=new Tp.controls.grid.plugins.GridExpander()
columns.unshift(expander);},getInnerReportId:function(innerCustomReportId){if(innerCustomReportId.indexOf(this.INNER_GRID_PREFIX)==-1)
throw"Inner report prefix is missed";return innerCustomReportId.substring(this.INNER_GRID_PREFIX.length);},refresh:function(){var appendParam="reconfigure=true";var url=document.location.href;if(url.contains("?"))
appendParam="&"+appendParam;else
appendParam="?"+appendParam;if(url.contains("reconfigure=true"))
document.location.href=url;else
document.location.href=url+appendParam}});;
/*ColumnLayout.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.ColumnLayout=Ext.extend(Object,{grid:null,_onColumnLayoutChangeErrorDelegate:null,init:function(grid){this.grid=grid;this.initializeEvents();this._onErrorColumnLayoutChangeDelegate=Function.createDelegate(this,this.onErrorColumnLayoutChange);this.grid.on("initializeEvents",this.initializeEvents,this);},initializeEvents:function(){this.grid.colModel.on("columnmoved",this.onColumnMoved,this);this.grid.on("columnresize",this.onColumnResize,this);},onErrorColumnLayoutChange:function(error){SetLastWarning(error.get_message());},onColumnResize:function(index,size){this.grid.stopEditing();if(size==0){return;}
var columnId=this.grid.colModel.getColumnId(index);Tp.Web.Extensions.ExtJs.Web.GridService.ChangeFieldWidth(this.grid.gridDataRequest,columnId,size,null,this._onErrorColumnLayoutChangeDelegate);},onColumnMoved:function(columnModel,oldIndex,newIndex){var columnId=this.grid.colModel.getColumnId(newIndex);var afterColumnId=null;if(newIndex>0){afterColumnId=this.grid.colModel.getColumnId(newIndex-1);if(afterColumnId=='expander'){afterColumnId=null;}}
Tp.Web.Extensions.ExtJs.Web.GridService.ChangeFieldPosition(this.grid.gridDataRequest,columnId,afterColumnId,null,this._onErrorColumnLayoutChangeDelegate);}});;
/*Summary.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.Summary=Ext.extend(Object,{init:function(grid){this.grid=grid;this.cm=grid.getColumnModel();this.view=grid.getView();this.bindEvents();if(!this.rowTpl){this.rowTpl=new Ext.Template('<div class="x-grid3-summary-row" style="{tstyle}">','<table class="x-grid3-summary-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr>{cells}</tr></tbody>','</table></div>');this.rowTpl.disableFormats=true;}
this.rowTpl.compile();if(!this.cellTpl){this.cellTpl=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}">','<div class="x-grid3-cell-inner x-grid3-summary-cell x-grid3-col-{id}" unselectable="on">{value}</div>',"</td>");this.cellTpl.disableFormats=true;}
this.cellTpl.compile();},bindEvents:function(){this.grid.store.on("load",this.onStoreLoad,this);this.grid.on("initializeEvents",this.bindEvents,this);},renderSummary:function(o,cs){cs=cs||this.view.getColumnData();var cfg=this.cm.config;var buf=[],c,p={},cf,last=cs.length-1;for(var i=0,len=cs.length;i<len;i++){c=cs[i];cf=cfg[i];p.id=c.id;p.style=c.style;p.css=i==0?'x-grid3-cell-first ':(i==last?'x-grid3-cell-last ':'');p.value=o.data[c.name];if(p.value==undefined||p.value==="")p.value="&#160;";buf[buf.length]=this.cellTpl.apply(p);}
return this.rowTpl.apply({tstyle:'width:'+this.view.getTotalWidth()+';',cells:buf.join('')});},isGroupingOn:function(){var groups=this.view.getGroups();if(groups==null)
return false;if(groups.length==0)
return false;return groups[0].childNodes.length>1;}});;
/*TotalSummary.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.TotalSummary=Ext.extend(Tp.controls.grid.plugins.Summary,{summary:null,bindEvents:function(){Tp.controls.grid.plugins.TotalSummary.superclass.bindEvents.call(this);this.view.doRenderEnd=this.doRenderEnd.createDelegate(this);},doRenderEnd:function(cs,rs,ds,startRow,colCount,stripe){if(this.isGroupingOn()){return;}
if(rs.length<2){return;}
if(this.summary==null){return;}
return this.renderSummary({data:this.summary},cs);},onStoreLoad:function(sender,records,options){if(this.isGroupingOn()){return;}
this.summary=options.summary;this.view.refresh();}});;
/*GroupSummary.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.GroupSummary=function(config){Ext.apply(this,config);};Ext.extend(Tp.controls.grid.plugins.GroupSummary,Tp.controls.grid.plugins.TotalSummary,{groupSummaries:null,bindEvents:function(){Tp.controls.grid.plugins.GroupSummary.superclass.bindEvents.call(this);this.view.doGroupEnd=this.doGroupEnd.createDelegate(this);this.view.afterMethod('onAllColumnWidthsUpdated',this.doAllWidths,this);},findGroupSummary:function(groupValue){if(this.groupSummaries==null)
return null;for(var i=0;i<this.groupSummaries.length;i++){if(this.groupSummaries[i].GroupValue==groupValue){return this.groupSummaries[i].Summary;}
if(groupValue instanceof Date){if(groupValue.toString()==this.groupSummaries[i].GroupValue.toString()){return this.groupSummaries[i].Summary}}
if(!this.groupSummaries[i].GroupValue&&!groupValue){return this.groupSummaries[i].Summary;}}
return null;},doGroupEnd:function(buf,g,cs,ds,colCount){if(g.rs.length<2){buf.push(this.view.endGroup);return;}
var summary=this.findGroupSummary(g.gvalue);if(summary==null){buf.push(this.view.endGroup);return;}
buf.push('</div>',this.renderSummary({data:summary},cs),'</div>');},onStoreLoad:function(sender,records,options){if(!this.isGroupingOn()){return;}
this.groupSummaries=options.groupSummaries;this.view.refresh();},doAllWidths:function(ws,tw){var gs=this.view.getGroups(),s,cells,wlen=ws.length;for(var i=0,len=gs.length;i<len;i++){s=gs[i].childNodes[2];if(s==null)
continue;s.style.width=tw;s.firstChild.style.width=tw;cells=s.firstChild.rows[0].childNodes;for(var j=0;j<wlen;j++){cells[j].style.width=ws[j];}}}});;
/*DateConverter.js*/
Ext.ns('Tp.controls.grid.plugins');Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.DateConverter=Ext.extend(Object,{grid:null,init:function(grid){this.grid=grid;this.grid.on("saving",this.onDataSaving,this);this.grid.store.on("load",this.onStoreLoad,this);},onStoreLoad:function(store,rowRecords){},onDataSaving:function(records){for(i=0;i<records.length;i++){var data=records[i];for(var key in data){if(data[key]instanceof Date){data[key]=data[key].toLocalDate();}}}}});
/*HidePagingConstraint.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.HidePagingConstraint=Ext.extend(Object,{grid:null,init:function(grid){this.grid=grid;this.grid.on('initializeEvents',this.onInitializeEvents,this);this.grid.store.on('load',this.onStoreLoad,this);},onInitializeEvents:function(){this.grid.store.on('load',this.onGridChange,this);},onStoreLoad:function(){this.fixBottomToolbar();},fixBottomToolbar:function(){var toolbar=this.grid.getBottomToolbar();Tp.util.validateForNulls([toolbar]);if(this.grid.store.totalLength<=toolbar.pageSize)
toolbar.hide();else
toolbar.show();}});;
/*AssociationProxy.js*/
Ext.ns('Tp.data');Tp.data.AssociationProxy=Ext.extend(Ext.data.DataProxy,{gridDataRequest:null,constructor:function(gridDataRequest){Tp.util.validateForNulls([gridDataRequest]);Tp.data.AssociationProxy.superclass.constructor.apply(this);this.gridDataRequest=gridDataRequest;},load:function(params,reader,callback,scope,arg){var item=Tp.controls.grid.CurrentEditableItem.getInstance();Tp.util.validateForNulls([item]);var callbackDelegate=callback.createDelegate(scope,[arg],true);Tp.Web.Extensions.ExtJs.Web.GridService.GetReplacementRows(this.gridDataRequest,item.columnName,item.record.data,this.onSuccessLoadResponse.createDelegate(this),this.onErrorLoadRequest.createDelegate(this),callbackDelegate);},onSuccessLoadResponse:function(recordSet,callback){var records=Tp.data.RecordHelper.getInstance().createRecords(recordSet);callback(records);},onErrorLoadRequest:function(){throw"onErrorLoadRequest";}});;
/*RecordHelper.js*/
Ext.ns('Tp.data');Tp.data.RecordHelper=Ext.extend(Object,{createDictionaryArray:function(recordSet){var dictionary=[];for(var i=0;i<recordSet.Records.length;i++){var item=new Object();for(var j=0;j<recordSet.Header.length;j++){item[recordSet.Header[j]]=recordSet.Records[i][j];}
dictionary.push(item);}
return dictionary;},getHeaderArray:function(headerArr){var arr=[];for(var i=0;i<headerArr.length;i++){arr.push({name:headerArr[i]});}
return arr;},createRecords:function(recordSet){Tp.util.validateForNulls([recordSet]);var jsonData=new Object();jsonData.data=this.createDictionaryArray(recordSet);jsonData.results=recordSet.Records.length;var reader=new Ext.data.JsonReader({totalProperty:"results",root:"data"},Ext.data.Record.create(this.getHeaderArray(recordSet.Header)));return reader.readRecords(jsonData);},normalizeDate:function(obj){if(!(obj instanceof Date)){return obj;}
return obj.toUniversalDate();},normalizeGroupSummaryDates:function(groupSummary){for(entry in groupSummary){groupSummary[entry].GroupValue=this.normalizeDate(groupSummary[entry].GroupValue);}
return groupSummary;}});Tp.data.RecordHelper.getInstance=function(){if(Tp.data.RecordHelper.instance==null){Tp.data.RecordHelper.instance=new Tp.data.RecordHelper();}
return Tp.data.RecordHelper.instance;};;
/*ComboBox.js*/
Ext.ns('Tp.controls.grid.Editors');Tp.controls.grid.Editors.ComboBox=Ext.extend(Ext.form.ComboBox,{primaryKeyPrefix:"__key",dataLoaded:false,constructor:function(config){Tp.util.validateForNulls([config.columnConfig,config.gridDataRequest]);config.store=Tp.controls.grid.Factory.getInstance().getStoreFactory().createAssociationStore(config.columnConfig,config.gridDataRequest);config.displayField=config.columnConfig.Id;config.typeAhead=true;config.triggerAction='all';config.mode="local";config.minChars=1;config.enableKeyEvents=true;Tp.controls.grid.Editors.ComboBox.superclass.constructor.call(this,config);this.store.on("load",this.onAfterLoad,this);this.on("beforequery",this.onBeforeQuery,this);this.on("show",this.onShow,this);this.on("keydown",this.onKeyPressHandler,this);},onKeyPressHandler:function(){if(this.columnConfig.IsRequired)
return;if(!this.getRawValue().isBlank())
return;var item=Tp.controls.grid.CurrentEditableItem.getInstance();Tp.util.validateForNulls([item]);item.associativeRecord=this.createNullRecord();},createNullRecord:function(){var headers=this.getHeaders();var data=new Object();for(var i=0;i<headers.length;i++){data[headers[i]]=null;}
return new Ext.data.Record(data,null);},createEmptyOption:function(){var data=new Object();data[this.displayField]=Tp.controls.grid.components.SpecialCaseTable.getInstance().getEmptyValue(this.columnConfig.Id);var record=new Ext.data.Record(data,Tp.controls.grid.Editors.ComboBox.EmptyID);this.store.insert(0,record);},onShow:function(){this.store.removeAll();this.dataLoaded=false;},onBeforeQuery:function(){if(this.dataLoaded===true){return;}
this.store.load();},getHeaders:function(){if(this.getItemCount()==0){throw"InvalidOperation";}
var index=this.columnConfig.IsRequired?0:1;return this.store.data.items[index].fields.keys;},getItemCount:function(){if(this.columnConfig.IsRequired)
return this.store.getTotalCount();return this.store.getTotalCount()-1;},onSelect:function(record,index){Tp.controls.grid.Editors.ComboBox.superclass.onSelect.call(this,record,index);if(this.getItemCount()==0){this.setValue("");return;}
var item=Tp.controls.grid.CurrentEditableItem.getInstance();Tp.util.validateForNulls([item]);if(record.id==Tp.controls.grid.Editors.ComboBox.EmptyID){this.setValue("");item.associativeRecord=this.createNullRecord();return;}
item.associativeRecord=record;},validateDataValues:function(value,items){if(this.dataLoaded===false)
return true;for(var i=0;i<items.length;i++){if(items[i].data[this.displayField].indexOf(value)>-1)
return true;}
return false;},findPrimaryKey:function(){if(this.store.getCount()==0)
return;var keys=this.store.data.items[0].fields.keys;for(var i=0;i<keys.length;i++){if(keys[i].indexOf(this.primaryKeyPrefix)==0)
return keys[0];}},replaceTemplate:function(){var primaryKey=this.findPrimaryKey();this.view.tpl=new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item"> {[values.'+primaryKey+' == null ? "" : "<b>#"]}{'+primaryKey+'}{[values.'+primaryKey+' == null ? "" : ".</b>"]} {'+this.displayField+'}</div></tpl>');this.view.refresh();},onAfterLoad:function(){this.dataLoaded=true;if(!this.columnConfig.Facet.simpleEnum)
this.replaceTemplate();if(!this.columnConfig.IsRequired)
this.createEmptyOption();this.validator=this.validateDataValues.createDelegate(this,[this.store.data.items],1);}});Tp.controls.grid.Editors.ComboBox.EmptyID=-1;;
/*ChangeStateColumnPlugin.js*/
Ext.ns('Tp.custom.plugins');Tp.controls.Prioritization.ChangeStateColumnPlugin=Ext.extend(Object,{header:"State",width:100,menuDisabled:true,dataIndex:'entity_state',rowIndex:-1,id:'stateColumnPlugin',moveable:false,grid:null,mouseEntered:false,store:null,init:function(grid){this.grid=grid;this.grid.on('beforeedit',this.onBeforeEdit,this);this.grid.on('validateedit',this.onValidateEdit,this);if(this.editor){this.editor.on('beforequery',this.onBeforeQuery,this);this.editor.on('select',this.onSelect,this);this.editor.store.proxy.load=this.onLoad;this.editor.store.proxy.onSuccessLoadResponse=this.onSuccessLoadResponse;this.editor.store.proxy.onErrorLoadRequest=this.onErrorLoadRequest;this.editor.store.proxy.createRecords=function(state,id,text,recordType){Tp.util.validateForNulls([this.data]);var jsonData=new Object();jsonData.data=[];var nextData=Array.findOne(this.data,function(item){return item[id]==state;});if(nextData){Array.forEach(this.data,function(item){if(Array.contains(nextData.nextStates,item[id])){var i=new Object();i[id]=item[id];i[text]=item[text];jsonData.data.push(i);}});}
jsonData.results=jsonData.data.length;var reader=new Ext.data.JsonReader({totalProperty:"results",root:"data"},recordType);return reader.readRecords(jsonData);};}},editor:new Ext.form.ComboBox({typeAhead:true,triggerAction:'all',lazyRender:true,mode:'local',loadingText:'Loading...',editable:false,store:new Ext.data.SimpleStore({fields:['id','name'],proxy:new Ext.data.DataProxy({})}),valueField:'id',displayField:'name'}),onLoad:function(params,reader,callback,scope,arg){var callbackDelegate=callback.createDelegate(scope,[arg],true);if(this.data){for(var n=0;n<this.data.length;n++){if(this.data[n][arg.combo.valueField]==arg.state){var records=this.createRecords(arg.state,arg.combo.valueField,arg.combo.displayField,arg.combo.store.recordType);callbackDelegate(records);return;}}}
Tp.Web.PageServices.KanbanBoard.KanbanBoardService.loadEntityStatesByEntityState(arg.state,this.onSuccessLoadResponse.createDelegate(this),this.onErrorLoadRequest.createDelegate(this),{callback:callbackDelegate,arg:arg});},onSuccessLoadResponse:function(recordSet,e){Tp.util.validateForNulls([recordSet]);if(!this.data){this.data=[recordSet];}
else{this.data.push(recordSet);}
this.data=recordSet;var records=this.createRecords(e.arg.state,e.arg.combo.valueField,e.arg.combo.displayField,e.arg.combo.store.recordType);e.callback(records);},onErrorLoadRequest:function(){throw"onErrorLoadRequest";},onBeforeQuery:function(e){var r=this.grid.store.getAt(this.rowIndex);var state=r.data['entityStateId'];var context={combo:e.combo,state:state};Tp.util.validateForNulls([context]);e.combo.store.load(context);},onBeforeEdit:function(e){if(e.field==this.dataIndex)
this.rowIndex=e.row;},onValidateEdit:function(e){if(this.context!=null){e.value=this.context.data.name;}},onSelect:function(combo,record){var r=this.grid.store.getAt(this.rowIndex);var entityId=r.data['id'];var context={record:r,data:record.data};Tp.util.validateForNulls([context]);Tp.Web.PageServices.KanbanBoard.KanbanBoardService.changeEntityState(entityId,record.data.id,this.changeEntityState_onSuccess.createDelegate(this),this.changeEntityState_onFailure.createDelegate(this),context);},context:null,changeEntityState_onSuccess:function(x,context){this.context=context;context.record.set('entityStateId',context.data.id);context.record.set('entity_state',context.data.name);this.editor.triggerBlur();context.record.commit();Tp.util.Notifier.notify('OK','State changed to "'+context.data.name+'"');},changeEntityState_onFailure:function(x,context){this.context=null;this.editor.triggerBlur();context.record.reject();Tp.util.Notifier.error('Error','Changing state failed, please reload this page.\n<hr/>\n'+x.get_message());}});;
/*PassFailColumn.js*/
Ext.ns('Tp.custom.plugins');Tp.custom.plugins.PassFailColumn=Ext.extend(Ext.Component,{header:"Run",width:100,sortable:false,fixed:true,menuDisabled:true,dataIndex:'',id:'expander',lazyRender:true,enableCaching:true,_grid:null,init:function(grid){this._grid=grid;this._grid.on('afterrender',function(){this._grid.getView().mainBody.on("click",this.onClick,this);},this);},_isPassed:function(eventObj){return eventObj.getTarget(".x-btn-passed")==null?false:true;},getRecord:function(eventObj){var row=eventObj.getTarget('.x-grid3-row');return this._grid.store.getAt(row.rowIndex);},onClick:function(eventObj,target){if(!eventObj.getTarget('.x-btn-passed-failed'))
return;if(this._isPassed(eventObj)){this.fireEvent("pass",this._grid,this.getRecord(eventObj));return;}
this.fireEvent("fail",this._grid,this.getRecord(eventObj));},renderer:function(v,p,record){return"<button  style='width:45px'  class='x-btn-passed-failed x-btn-passed' type='button'>Pass</button>"+"&nbsp; <button style='width:45px' class='x-btn-passed-failed x-btn-failed' type='button'>Fail</button>"}});;
/*AuditDetailsExpander.js*/
Ext.ns('Tp.custom.plugins');Tp.custom.plugins.AuditDetailsExpander=Ext.extend(Tp.controls.grid.plugins.BunchRowsExpander,{_expandDivId:"hd_{ID}_{Entity}_{InnerEntity}",constructor:function(){Tp.custom.plugins.AuditDetailsExpander.superclass.constructor.call(this,{tpl:this.getExpandTemplate(),enableCaching:false});this.on("expand",this.onExpand,this);},renderer:function(v,p,record){if(record.data.Modification==2)
return"&nbsp;";return Tp.custom.plugins.AuditDetailsExpander.superclass.renderer.call(this,v,p,record);},getExpandTemplate:function(){return new Ext.Template('<div style="padding-left:8px;" class=" wrap" id="'+this._expandDivId+'"/>');},getDivIdTemplate:function(){return new Ext.Template(this._expandDivId);},onExpand:function(sender,record,body,rowIndex){var div=Ext.get(this.getDivIdTemplate().apply(record.data));div.update('Loading details...');var entity=record.data.Entity;if(record.data.InnerEntity!=null&&record.data.InnerEntity!='')
entity=record.data.InnerEntity;var handler=Function.createDelegate(this,this.onCompleteLoadingDetails);Tp.Web.Extensions.ExtJs.AuditHistoryListService.GetChanges(record.data.ID,entity,handler,null,div);},onCompleteLoadingDetails:function(changes,div){var html="";var templateChange=new Ext.Template('<b>{Field}</b> changed from <span style="color:red;">{OldValue}</span> to <span style="color:green;">{NewValue}</span><br/>');var templateInitialize=new Ext.Template('<b>{Field}</b>: <span style="color:green;">{NewValue}</span><br/>');for(var i=0;i<changes.length;i++){var template=templateChange;if(changes[i].OldValue==null||changes[i].OldValue==''||changes[i].OldValue=='Empty'){var template=templateInitialize;changes[i].OldValue="Empty";}
if(changes[i].NewValue==null)
changes[i].NewValue="Empty";changes[i].OldValue=this.formatValue(changes[i].OldValue,changes[i].ChangeID,changes[i].NativeField);changes[i].NewValue=this.formatValue(changes[i].NewValue,changes[i].ChangeID,changes[i].NativeField);html+=template.apply(changes[i]);}
if(changes.length==0)
html='no any changes...';div.update(html);},formatValue:function(value,changeID,nativeField){if(value&&typeof(value.toLocalDate)=='function')
value=value.format('d-M-Y H:i:s');if(value!=null&&value.toString()=="true")
return"Yes";if(value!=null&&value.toString()=="false")
return"No";if(nativeField=='Description'&&changeID.indexOf('Attachment-Description')==-1)
return value;if(changeID.indexOf('TestCase-Success')>0||changeID.indexOf('TestCase-Steps')>0)
return value;if(changeID.indexOf('Request-SourceType')>0){if(value==1)
return"Email";if(value==2)
return"Phone";if(value==3)
return"Internal";if(value==4)
return"External";}
return Ext.util.Format.htmlEncode(value);}});
/*TestCaseDetailsExpander.js*/
Ext.ns('Tp.custom.plugins');Tp.custom.plugins.TestCaseDetailsExpander=Ext.extend(Tp.controls.grid.plugins.BunchRowsExpander,{_expandedRowIndex:-1,_expandDivId:"hd_{id}",constructor:function(){Tp.custom.plugins.TestCaseDetailsExpander.superclass.constructor.call(this,{tpl:this.getExpandTemplate(),enableCaching:false});this.addEvents('onCompleteLoading');this.on("expand",this.onExpand,this);},init:function(grid){Tp.custom.plugins.TestCaseDetailsExpander.superclass.init.call(this,grid);this.grid.on("entityStateChanging",this.onEntityStateChanged,this);},onEntityStateChanged:function(entityId){var store=this.grid.getStore();var currentRowIndex=store.indexOfId(entityId);this.collapseRow(currentRowIndex);if(currentRowIndex==(this.grid.getStore().getCount()-1))
return;var nextRowIndex=currentRowIndex+1;this.expandRow(nextRowIndex);},renderer:function(v,p,record){if(record.data.Modification==2)
return"&nbsp;";return Tp.custom.plugins.TestCaseDetailsExpander.superclass.renderer.call(this,v,p,record);},getExpandTemplate:function(){return new Ext.Template('<div id="'+this._expandDivId+'"/>');},getDivIdTemplate:function(){return new Ext.Template(this._expandDivId);},onExpand:function(sender,record,body,rowIndex){var div=Ext.get(this.getDivIdTemplate().apply(record.data));div.update('Loading details...');record.div=div;var handler=Function.createDelegate(this,this.onCompleteLoadingDetails);Tp.Web.Extensions.ExtJs.TestCaseListService.GetChanges(record.id,handler,null,record);this._expandedRowIndex=rowIndex;},onCompleteLoadingDetails:function(changes,record){var html="";var div=record.div;if(changes.steps.length>0||changes.success.length>0){var templateSteps=new Ext.Template('<table style="padding-left:4px;width:100%" cellspacing="0" cellpadding="5"><tr><td id="tdSteps_'+div.dom.id+'" width="50%"><b>Steps</b><br/><br/>{steps}</td><td id="tdSuccess_'+div.dom.id+'" width="50%"><b>Success</b><br/><br/>{success}</td></tr></table><br />');html+=templateSteps.apply(changes);}
div.update(html);var tdSteps=Ext.get('tdSteps_'+div.dom.id);var tdSuccess=Ext.get('tdSuccess_'+div.dom.id);this.resizeImages(tdSteps);this.resizeImages(tdSuccess);this.onCompleteLoading();},onCompleteLoading:function(){},resizeImages:function(parentElement){if(parentElement==null){return;}
var images=Ext.query('img',parentElement.dom.id);for(var n=0;n<images.length;n++){var img=Ext.fly(images[n]);img.setVisibilityMode(Ext.Element.DISPLAY);img.setVisible(true,true);if(img.getWidth()>parentElement.getWidth()){var ratio=img.getHeight()/img.getWidth();var newImgHeight=ratio*(parentElement.getWidth()-50);img.setHeight(newImgHeight);img.setWidth(parentElement.getWidth()-50);img.applyStyles({display:'block'})
var anchor=new Ext.Element(document.createElement('a'));anchor.set({rel:'lightbox',href:img.getAttribute('src')});anchor.replace(img.dom);anchor.appendChild(img.dom);}}}});
/*GridDragDropRowOrder.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.GridDragDropRowOrder=Ext.extend(Ext.ux.dd.GridDragDropRowOrder,{constructor:function(){Tp.controls.grid.plugins.GridDragDropRowOrder.superclass.constructor.apply(this,arguments);this.on("afterrowmove",this._onAfterRowMove,this);this.on("beforerowmove",this._onBeforeRowMove,this);},_onBeforeRowMove:function(gridDropTarget,index,targetIndex,selections){this.grid.fireEvent("beforerowmove",gridDropTarget,index,targetIndex,selections);},_onAfterRowMove:function(gridDropTarget,index,targetIndex,selections){this.grid.fireEvent("roworderchanged",targetIndex);}});Ext.reg('tpgriddragdroproworder',Tp.controls.grid.plugins.GridDragDropRowOrder);;
/*ErrorHighLighter.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.ErrorHighLighter=Ext.extend(Object,{grid:null,gridErrorRowClass:"gridErrorRow",init:function(grid){this.grid=grid;this.grid.on(this.grid.successSaved,this.onSuccessSaved,this);this.grid.on(this.grid.fatalErrorSaved,this.onFatalErrorSaved,this);this.grid.store.on("load",this.onStoreLoad,this);this.grid.on("initializeEvents",this.onInitializeEvents,this);},onInitializeEvents:function(gridHeader,limitOfRecords,arg){this.grid.store.on("load",this.onStoreLoad,this);},onStoreLoad:function(sender,records,options){if(options.command){options.command();this.grid.store.lastOptions.command=null;}},onSuccessSaved:function(errors){this.clearAllMessages();if(errors.length==0){this.commitChangesSave();SetLastAction('Changes saved successfully.');this.grid.store.reload();}
else{var command=Function.createDelegate(this,function(){this.populateErrors(errors);this.grid.store.rejectChanges();});this.commitChangesSave();this.grid.store.reload({command:command});}},onFatalErrorSaved:function(fatalError){this.clearAllMessages();this.grid.store.rejectChanges();SetLastWarning(fatalError.get_message());},highLightErrors:function(errors){Tp.util.validateForNulls([errors]);if(errors.length!=0){var selectionModel=this.grid.getSelectionModel();for(var i=0;i<errors.length;i++){var index=this.grid.store.indexOfId(errors[i].Values["id"]);if(index==-1){throw"Row not found";}
if(selectionModel.isSelected(index)){selectionModel.deselectRow(index);}
var row=Ext.get(this.grid.getView().getRow(index));row.addClass(this.gridErrorRowClass);}}},createErrorMessage:function(error){if(error.ColumnId){return String.format("Item with ID = {0} is not saved. The problem is in the \"{1}\" column. {2}<br/>",error.Values["id"],error.ColumnId,error.Message);}else{return String.format("Item with ID = {0} is not saved. {1}<br/>",error.Values["id"],error.Message);}},populateErrors:function(errors){Tp.util.validateForNulls([errors]);if(errors.length!=0){this.highLightErrors(errors);var messageDump="";for(var i=0;i<errors.length;i++){messageDump+=this.createErrorMessage(errors[i]);}
SetLastWarning(messageDump);}},rejectChangesForItems:function(errors){for(var i=0;i<errors.length;i++){Tp.util.validateForNulls(errors[i].Values["id"]);this.grid.store.getById(errors[i].Values["id"]).reject();}},clearAllMessages:function(){SetLastAction(null);SetLastWarning(null);Tp.collections.createMixedCollection(Ext.getBody().query("."+this.gridErrorRowClass)).each(function(item){Ext.fly(item).removeClass(this.gridErrorRowClass)});},commitChangesSave:function(){try{this.grid.store.commitChanges();}catch(e){}}});;
/*Renders.js*/
Ext.ns('Tp.renders');Tp.renders.Render=Ext.extend(Object,{entityLinkRender:function(entityKind){return function(val){return"<a onclick='Tp.renders.getInstance().dblClickHandler(this)' href='javascript:JumpTo("+val+", \""+entityKind+"\");'>"+val+"</a>";};},dblClickHandler:function(element){var timerId=window.setTimeout(runClick,1000);event.returnValue=false;element.ondblclick=function(){window.clearTimeout(timerId);};function runClick(){element.onclick=function(){return true;};element.click();}}});Tp.renders.type="Tp.renders.Render";Tp.renders.getInstance=function(){if(Tp.renders.instance==null){Tp.renders.instance=eval("new "+Tp.renders.type);}
return Tp.renders.instance;};function stringRenderer(){return function(value){if(value){return Ext.util.Format.htmlEncode(value);}
return"";};}
function boolRenderer(){return function(value){if(value===true){return"<img src='"+Application.baseUrl+"/img/icons/yes.gif' />";}
return"<img src='"+Application.baseUrl+"/img/icons/no.gif' />";};}
function richTextRenderer(){return function(value){if(value){return Ext.util.Format.stripTags(value);}
return"";};}
function entityIconIdRenderer(entityKind){return function(value){return entityIconRenderer(entityKind)(value)+"&nbsp;&nbsp;&nbsp;"+viewLinkRenderer(entityKind)(value);};}
function urlRenderer(){return function(value){if(value){var url="";var label="";var s=value.split("\n");if(s.length==2){url=Ext.util.Format.htmlEncode(s[1]);label=Ext.util.Format.htmlEncode(s[0])||url;}
else{url=Ext.util.Format.htmlEncode(value);label=Ext.util.Format.htmlEncode(value);}
return"<a href=\""+url+"\" target=\"_blank\">"+label+"</a>";}
return"";};}
function entityRenderer(){return function(value){if(value){var url="";var entityId="";var entityType="";var label="";var icon="";var s=value.split("\n");if(s.length==3){entityId=s[1];entityType=s[2];url=Application.getViewUrl(entityId,entityType);label=Ext.util.Format.htmlEncode(s[0]);icon="<img class='icon' src='"+Application.baseUrl+"/img/"+entityType+".gif'>&nbsp;";}
else{return value;}
return icon+"<a href=\""+url+"\" target=\"_blank\">"+label+"</a>";}
return"";};}
function enumRenderer(dictionary){return function(value){if(value){for(n in dictionary){if(dictionary[n].Key==value){return dictionary[n].Value;}}
return"<span style=\"color: red;\">Undefined</span>";}
return"";};}
function viewLinkRenderer(entityKind){return function(value){if(value!=null){return"<a href=\""+Application.getViewUrl(value,entityKind)+"\">"+value+"</a>";}
return"";};}
function entityIconRenderer(entityKind){return function(value){if(value!=null){return String.format("<img class='x-item-icon' src='{0}/img/{1}.gif' />",Application.baseUrl,entityKind);}
return"";};};
/*Utils.js*/
window.jsonParse=function(){var r="(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)",k='(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))';k='(?:"'+k+'*")';var s=new RegExp("(?:false|true|null|[\\{\\}\\[\\]]|"+r+"|"+k+")","g"),t=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),u={'"':'"',"/":"/","\\":"\\",b:"\u0008",f:"\u000c",n:"\n",r:"\r",t:"\t"};function v(h,j,e){return j?u[j]:String.fromCharCode(parseInt(e,16))}var w=new String(""),x=Object.hasOwnProperty;return function(h,j){h=h.match(s);var e,c=h[0],l=false;if("{"===c)e={};else if("["===c)e=[];else{e=[];l=true}for(var b,d=[e],m=1-l,y=h.length;m<y;++m){c=h[m];var a;switch(c.charCodeAt(0)){default:a=d[0];a[b||a.length]=+c;b=void 0;break;case 34:c=c.substring(1,c.length-1);if(c.indexOf("\\")!==-1)c=c.replace(t,v);a=d[0];if(!b)if(a instanceof Array)b=a.length;else{b=c||w;break}a[b]=c;b=void 0;break;case 91:a=d[0];d.unshift(a[b||a.length]=[]);b=void 0;break;case 93:d.shift();break;case 102:a=d[0];a[b||a.length]=false;b=void 0;break;case 110:a=d[0];a[b||a.length]=null;b=void 0;break;case 116:a=d[0];a[b||a.length]=true;b=void 0;break;case 123:a=d[0];d.unshift(a[b||a.length]={});b=void 0;break;case 125:d.shift();break}}if(l){if(d.length!==1)throw new Error;e=e[0]}else if(d.length)throw new Error;if(j){var p=function(n,o){var f=n[o];if(f&&typeof f==="object"){var i=null;for(var g in f)if(x.call(f,g)&&f!==n){var q=p(f,g);if(q!==void 0)f[g]=q;else{i||(i=[]);i.push(g)}}if(i)for(g=i.length;--g>=0;)delete f[i[g]]}return j.call(n,o,f)};e=p({"":e},"")}return e}}();var isPageLoaded=false;var __modalPopups;function ReleaseIterationSetCurrent(id,type){var selectElement=Ext.get(id);var option=Ext.DomQuery.selectNode("select[id="+id+"] option[value*="+type+"]:contains((current)");if(option==null){return;}
selectElement.dom.selectedIndex=option.index;}
function ChangeElementsAvailability(enabled){function switcher(enabled){return function(item){if(enabled){item.removeAttribute('disabled');}
else{item.setAttribute('disabled',true);}};}
Tp.collections.createMixedCollection(Ext.getBody().query('input')).each(switcher(enabled));Tp.collections.createMixedCollection(Ext.getBody().query('textarea')).each(switcher(enabled));Tp.collections.createMixedCollection(Ext.getBody().query('select')).each(switcher(enabled));}
function clearDropDown(dropDown){while(0<dropDown.length)
dropDown.remove(0);}
function showModalPopup(element,options){var win=createModalPopup(element,options);win.show();return win;}
function createModalPopup(element,options){if(!__modalPopups){__modalPopups={};}
options=options||{};var win=__modalPopups[Ext.id(element)];var body=Ext.getBody();if(!win){win=new Ext.Window({layout:'fit',title:options.title||'',width:options.width||650,height:options.height||400,closeAction:'hide',renderTo:options.renderTo||'aspnetForm',plain:true,modal:true,maximizable:true,items:[{xtype:'panel',layout:'fit',autoScroll:true,contentEl:element}]});win.alignTo(body,'c-c');Ext.get(element).on("keypress",function(arg){if(arg.getKey()==Ext.EventObject.ENTER){arg.stopPropagation();if(!Ext.isIE){arg.preventDefault();}}});__modalPopups[element]=win;}
else{if(options.title)
win.setTitle(options.title);}
var yCoord=body.getScroll().top+(body.getViewSize().height-win.height)/2;if(yCoord!=win.y){win.setPagePosition(win.x,body.getScroll().top+(body.getViewSize().height-win.height)/2);ReinitializeExtJsDom(win);}
return win;}
function ReinitializeExtJsDom(win){win.show();win.hide();}
function hideModalPopup(element){if(__modalPopups&&__modalPopups[element]){__modalPopups[element].hide();}}
function disposeModalPopup(element){if(__modalPopups&&__modalPopups[element]){__modalPopups[element].destroy();__modalPopups[element]=null;}}
function RedirectToProjectDashboard(projectId){if(isNaN(projectId)||projectId===null||projectId===undefined){return false;}
var onGetSerializedProjectContextSucceed=function(response){var context=jsonParse(response.responseText).d;document.location.href=Application.baseUrl+"/Default.aspx?"+context;};projectContextService.getSerializedProjectContextParameter(projectId,getQuerystring("acid"),onGetSerializedProjectContextSucceed);return true;}
function DisableButtonOnSubmit(button,validationGroup){if(typeof(Page_ClientValidate)=='function'){var isPageValid=typeof(validationGroup)=='undefined'||validationGroup==null?Page_ClientValidate(""):Page_ClientValidate(validationGroup);if(!isPageValid){return false;}}
button.disabled=true;button.value='Working...';}
function SetLastAction(message,isRequiredHtmlEncode){var lastAction=Ext.getBody().select(".lastAction");lastAction.setVisibilityMode(Ext.Element.DISPLAY);if(message){lastAction.setStyle('display','block');isRequiredHtmlEncode?lastAction.update(Ext.util.Format.htmlEncode(message)):lastAction.update(message);lastAction.show();DisplayNotification(lastAction.el.dom);}
else{lastAction.setStyle('display','none');lastAction.hide();}}
function SetLastWarning(message){var lastAction=Ext.getBody().query(".lastWarning")[0];var lastActionEl=Ext.get(lastAction);if(message){lastActionEl.update(message);lastActionEl.show();DisplayNotification(lastAction);}
else{lastActionEl.setStyle('display','none');lastActionEl.hide();}}
function DisplayError(message){Ext.getBody().select("messageHolder").update("<div id='errMsg' style='padding-left:15px;padding-right:15px;background-color:#FFB3B3;'>"+message+"</div>");DisplayNotification(Ext.getBody().query("errMsg")[0]);}
function ShowMessage(){DisplayNotification(Ext.getBody().query(".lastAction")[0]);}
function ShowWarning(){DisplayNotification(Ext.getBody().query(".lastWarning")[0]);}
function DisplayNotification(msgLabel){if(msgLabel==null){throw"label is null";}
msgLabel.style.display='block';}
function TpZeroFix(sender,arg){if(arg.get_value()==0)arg.set_value('0');Ext.util.Format.htmlEncode(arg.get_value())}
function TpHtmlEncoder(sender,arg){arg.set_value(Ext.util.Format.htmlEncode(arg.get_value()));}
function URLContainsParameter(url,parameterName){var regEx=new RegExp("[?&]"+parameterName+"=");return regEx.test(url);}
function getMousePosition(domEvent){var posx=0;var posy=0;if(domEvent){var e=domEvent.rawEvent;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY;}
else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft
+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop
+document.documentElement.scrollTop;}}
return{x:posx,y:posy};}
function JumpTo(id,entityType){document.location.href=Application.getViewUrl(id,entityType);}
function CheckForUpdates(){progressDialog.setMessage("Checking for updates...");StateKeeper.CheckForUpdates(OnCheckUpdates);}
function OnCheckUpdates(result){progressDialog.hide();if(!result)
return;if(result.Version)
message="New version <b>"+result.Version+"</b> released.";else
message=result.Message;Ext.MessageBox.show({title:'',msg:message,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO});}
Sys.Application.add_init(function(){isPageLoaded=true;window.onbeforeunload=function(){var manager=Sys.WebForms.PageRequestManager.getInstance();if(manager.get_isInAsyncPostBack())
manager.abortPostBack();};});Ext.ns('Tp.util.permissions');Tp.util.permissions.toggleAll=function(selector,sender){var el=Ext.fly(sender);if(el.getAttribute('checked')==null)
el.set({checked:'false'});var isChecked=el.getAttribute('checked')=='true';var check=!isChecked;var elements=Ext.query(selector);Ext.each(elements,function(element){if(check)
element.checked=true;else
element.checked=false;});sender.innerText=check?'Uncheck All':'Check All';Ext.fly(sender).set({checked:check?'true':'false'});}
Tp.util.permissions.isCheckedAll=function(selector){var elements=Ext.query(selector);var allChecked=true;Ext.each(elements,function(element){if(element.checked==false)
allChecked=false;});return allChecked;}
function getQuerystring(key,default_){if(default_==null)default_="";key=key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regex=new RegExp("[\\?&]"+key+"=([^&#]*)");var qs=regex.exec(document.location.href.toLowerCase());if(qs==null)
return default_;else
return qs[1];};
/*SelectionHandlerBehavior.js*/
Type.registerNamespace('Tp.Atlas.Extenders.SelectionHandler');Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior=function(){Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior.initializeBase(this);this._lastSelection="";this._targetControl=null;}
Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior.prototype={initialize:function(){Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior.callBaseMethod(this,'initialize');Ext.getBody().on({'mouseup':this._click,scope:this});},dispose:function(){Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior.callBaseMethod(this,'dispose');},getSelection:function(){var userSelection;if(window.getSelection){userSelection=window.getSelection();}
else if(document.selection){userSelection=document.selection.createRange();}
return window.getSelection?userSelection.toString():userSelection.text;},_click:function(e){var selection=this.getSelection();if(selection&&selection!=""&&this._lastSelection!=selection)
{this._lastSelection=selection;this._show(e.getPageX(),e.getPageY());}
else
{if(!selection||selection=="")
{this._lastSelection="";}
this._hide();}},_show:function(posx,posy)
{var element=this._targetControl;element.style.top=posy+"px";element.style.left=posx+"px";element.style.visibility="visible";},_hide:function()
{var ie5menu=this._targetControl;ie5menu.style.visibility="hidden";},get_TargetControl:function()
{return this._targetControl;},set_TargetControl:function(value)
{this._targetControl=value;}}
Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior.registerClass('Tp.Atlas.Extenders.SelectionHandler.SelectionHandlerBehavior',Sys.Component);;
/*HoverBehavior.js*/
Type.registerNamespace('Tp.Atlas.Extenders');Tp.Atlas.Extenders.HoverBehavior=function(element)
{Tp.Atlas.Extenders.HoverBehavior.initializeBase(this);this._linkSelector=null;this._panelSelector=null;}
function Tp$Atlas$Extenders$HoverBehavior$show(link,panel)
{var extPanel=Ext.get(panel);var onMouseOut=function(e){if(!e.within(extPanel,true))
{extPanel.hide();extPanel.un('mouseout',onMouseOut);}};extPanel.alignTo(link,"?").show().on({'mouseout':onMouseOut});Ext.get(link).on({'mouseout':function(e){if(!extPanel.getRegion().adjust(-5,-5,5,5).contains(e.getPoint())){extPanel.hide();}},single:true});Ext.get(document).on({'keyup':function(e){if(e.getKey()==e.ESC){extPanel.hide();}},single:true});}
Tp.Atlas.Extenders.HoverBehavior.show=Tp$Atlas$Extenders$HoverBehavior$show;Tp.Atlas.Extenders.HoverBehavior.prototype={initialize:function(){var dq=Ext.DomQuery;Ext.get(dq.select(this._linkSelector)).on({'click':this._onClick,scope:this});},_onClick:function(e,target,o){var link=e.getTarget();var panel=this._findPanel(link);if(!panel)return;Tp.Atlas.Extenders.HoverBehavior.show(link,panel);},_findPanel:function(link){var dq=Ext.DomQuery;var panel=dq.select(this._panelSelector);if(panel.length==1)
panel=panel[0];else if(panel.length>1)
panel=dq.selectNode(link.tagName+'#'+link.id+'~'+this._panelSelector);else
panel=null;return panel;},dispose:function(){Tp.Atlas.Extenders.HoverBehavior.callBaseMethod(this,'dispose');},get_panelSelector:function(){return this._panelSelector;},set_panelSelector:function(value){this._panelSelector=value;},get_linkSelector:function(){return this._linkSelector;},set_linkSelector:function(value){this._linkSelector=value;}}
Tp.Atlas.Extenders.HoverBehavior.registerClass('Tp.Atlas.Extenders.HoverBehavior',Sys.Component);;
/*Dialog.js*/
var currentDialogID=null;function focusFirstInput(panel){var arr=panel.getElementsByTagName('INPUT');for(var index=0;index<arr.length;index++){if(arr[index].type=='text'&&Ext.fly(arr[index]).isVisible()){arr[index].focus();return;}}}
function HideDLG(dialogToShow){var panel=$get(currentDialogID);panel.style.display="none";panel.onmousedown=null;if(dialogToShow==null||currentDialogID==dialogToShow)
currentDialogID=null;document.body.onkeypress=null;document.body.onmousedown=null;}
function ShowFilterDlg(DialogID,dialogPlaceholderId,parent,position){if(currentDialogID!=null){HideDLG(DialogID);}
currentDialogID=DialogID;var panel=$get(DialogID);var innerTable=$get(dialogPlaceholderId);panel.style.display='block';var panelBounds=Sys.UI.DomElement.getBounds(innerTable);var parentBounds=Sys.UI.DomElement.getBounds(parent);var x=position=='left'?parentBounds.x-panelBounds.width+parentBounds.width:parentBounds.x;var y=parentBounds.y+parentBounds.height+5;Sys.UI.DomElement.setLocation(panel,x,y);focusFirstInput(panel);document.body.onkeypress=function(eventObj){if(eventObj==null)
eventObj=event;if(eventObj.keyCode==27)
HideDLG();}};
/*InlineEditController.js*/
function InlineEditController(gridID,editAreasSettings,onSaveEventHandler,isExplicitSave){var INLINE_PANEL_FLAG_ATTRIBUTE='inlineeditattribute';var INLINE_ROW_ID_ATTRIBUTE='rowid';var INLINE_ACTION_ATTRIBUTE='action';var INLINE_EDIT_ACTION='edit';var INLINE_SAVE_ACTION='save';var INLINE_CANCEL_ACTION='cancel';var INLINE_INPUT_CSSCLASS='input smallFont';var INLINE_ROW_BACKGROUNDCOLOR_ACTIVE='#B6DDAB';var INLINE_ROW_BACKGROUNDCOLOR_NORMAL='';var activeInlineEditPanel;var thisRefInlineEditController=this;var previousStates=new Object();Sys.Application.add_load(attachEvents);Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(cancelEditRow);function attachEvents(){var grid=$get(gridID);if(grid==null)
throw"ArgumentException: 'Unable to find grid'.";grid.onclick=onGridClick;for(var index=0;index<grid.rows.length;index++){var cells=grid.rows[index].cells;for(var index1=0;index1<cells.length;index1++){var element=findInlineEditPanelInElement(cells[index1]);if(element==null)
continue;if(element.attributes==null)
continue;if(element.attributes[INLINE_PANEL_FLAG_ATTRIBUTE]!=null){var row=findRowForElement(element);row.ondblclick=onDblClickRow;row.onkeypress=onEditing;var children=extractDHTMLElements(element);for(var index2=0;index2<children.length;index2++){var control=children[index2];if(control.attributes[INLINE_ACTION_ATTRIBUTE]==null)
continue;switch(control.attributes[INLINE_ACTION_ATTRIBUTE].nodeValue){case INLINE_EDIT_ACTION:control.onclick=onEditAction;break;case INLINE_SAVE_ACTION:control.onclick=onSaveAction;break;case INLINE_CANCEL_ACTION:control.onclick=onCancelAction;break;default:;}}}}}}
function findInlineEditPanelInElement(element){if(element==null)
return null;if(element.attributes[INLINE_PANEL_FLAG_ATTRIBUTE])
return element;var children=extractDHTMLElements(element);if(children==null)
return null;for(var index=0;index<children.length;index++){var inlineEditPanel=findInlineEditPanelInElement(children[index]);if(inlineEditPanel)
return inlineEditPanel;}
return null;}
function isRowBelongToGrid(row){var grid=$get(gridID);if(grid.rows.length<=row.rowIndex)
return false;if(grid.rows[row.rowIndex]==row)
return true;else
return false;}
function findRowForElement(element){if(element==null)
return null;var level=15;var parentElement=element;while(!(parentElement.tagName=="TR"&&isRowBelongToGrid(parentElement))){level--;parentElement=parentElement.parentNode;if(level==0||parentElement==null)
return null;}
return parentElement;}
function highLightInlineEditRow(bgColor){var row=findRowForElement(activeInlineEditPanel);if(row!=null){for(var index=0;index<row.cells.length;index++){row.cells[index].style.backgroundColor=bgColor;}}}
function getActiveInlineEditPanelID(){if(activeInlineEditPanel.attributes[INLINE_ROW_ID_ATTRIBUTE]!=null)
return activeInlineEditPanel.attributes[INLINE_ROW_ID_ATTRIBUTE].nodeValue;else
throw"InvalidOperationException: 'The row must be in edit state'."}
function getEditAreaID(property){var editAreaID=getActiveInlineEditPanelID();return property+editAreaID;}
function editTextField(editArea){var currentField=getFirstDHTMLElement(editArea);currentField.style.display='none';var textBox=document.createElement('input');textBox.className=INLINE_INPUT_CSSCLASS;textBox.style.width='250px';textBox.style.marginRight='5px';textBox.value=trimText(currentField.innerText);editArea.appendChild(textBox);textBox.style.display='block';}
function editDataSourceField(editArea,dataSourceControlID,isProjectDependent,projectId){var currentField=getFirstDHTMLElement(editArea);currentField.style.display='none';var dataSourceControl=!isProjectDependent?$get(dataSourceControlID):$get(Ext.get(dataSourceControlID).child("div[@projectId="+projectId+"]").id);dataSourceControl.style.display='';dataSourceControl.selectedIndex=0;editArea.appendChild(dataSourceControl);}
function setFocusForEditableField(editArea){var children=extractDHTMLElements(editArea);var editField=children[1];editField.focus();}
function selectValueInDataSourceControl(editArea){var children=extractDHTMLElements(editArea);var dataSourceControl=children[1];if(dataSourceControl.tagName!='SELECT'){if(Ext.get(dataSourceControl).child('select')==null||Ext.get(dataSourceControl).child('select').dom.tagName!='SELECT')
return;dataSourceControl=Ext.get(dataSourceControl).child('select').dom;}
var field=children[0];fieldValue=field.innerText;dataSourceControl.selectedIndex=0;for(var index=0;index<dataSourceControl.options.length;index++){if(trimText(dataSourceControl.options[index].text)==trimText(fieldValue)){dataSourceControl.selectedIndex=index;return;}}}
function editRow(inlineEditPanel){if(activeInlineEditPanel!=null)
throw"InvalidOperationException: 'There must be no items in edit state."
activeInlineEditPanel=inlineEditPanel;var children=extractDHTMLElements(activeInlineEditPanel);for(var index=0;index<children.length;index++){var control=children[index];if(control.attributes[INLINE_ACTION_ATTRIBUTE]==null)
continue;switch(control.attributes[INLINE_ACTION_ATTRIBUTE].nodeValue){case INLINE_EDIT_ACTION:control.style.display='none';break;case INLINE_SAVE_ACTION:control.style.display='';break;case INLINE_CANCEL_ACTION:control.style.display='';break;default:;}}
highLightInlineEditRow(INLINE_ROW_BACKGROUNDCOLOR_ACTIVE);var itemID=getActiveInlineEditPanelID();previousStates[itemID]=new Object();for(var index=0;index<editAreasSettings.length;index++){var editAreaSettings=editAreasSettings[index];var editAreaID=getEditAreaID(editAreaSettings.areaPrefix);var editArea=$get(editAreaID);if(editArea==null)
continue;previousStates[itemID][editAreaID]=editArea.parentNode.innerHTML;if(editAreaSettings.onEditValue!=null){editAreaSettings.onEditValue(editAreaSettings,editArea,getCurrentProjectId());}
else{if(editAreaSettings.areaDataSourceControlID==null)
editTextField(editArea);else{editDataSourceField(editArea,editAreaSettings.areaDataSourceControlID,editAreaSettings.isProjectDependent,getCurrentProjectId());}}
if(editAreaSettings.onSelectValue!=null)
editAreaSettings.onSelectValue(editArea,editAreaSettings,getCurrentProjectId());else
selectValueInDataSourceControl(editArea);if(editAreaSettings.isFocus)
setFocusForEditableField(editArea);}}
function getCurrentProjectId(){var dataRow=Ext.get(Ext.get(activeInlineEditPanel).findParent("tr",3));return dataRow.child("input[@type=hidden]").getValue();}
function cancelEditTextField(editArea){var children=extractDHTMLElements(editArea);var currentField=children[0];currentField.style.display='';editArea.removeChild(children[1]);}
function cancelEditDataSourceField(editArea,editAreaSettings){var children=extractDHTMLElements(editArea);var currentField=children[0];currentField.style.display='';children[1].style.display='none';if(!Ext.isEmpty(editAreaSettings.areaDataSourceControlID)&&editAreaSettings.isProjectDependent){var areaDataSourceControl=Ext.get(editAreaSettings.areaDataSourceControlID).dom;areaDataSourceControl.appendChild(children[1]);}
else{document.body.appendChild(children[1]);}}
function cancelEditRow(){if(activeInlineEditPanel==null)
return;var children=extractDHTMLElements(activeInlineEditPanel);for(var index=0;index<children.length;index++){var control=children[index];if(control.attributes[INLINE_ACTION_ATTRIBUTE]==null)
continue;switch(control.attributes[INLINE_ACTION_ATTRIBUTE].nodeValue){case INLINE_EDIT_ACTION:control.style.display='';break;case INLINE_SAVE_ACTION:control.style.display='none';break;case INLINE_CANCEL_ACTION:control.style.display='none';break;default:;}}
highLightInlineEditRow(INLINE_ROW_BACKGROUNDCOLOR_NORMAL);for(var index=0;index<editAreasSettings.length;index++){var editAreaSettings=editAreasSettings[index];var editArea=$get(getEditAreaID(editAreaSettings.areaPrefix));if(editArea==null)
continue;if(editAreaSettings.onCancelEditValue!=null){editAreaSettings.onCancelEditValue(editAreaSettings,editArea,getCurrentProjectId());}
else{if(editAreaSettings.areaDataSourceControlID==null)
cancelEditTextField(editArea);else
cancelEditDataSourceField(editArea,editAreaSettings);}
if(editAreaSettings.onRenderEditedValue!=null)
editAreaSettings.onRenderEditedValue(editAreaSettings,editArea,getCurrentProjectId());}
activeInlineEditPanel=null;}
function extractEditedValue(refRetObj,editAreaSettings,editArea){var children=extractDHTMLElements(editArea);var dataSourceControl=children[1];if(dataSourceControl.tagName!='SELECT'){if(Ext.get(dataSourceControl).child('select')==null||Ext.get(dataSourceControl).child('select').dom.tagName!='SELECT')
dataSourceControl=null;else
dataSourceControl=Ext.get(dataSourceControl).child('select').dom;}
if(editAreaSettings.areaDataSourceControlID==null){refRetObj[editAreaSettings.areaName]=children[1].value;children[0].innerText=children[1].value;}
else if(dataSourceControl!=null){var select=dataSourceControl;if(select.selectedIndex==-1){refRetObj[editAreaSettings.areaName]=undefined;children[0].innerText="";return;}
refRetObj[editAreaSettings.areaName]=(trimText(select.options[select.selectedIndex].value)=="")?null:select.options[select.selectedIndex].value;children[0].innerText=(trimText(select.options[select.selectedIndex].value)=="")?"":select.options[select.selectedIndex].text;}}
function extractEditedValues(){if(activeInlineEditPanel==null)
return null;var retObj=new Object();retObj.itemID=getActiveInlineEditPanelID();for(var index=0;index<editAreasSettings.length;index++){var editAreaSettings=editAreasSettings[index];var editArea=$get(getEditAreaID(editAreaSettings.areaPrefix));if(editArea==null)
continue;if(editAreaSettings.onExtractEditedValue!=null)
editAreaSettings.onExtractEditedValue(retObj,editAreaSettings,editArea,getCurrentProjectId());else
extractEditedValue(retObj,editAreaSettings,editArea);}
return retObj;}
function removePreviousState(id){delete previousStates[id];}
function restorePreviousState(id){var itemState=previousStates[id];for(editAreaID in itemState){previousValue=itemState[editAreaID];var editArea=$get(editAreaID);editArea.parentNode.innerHTML=previousValue;}}
this.commitChanges=function(id){removePreviousState(id);}
this.abandonChanges=function(id){restorePreviousState(id);removePreviousState(id);}
function onEditAction(){cancelEditRow();editRow(this.parentNode);}
function onSaveAction(){var obj=extractEditedValues();var transactionObject=new TransactionObject(obj.itemID,thisRefInlineEditController)
if(onSaveEventHandler!=null)
onSaveEventHandler(obj,transactionObject.onSaveSuccess,transactionObject.onSaveError);cancelEditRow();}
function onCancelAction(){cancelEditRow();}
function onDblClickRow(eventObj){if(eventObj==null)
eventObj=event;var srcElement=eventObj.srcElement?eventObj.srcElement:eventObj.target;if(srcElement.tagName=="A")
return;var inlineEditPanel=findInlineEditPanelInElement(this);if(inlineEditPanel){cancelEditRow();editRow(inlineEditPanel);}}
function onEditing(eventObj){if(eventObj==null)
eventObj=event;if(eventObj.keyCode==27)
onCancelAction();if(eventObj.keyCode==13)
onSaveAction();}
function onGridClick(eventObj){if(activeInlineEditPanel==null)
return;if(eventObj==null)
eventObj=event;var srcElement=eventObj.srcElement?eventObj.srcElement:eventObj.target;var activeRow=findRowForElement(activeInlineEditPanel);var clickedRow=findRowForElement(srcElement);if(activeRow==clickedRow)
return;if(isExplicitSave)
onSaveAction();else
onCancelAction();}}
function TransactionObject(itemID,inlineEditController){var thisRefTransactionObject=this;this.inlineEditController=inlineEditController;this.itemID=itemID;this.onSaveSuccess=function(result){thisRefTransactionObject.inlineEditController.commitChanges(thisRefTransactionObject.itemID);SetLastAction(result);}
this.onSaveError=function(ex,context){thisRefTransactionObject.inlineEditController.abandonChanges(thisRefTransactionObject.itemID);SetLastWarning(ex.get_message());}}
function EditAreaSettings(areaName,areaPrefix,areaDataSourceControlID,isFocus,isProjectDependent,onSelectValueHandler,onExtractEditedValue,onRenderEditedValue,onCancelEditValue,onEditValue){this.areaName=areaName;this.areaPrefix=areaPrefix;this.areaDataSourceControlID=areaDataSourceControlID;this.onSelectValue=onSelectValueHandler;this.onExtractEditedValue=onExtractEditedValue;this.onCancelEditValue=onCancelEditValue;this.onEditValue=onEditValue;this.onRenderEditedValue=onRenderEditedValue;this.isFocus=isFocus;this.isProjectDependent=isProjectDependent;}
function trimText(text){return text.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"");}
function extractDHTMLElements(element){var elements=new Array();for(var index=0;index<element.childNodes.length;index++){if(element.childNodes[index].nodeType==1)
elements.push(element.childNodes[index]);}
return elements;}
function getFirstDHTMLElement(element){for(var index=0;index<element.childNodes.length;index++){if(element.childNodes[index].nodeType==1)
return element.childNodes[index];}
return null;}
function keyPressHandler(eventObj,obj){var thisRef;if(obj==null)
thisRef=this;else
thisRef=obj;function isValidInput(key,value){if(key==" ")
return false;if(key==NumberOperator._decimalSeparator&&value.indexOf(NumberOperator._decimalSeparator)==-1)
return true;if(isNaN(key))
return false;else
return true;}
if(typeof event=="undefined"){var key=String.fromCharCode(eventObj.charCode);if(eventObj.charCode==0)
return;if(!isValidInput(key,thisRef.value))
eventObj.preventDefault();}
else{var key=String.fromCharCode(event.keyCode);if(!isValidInput(key,thisRef.value))
event.returnValue=false;}}
function onSelectIterationValueHandler(editArea,editAreaSettings,projectId){var iterationID=editArea.attributes[ITERATION_ID_ATTR].nodeValue;var releaseID=editArea.attributes[RELEASE_ID_ATTR].nodeValue;var dataSourceControl=!editAreaSettings.isProjectDependent?$get(editAreaSettings.areaDataSourceControlID).getElementsByTagName('SELECT')[0]:Ext.get(editAreaSettings.areaDataSourceControlID+projectId).child("select").dom;dataSourceControl.selectedIndex=0;for(var index=0;index<dataSourceControl.options.length;index++){if(dataSourceControl.options[index].value==iterationID){dataSourceControl.selectedIndex=index;return;}}
for(var index=0;index<dataSourceControl.options.length;index++){if(dataSourceControl.options[index].value==releaseID){dataSourceControl.selectedIndex=index;return;}}}
function onExtractEffortValueHandler(retObj,editAreaSettings,editArea){function filterActors(){var retValue=new Array();var children=extractDHTMLElements(editArea);var hidden=children[1].getElementsByTagName("input");var allInputs=editArea.getElementsByTagName("input");for(var index=0;index<allInputs.length;index++){var currentInput=allInputs[index];if(currentInput.attributes[ACTOR_NAME]!=null){retValue.push(currentInput);var id=currentInput.attributes[ACTOR_NAME].value;var value=currentInput.value;for(var i=0;i<hidden.length;i++){if(hidden[i].attributes["haseffort"]&&hidden[i].id==id){hidden[i].value=value;break;}}}}
return retValue;}
function getChildEfforts(editArea){return _getAreaAttributeValue(editArea,CHILD_EFFORTS);}
function getPlanningUnit(editArea){return _getAreaAttributeValue(editArea,"timeunit");}
function _getAreaAttributeValue(editArea,attributeName){var allInputs=editArea.getElementsByTagName("input");for(var index=0;index<allInputs.length;index++){if(allInputs[index].attributes[attributeName]!=null)
return allInputs[index].attributes[attributeName].value;}}
function collectAllEffortValues(inputs){var value="";var totalIntegerValue=0;for(var index=0;index<inputs.length;index++){var currentInput=inputs[index];var currentInputValue=currentInput.value;if(trimText(currentInputValue)=="")
currentInputValue=0;value+=currentInput.attributes[ACTOR_NAME].nodeValue;value+=":";value+=currentInputValue;value+=";";totalIntegerValue=NumberOperator.sum(NumberOperator.createNumber(totalIntegerValue),NumberOperator.createNumber(currentInputValue));}
var retObj=new Object();retObj.value=value;retObj.totalIntegerValue=NumberOperator.sum(NumberOperator.createNumber(totalIntegerValue),NumberOperator.createNumber(getChildEfforts(editArea)));return retObj;}
var objEffort=collectAllEffortValues(filterActors(editArea))
retObj[editAreaSettings.areaName]=objEffort.value;var readField=getFirstDHTMLElement(editArea);readField.innerHTML=NumberOperator.toString(objEffort.totalIntegerValue)+"&nbsp;"+getPlanningUnit(editArea);}
function onEditEffortValueHandler(editAreaSettings,editArea,projectId){var children=extractDHTMLElements(editArea);var readField=children[0];var hidden=children[1].getElementsByTagName('input');readField.style.display='none';var dataSourceControl=!editAreaSettings.isProjectDependent?$get(editAreaSettings.areaDataSourceControlID):$get(Ext.get(editAreaSettings.areaDataSourceControlID).child('span[@projectId='+projectId+']').id);if(dataSourceControl!=null){dataSourceControl.style.display='';var allInputs=dataSourceControl.getElementsByTagName('input');var allLabels=dataSourceControl.getElementsByTagName('label');for(var i=0;i<hidden.length;i++){if(hidden[i].attributes['haseffort']){var bHide=hidden[i].attributes['haseffort'].value.toLowerCase()=='false';var id=hidden[i].id;var value=hidden[i].value;for(var j=0;j<allInputs.length;j++){var currentInput=allInputs[j];if(currentInput.attributes[ACTOR_NAME]!=null&&currentInput.attributes[ACTOR_NAME].value==id){currentInput.style.display=bHide?'none':'';currentInput.value=value;break;}}
for(var k=0;k<allLabels.length;k++){var currentLabel=allLabels[k];if(currentLabel.attributes[ACTOR_NAME]!=null&&currentLabel.attributes[ACTOR_NAME].value==id){currentLabel.style.display=bHide?'none':'';break;}}}}
dataSourceControl.selectedIndex=0;editArea.appendChild(dataSourceControl);}}
function onCancelEditEffortValueHandler(editAreaSettings,editArea){var children=extractDHTMLElements(editArea);var readField=children[0];children[2].style.display='none';readField.style.display='';if(!Ext.isEmpty(editAreaSettings.areaDataSourceControlID)&&editAreaSettings.isProjectDependent){var areaDataSourceControl=Ext.get(editAreaSettings.areaDataSourceControlID).dom;areaDataSourceControl.appendChild(children[2]);}
else{document.body.appendChild(children[2]);}}
function onRenderBugPriorityValue(editAreaSettings,editArea){var dataSourceControl=$get(editAreaSettings.areaDataSourceControlID);var selectedPriorityID=dataSourceControl.value;var priorityField=getFirstDHTMLElement(editArea);if(selectedPriorityID==HIGHEST_BUG_PRIORITY_ID)
priorityField.className=HIGHEST_BUG_PRIORITY_CSSCLASS;else
priorityField.className='';}
function onRenderBugSeverityValue(editAreaSettings,editArea){var dataSourceControl=$get(editAreaSettings.areaDataSourceControlID);var selectedSeverityID=dataSourceControl.value;var severityField=getFirstDHTMLElement(editArea);var severityFieldValue=severityField.innerText;if(selectedSeverityID==HIGHEST_SEVERITY_ID){var severityValueHolder=document.createElement("span");var severityImage=document.createElement("img");var severityValue=document.createElement("span")
severityImage.src=HIGHEST_SEVERITY_IMAGE;severityImage.style.borderWidth="0px";severityImage.className=HIGHEST_SEVERITY_IMAGE_CSSCLASS;severityValue.innerText=severityFieldValue;severityValue.className=HIGHEST_SEVERITY_VALUE_CSSCLASS;severityValueHolder.appendChild(severityImage);severityValueHolder.appendChild(severityValue);editArea.removeChild(severityField);editArea.insertBefore(severityValueHolder,getFirstDHTMLElement(editArea));}
else
if(selectedSeverityID==LOWEST_SEVERITY_ID)
severityField.className=LOWEST_VALUE_CSSCLASS;else
severityField.className="";}
function onRenderEditedFeatureValue(editAreaSettings,editArea,projectId){var FEATURE_ID="FeatureID";var dataSourceControl=Ext.get(editAreaSettings.areaDataSourceControlID+projectId).child("select");var link=getFirstDHTMLElement(editArea);var href=link.href;var indexOfFeatureID=href.indexOf(FEATURE_ID);if(indexOfFeatureID==-1)
{return;}
var lastIndexOfFeatureID=href.indexOf("&",indexOfFeatureID);var otherParameters=lastIndexOfFeatureID==-1?"":href.substr(lastIndexOfFeatureID);var newHref=href.substr(0,indexOfFeatureID)+FEATURE_ID+"="+dataSourceControl.dom.value+otherParameters;link.href=newHref;}
function onRenderUserStoryPriorityValue(editAreaSettings,editArea){var dataSourceControl=$get(editAreaSettings.areaDataSourceControlID);var selectedPriorityID=dataSourceControl.value;var priorityField=getFirstDHTMLElement(editArea);if(selectedPriorityID==HIGHEST_USERSTORY_PRIORITY_ID)
priorityField.className=HIGHEST_USERSTORY_PRIORITY_CSSCLASS;else
priorityField.className='';}
function onSelectReleaseValueHandler(editArea,editAreaSettings,projectId){var dataSourceControl=!editAreaSettings.isProjectDependent?$get(editAreaSettings.areaDataSourceControlID).getElementsByTagName('SELECT')[0]:Ext.get(editAreaSettings.areaDataSourceControlID+projectId).child("select").dom;dataSourceControl.selectedIndex=0;var releaseID=editArea.attributes[RELEASE_ID_ATTR].nodeValue;for(var index=0;index<dataSourceControl.options.length;index++){if(dataSourceControl.options[index].value==releaseID){dataSourceControl.selectedIndex=index;return;}}}
function onExtractEditedReleaseValueHandler(refRetObj,editAreaSettings,editArea,projectId){var editedField=getFirstDHTMLElement(editArea);var dataSourceControl=!editAreaSettings.isProjectDependent?$get(editAreaSettings.areaDataSourceControlID).getElementsByTagName('SELECT')[0]:Ext.get(editAreaSettings.areaDataSourceControlID+projectId).child("select").dom;if(trimText(dataSourceControl.value)==""){editedField.innerHTML="";refRetObj.Release=null;}
else{editedField.innerHTML=dataSourceControl.options[dataSourceControl.selectedIndex].text;refRetObj.Release=dataSourceControl.value;}}
function onExtractEditedIterationValue(refRetObj,editAreaSettings,editArea,projectId){var ITERATION="Iteration";var RELEASE="Release";var dataSourceControl=!editAreaSettings.isProjectDependent?$get(editAreaSettings.areaDataSourceControlID).getElementsByTagName('SELECT')[0]:Ext.get(editAreaSettings.areaDataSourceControlID+projectId).child("select").dom;var editedField=getFirstDHTMLElement(editArea);var editedValue=dataSourceControl.options[dataSourceControl.selectedIndex].text;var editedIdentity=dataSourceControl.options[dataSourceControl.selectedIndex].value;if(editedIdentity.indexOf(ITERATION)!=-1){refRetObj[ITERATION]=editedIdentity.substr(ITERATION.length);refRetObj[RELEASE]=null;editArea.attributes[RELEASE_ID_ATTR].nodeValue=null;editArea.attributes[ITERATION_ID_ATTR].nodeValue=editedIdentity;editedField.innerText=editedValue.substr(2,editedValue.length-2);}
else if(editedIdentity.indexOf(RELEASE)!=-1){refRetObj[RELEASE]=editedIdentity.substr(RELEASE.length);refRetObj[ITERATION]=null;editArea.attributes[RELEASE_ID_ATTR].nodeValue=editedIdentity;editArea.attributes[ITERATION_ID_ATTR].nodeValue=null;editedField.innerText=editedValue;}
else{refRetObj[ITERATION]=null;refRetObj[RELEASE]=null;editedField.innerText='Backlog';editArea.attributes[ITERATION_ID_ATTR].nodeValue=null;editArea.attributes[RELEASE_ID_ATTR].nodeValue=null;}}
function onSelectInitialEstimateHandler(editArea,editAreaSettings){var children=extractDHTMLElements(editArea);var editField=children[1];var integerValue=parseFloat(editField.value);if(isNaN(integerValue))
integerValue="";var unit=editField.value.substr(integerValue.toString().length+1);editField.value=integerValue;editField.style.width="30px";editField.style.display='';editField.onkeypress=keyPressHandler;var unitHolder=document.createElement("span");unitHolder.innerHTML=unit;editArea.appendChild(unitHolder);}
function onCancelEditInitialEstimateHandler(editAreaSettings,editArea){var children=extractDHTMLElements(editArea);var readField=children[0];var writeField=children[1];var typeField=children[2];var typeValue=typeField.innerHTML;var integerValue=trimText(writeField.value);integerValue=(integerValue=="")?0:integerValue;readField.innerHTML=integerValue+"&nbsp;"+typeValue;readField.style.display="";writeField.parentNode.removeChild(writeField);typeField.parentNode.removeChild(typeField);}
function onRenderRequestPriority(editAreaSettings,editArea){var dataSourceControl=$get(editAreaSettings.areaDataSourceControlID);var selectedPriorityID=dataSourceControl.value;var priorityField=getFirstDHTMLElement(editArea);if(selectedPriorityID==HIGHEST_REQUEST_PRIORITY_ID)
priorityField.className=HIGHEST_REQUEST_PRIORITY_CSSCLASS;else
priorityField.className='';};
/*EntityBrowser.js*/
Type.registerNamespace("Tp.Atlas.Extenders.EntityBrowser");Tp.Atlas.Extenders.EntityBrowser.EntityBrowser=function(element)
{Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.initializeBase(this,[element]);this._xmlScriptBindings='';this._itemTemplate=null;this._contexts=[];this._resizeDelegate=null;this.addEntityDelegate=null;this._errorHandlerDelegate=null;this._nextId=0;this._rightClickHandler=null;this._userStoryPopupID=null;this._elementCreatedClientHandler=null;}
Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.prototype={initialize:function(){Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.callBaseMethod(this,'initialize');Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance=this;if(this._itemTemplate==null){var scriptDOM=new XMLDOM('<template>'+this._xmlScriptBindings+'</template>');this._itemTemplate=new Sys.Preview.UI.Template(this.get_element(),scriptDOM.childNodes[0]);this._itemTemplate.initialize();}
this._errorHandlerDelegate=Function.createDelegate(this,this._handlError);this._rightClickHandler=Function.createDelegate(this,this.rightClickHandler);this._resizeDelegate=Function.createDelegate(this,this.OnResize);if(this._elementCreatedClientHandler)
this.add_elementCreated(eval(this._elementCreatedClientHandler));},dispose:function(){Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.callBaseMethod(this,'dispose');if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null;}
this._resizeDelegate=null;this.addEntityDelegate=null;this._errorHandlerDelegate=null;this._rightClickHandler=null;for(var i=0;i<this._contexts.length;i++){this._contexts[i].browserElement=null;this._contexts[i].parentElement=null;this._contexts[i].browser=null;}
this._contexts=null;},attach:function(parentElement,parent){if(!parent)parent=parentElement;for(var i=0;i<this._contexts.length;i++){if(this._contexts[i].parentElement==parentElement)
return this._contexts[i];}
var context={'browser':this,'browserElement':this._createBrowser(parentElement),'parentElement':parentElement,'parent':parent};context.browserElement.style.width='480px';Array.add(this._contexts,context);return context;},attachStatic:function(parentElement,parent){if(!parent)parent=parentElement;var context={'browser':this,'browserElement':parentElement,'parentElement':parentElement,'parent':parent};Array.add(this._contexts,context);return context;},isVisible:function(context){return Ext.fly(context.browserElement).isVisible();},show:function(context){Ext.fly(context.browserElement).show();},hide:function(context){Ext.fly(context.browserElement).hide();},getBounds:function(context){if(!this.isVisible(context)){return{'x':0,'y':0,'width':0,'height':0}}
return Sys.UI.DomElement.getBounds(context.browserElement);},removeEntity:function(entity,context){var element=entity.element;if(element.dragBehavior){element.dragBehavior.dispose();element.dragBehavior=null;}
entity.browserContext=null;entity.element=null;element.entity=null;Array.remove(context.draggables,element);this.disposePopup(element);element.parentNode.removeChild(element);if(context.draggables.length==0)
context.browserElement.innerHTML='No data';},addEntity:function(entity,context){if(context.draggables.length==0)
context.browserElement.innerHTML='';var element=this._createEntity(context,entity);Array.add(context.draggables,element);entity.browserContext=context;entity.element=element;element.entity=entity;entity.parent=context.parent;this.initDrag(context,element,entity);this.initPopup(element);},initPopup:function(element){$addHandler(element,"mousedown",this._rightClickHandler);},disposePopup:function(element){if(!this._popupID)return;$removeHandler(element,"mousedown",this._rightClickHandler);if(element.popup){element.popup.dispose();element.popup=null;}},rightClickHandler:function(ev){if(!this._userStoryPopupID)return;if(ev.button!=2)return;var element=ev.target;while(element&&!element.entity){element=element.parentNode;}
if(element){if(!element.popup){element.popup=$create(Tp.Atlas.Extenders.RightClickPopup.RightClickPopup,{TargetElement:element,'DataItem':element.entity},null,null,null);element.popup.set_TemplateID(this._userStoryPopupID);}
element.popup.show(ev);if(element.entity.Feature!=null){Ext.getBody().select('.featureRightPopup').show();}
else{Ext.getBody().select('.featureRightPopup').hide();}}},addEntities:function(entities,context){for(var i=0;i<entities.length;i++){this.addEntity(entities[i],context);}},resortEntities:function(entities,context){for(var i=0;i<context.draggables.length;i++){context.draggables[i].style.display='none';}
var browserElement=context.browserElement;for(var i=0;i<entities.length;i++){browserElement.insertBefore(entities[i].element,null);entities[i].element.style.display='';}},replaceEntities:function(entities,context){var browserElement=context.browserElement;if(entities.length==0){browserElement.innerHTML='No data';}
else{browserElement.innerHTML='';}
this.resetDrag(context);context.draggables=[];this.addEntities(entities,context);},_createBrowser:function(parentElement){var div=document.createElement('div');div.className='entityBrowser';div.style.position='absolute';div.style.display='none';div.innerHTML='No data';this._setPosition(div,parentElement);document.body.appendChild(div);return div;},raiseElementCreated:function(element,dataItem){var handler=this.get_events().getHandler('elementCreated');if(handler){var evArgs={dataItem:dataItem,element:element};handler(this,evArgs);}},_createEntity:function(context,dataItem){if(!context.draggables)context.draggables=[];var browserElement=context.browserElement;var element=this._itemTemplate.createInstance(browserElement,dataItem).instanceElement;element.style.display='';var cssClass='entityBox '+dataItem.CssClass;cssClass+=" entityBrowser"+dataItem.EntityTypeName;element.className=cssClass;var tooltip=dataItem.Name;if(dataItem.Effort)
tooltip+=", effort: "+dataItem.Effort+", priority: "+dataItem.Priority;new Ext.ToolTip({target:element,html:tooltip});this.raiseElementCreated(element,dataItem);return element;},_setPosition:function(element,parentElement){var bounds=Sys.UI.DomElement.getBounds(parentElement);element.style.top=bounds.y+bounds.height+'px';element.style.left=bounds.x+'px';},OnResize:function(context){if(context){this._setPosition(context.browserElement,context.parentElement);}
else
for(var i=0;i<this._contexts.length;i++){this._setPosition(this._contexts[i].browserElement,this._contexts[i].parentElement);}},_handlError:function(e){throw Error.create(e.get_message());},get_itemTemplate:function(){return this._itemTemplate;},set_itemTemplate:function(template){if(this._itemTemplate){this._itemTemplate.dispose();}
this._itemTemplate=template;if(!this.get_isUpdating()){this.render();}
this.raisePropertyChanged('itemTemplate');},get_xmlScriptBindings:function(){return this._xmlScriptBindings;},set_xmlScriptBindings:function(value){this._xmlScriptBindings=value;},get_UserStoryPopupID:function(){return this._userStoryPopupID;},set_UserStoryPopupID:function(value){this._userStoryPopupID=value;},resetDrag:function(context){if(context.dragBloks){for(var i=0;i<context.dragBloks.length;i++){context.dragBloks[i].dispose();}}
context.dragBloks=[];},initDrag:function(context,element,dataItem){if(!context.dragBloks)context.dragBloks=[];if(!Tp.Atlas.Extenders.EntityBrowser.EntityBrowser._nextID)Tp.Atlas.Extenders.EntityBrowser.EntityBrowser._nextID=0;var behavior=$create(Tp.Ajax.DragDrop.DragBlockBehavior,{id:'eb'+Tp.Atlas.Extenders.EntityBrowser.EntityBrowser._nextID++,Type:'entity',Data:dataItem,TargetControl:element},null,null,null);element.dragBehavior=behavior;Array.add(context.dragBloks,behavior);},add_elementCreated:function(handler){this.get_events().addHandler('elementCreated',handler);},remove_elementCreated:function(handler){this.get_events().removeHandler('elementCreated',handler);},set_elementCreatedClientHandler:function(value){this._elementCreatedClientHandler=value;},get_elementCreatedClientHandler:function(){return this._elementCreatedClientHandler;}}
Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.registerClass('Tp.Atlas.Extenders.EntityBrowser.EntityBrowser',Sys.UI.Control);;
/*RightClickPopup.js*/
Type.registerNamespace("Tp.Atlas.Extenders.RightClickPopup");Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate=function(element)
{Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.initializeBase(this,[element]);this._xmlScriptBindings='';this._itemTemplate=null;this._saveButtonID='';this._cancelButtonID='';this._displayMode='';this._templateID='';};Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.prototype={initialize:function()
{Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.callBaseMethod(this,'initialize');if(this._itemTemplate==null)
{var scriptDOM=new XMLDOM('<template>'+this._xmlScriptBindings+'</template>');this._itemTemplate=new Sys.Preview.UI.Template(this.get_element(),scriptDOM.childNodes[0]);this._itemTemplate.initialize();}
if(!Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.instance)
Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.instance=this;if(this._templateID)
{if(!Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.templates)
Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.templates={};Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.templates[this._templateID]=this;}},dispose:function()
{Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.instance=null;Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.callBaseMethod(this,'dispose');if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null;}},get_template:function(templateID)
{var templates=Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.templates;if(templateID&&templates&&templates[templateID])
return templates[templateID];return Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.instance;;},get_xmlScriptBindings:function()
{return this._xmlScriptBindings;},set_xmlScriptBindings:function(value)
{this._xmlScriptBindings=value;},get_SaveButtonID:function()
{return this._saveButtonID;},set_SaveButtonID:function(value)
{this._saveButtonID=value;},get_CancelButtonID:function()
{return this._cancelButtonID;},set_CancelButtonID:function(value)
{this._cancelButtonID=value;},get_DisplayMode:function()
{return this._displayMode;},set_DisplayMode:function(value)
{this._displayMode=value;},get_TemplateID:function()
{return this._templateID;},set_TemplateID:function(value)
{this._templateID=value;}};Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.registerClass('Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate',Sys.UI.Control);Tp.Atlas.Extenders.RightClickPopup.RightClickPopup=function()
{Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.initializeBase(this);this._mouseDownHandler=null;this._popupElement=null;this._targetElement=null;this._dataItem=null;this._saveButton=null;this._saveButtonHandler=null;this._cancelButton=null;this._cancelButtonHandler=null;this._templateID='';}
Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.prototype={initialize:function(){Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.callBaseMethod(this,'initialize');this._mouseDownHandler=Function.createDelegate(this,this.mouseDownHandler);this._onKeyboardKeyDownHandler=Function.createDelegate(this,this._handleClosing);document.body.oncontextmenu=function(){return false;}
if(this._targetElement)
$addHandler(this._targetElement,'mousedown',this._mouseDownHandler);},dispose:function(){Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.callBaseMethod(this,'dispose');document.body.oncontextmenu=null;this._popupElement=null;this._targetElement=null;if(this._saveButton){$removeHandler(this._saveButton,"click",this._saveButtonHandler);this._saveButton=null;this._saveButtonHandler=null;}
if(this._cancelButton){$removeHandler(this._cancelButton,"click",this._cancelButtonHandler);this._cancelButton=null;this._cancelButtonHandler=null;}
this._onKeyboardKeyDownHandler=null;},mouseDownHandler:function(ev){window._event=ev;var rightclick;if(ev.which)
rightclick=(ev.which==3);else if(ev.button)
rightclick=(ev.button==2);if(!rightclick)return;this.show(ev);},show:function(ev){if(!Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.instances)
Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.instances=[];var instances=Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.instances;for(var i=0;i<instances.length;i++){instances[i].hide();}
if(!this._popupElement)
this._createPopup();$addHandler(document,"keydown",this._onKeyboardKeyDownHandler);this._popupElement.style.display='';if(!Array.contains(instances,this))
Array.add(instances,this);var x;var y;if(this._popupElement.template.get_DisplayMode()=="MousePosition"){var pos=getMousePosition(ev)
x=pos.x;y=pos.y;}
else{var bounds=Sys.UI.DomElement.getBounds(this._targetElement);x=bounds.x;y=bounds.y+bounds.height+3;}
if(x+this._popupElement.clientWidth>window.screen.width){x-=this._popupElement.clientWidth;}
Sys.UI.DomElement.setLocation(this._popupElement,x,y);},_isHandlerExists:function(element,eventName,handler){var cache=element._events[eventName];if(!(cache instanceof Array))throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);for(var i=0,l=cache.length;i<l;i++){if(cache[i].handler===handler){return true;}}
return false;},hide:function(){var element=document;var eventName="keydown";if(this._isHandlerExists(document,"keydown",this._onKeyboardKeyDownHandler)){$removeHandler(document,"keydown",this._onKeyboardKeyDownHandler);}
if(this._popupElement)
this._popupElement.style.display='none';},_handleClosing:function(evt){if(evt.keyCode==27)
this.hide();},_createPopup:function(){var popupTemplate=Tp.Atlas.Extenders.RightClickPopup.RightClickPopupTemplate.instance;var template=popupTemplate.get_template(this._templateID)._itemTemplate.createInstance(document.body,this._dataItem,this._findButtonsCallback,[popupTemplate.get_SaveButtonID(),popupTemplate.get_CancelButtonID(),]);this._popupElement=template.instanceElement;this._popupElement.template=popupTemplate;this._saveButton=template.callbackResult[0];this._cancelButton=template.callbackResult[1];if(this._saveButton){if(!this._saveButtonHandler){this._saveButtonHandler=Function.createDelegate(this,this._onSave)}
$addHandler(this._saveButton,"click",this._saveButtonHandler);}
if(this._cancelButton){if(!this._cancelButtonHandler){this._cancelButtonHandler=Function.createDelegate(this,this._onCancel)}
$addHandler(this._cancelButton,"click",this._cancelButtonHandler);}
this._popupElement.style.position='absolute';},_findButtonsCallback:function(element,markupContext,IDs){var buttons=[];if(IDs.length>0)
Array.add(buttons,markupContext.findElement(IDs[0]));if(IDs.length>1)
Array.add(buttons,markupContext.findElement(IDs[1]));return buttons;},get_TargetElement:function(){return this._targetElement;},set_TargetElement:function(value){this._targetElement=value;},get_DataItem:function(){return this._dataItem;},set_DataItem:function(value){this._dataItem=value;},get_TemplateID:function(){return this._templateID;},set_TemplateID:function(value){this._templateID=value;},add_save:function(handler){this.get_events().addHandler('save',handler);},remove_save:function(handler){this.get_events().removeHandler('save',handler);},_onSave:function(){var handler=this.get_events().getHandler('save');if(handler){handler(this,{dataItem:this._dataItem});}},_onCancel:function(){this.hide();}}
Tp.Atlas.Extenders.RightClickPopup.RightClickPopup.registerClass('Tp.Atlas.Extenders.RightClickPopup.RightClickPopup',Sys.Component);if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();;
/*DetailsClickPopup.js*/
Type.registerNamespace("Tp.Atlas.Extenders.DetailsClickPopup");Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate=function(element){Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.initializeBase(this,[element]);this._xmlScriptBindings='';this._itemTemplate=null;this._saveButtonID='';this._cancelButtonID='';this._displayMode='';this._templateID='';};Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.prototype={initialize:function(){Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.callBaseMethod(this,'initialize');if(this._itemTemplate==null){var scriptDOM=new XMLDOM('<template>'+this._xmlScriptBindings+'</template>');this._itemTemplate=new Sys.Preview.UI.Template(this.get_element(),scriptDOM.childNodes[0]);this._itemTemplate.initialize();}
if(!Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.instance)
Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.instance=this;if(this._templateID){if(!Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.templates)
Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.templates={};Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.templates[this._templateID]=this;}},dispose:function(){Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.instance=null;Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.callBaseMethod(this,'dispose');if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null;}},get_template:function(templateID){var templates=Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.templates;if(templateID&&templates&&templates[templateID])
return templates[templateID];return Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.instance;;},get_xmlScriptBindings:function(){return this._xmlScriptBindings;},set_xmlScriptBindings:function(value){this._xmlScriptBindings=value;},get_SaveButtonID:function(){return this._saveButtonID;},set_SaveButtonID:function(value){this._saveButtonID=value;},get_CancelButtonID:function(){return this._cancelButtonID;},set_CancelButtonID:function(value){this._cancelButtonID=value;},get_DisplayMode:function(){return this._displayMode;},set_DisplayMode:function(value){this._displayMode=value;},get_TemplateID:function(){return this._templateID;},set_TemplateID:function(value){this._templateID=value;}};Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.registerClass('Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate',Sys.UI.Control);Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup=function(){Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.initializeBase(this);this._mouseDownHandler=null;this._popupElement=null;this._targetElement=null;this._dataItem=null;this._saveButton=null;this._saveButtonHandler=null;this._cancelButton=null;this._cancelButtonHandler=null;this._templateID='';}
Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.prototype={initialize:function(){Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.callBaseMethod(this,'initialize');this._mouseDownHandler=Function.createDelegate(this,this.mouseDownHandler);this._onKeyboardKeyDownHandler=Function.createDelegate(this,this._handleClosing);if(this._targetElement)
$addHandler(this._targetElement,'click',this._mouseDownHandler);},dispose:function(){Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.callBaseMethod(this,'dispose');document.body.oncontextmenu=null;this._popupElement=null;this._targetElement=null;if(this._saveButton){$removeHandler(this._saveButton,"click",this._saveButtonHandler);this._saveButton=null;this._saveButtonHandler=null;}
if(this._cancelButton){$removeHandler(this._cancelButton,"click",this._cancelButtonHandler);this._cancelButton=null;this._cancelButtonHandler=null;}
this._onKeyboardKeyDownHandler=null;},mouseDownHandler:function(ev){if(ev.target.rel=='Details'||ev.target.getAttribute("rel")=='Details'){this.show(ev);}
window._event=ev;},show:function(ev){window._event=ev;if(!Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.instances)
Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.instances=[];var instances=Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.instances;for(var i=0;i<instances.length;i++){instances[i].hide();}
if(!this._popupElement)
this._createPopup();$addHandler(document,"keydown",this._onKeyboardKeyDownHandler);this._popupElement.style.display='';if(!Array.contains(instances,this))
Array.add(instances,this);var x;var y;if(this._popupElement.template.get_DisplayMode()=="MousePosition"){var pos=getMousePosition(ev)
x=pos.x;y=pos.y;}
else{var bounds=Sys.UI.DomElement.getBounds(this._targetElement);x=bounds.x;y=bounds.y+bounds.height+3;}
if(x>this._popupElement.clientWidth){x-=this._popupElement.clientWidth;}
Sys.UI.DomElement.setLocation(this._popupElement,x,y);},_isHandlerExists:function(element,eventName,handler){var cache=element._events[eventName];if(!(cache instanceof Array))throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);for(var i=0,l=cache.length;i<l;i++){if(cache[i].handler===handler){return true;}}
return false;},hide:function(){var element=document;var eventName="keydown";if(this._isHandlerExists(document,"keydown",this._onKeyboardKeyDownHandler)){$removeHandler(document,"keydown",this._onKeyboardKeyDownHandler);}
if(this._popupElement)
this._popupElement.style.display='none';},_handleClosing:function(evt){if(evt.keyCode==27)
this.hide();},_createPopup:function(){var popupTemplate=Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopupTemplate.instance;var template=popupTemplate.get_template(this._templateID)._itemTemplate.createInstance(document.body,this._dataItem,this._findButtonsCallback,[popupTemplate.get_SaveButtonID(),popupTemplate.get_CancelButtonID(),]);this._popupElement=template.instanceElement;this._popupElement.template=popupTemplate;this._saveButton=template.callbackResult[0];this._cancelButton=template.callbackResult[1];if(this._saveButton){if(!this._saveButtonHandler){this._saveButtonHandler=Function.createDelegate(this,this._onSave)}
$addHandler(this._saveButton,'click',this._saveButtonHandler);}
if(this._cancelButton){if(!this._cancelButtonHandler){this._cancelButtonHandler=Function.createDelegate(this,this._onCancel)}
$addHandler(this._cancelButton,'click',this._cancelButtonHandler);}
this._popupElement.style.position='absolute';},_findButtonsCallback:function(element,markupContext,IDs){var buttons=[];if(IDs.length>0)
Array.add(buttons,markupContext.findElement(IDs[0]));if(IDs.length>1)
Array.add(buttons,markupContext.findElement(IDs[1]));return buttons;},get_TargetElement:function(){return this._targetElement;},set_TargetElement:function(value){this._targetElement=value;},get_DataItem:function(){return this._dataItem;},set_DataItem:function(value){this._dataItem=value;},get_TemplateID:function(){return this._templateID;},set_TemplateID:function(value){this._templateID=value;},add_save:function(handler){this.get_events().addHandler('save',handler);},remove_save:function(handler){this.get_events().removeHandler('save',handler);},_onSave:function(){var handler=this.get_events().getHandler('save');if(handler){handler(this,{dataItem:this._dataItem});}},_onCancel:function(){this.hide();}}
Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup.registerClass('Tp.Atlas.Extenders.DetailsClickPopup.DetailsClickPopup',Sys.Component);if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();;
/*ReleaseTimeLine.js*/
Type.registerNamespace("Tp.Atlas.Extenders.ReleasePlan");Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine=function(element)
{Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.initializeBase(this,[element]);this._intervals=null;this._intervalType="Weeks";this._labelPosition=0;this._labels=null;this._programForecastDate=null;this._programForecastLabel=null;this._resizeDelegate=null;this._intervalTD=null;this._tableBounds=null;}
Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.prototype={initialize:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.callBaseMethod(this,'initialize');Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.instance=this;var offssetDelegate;if(this._intervalType=="Weeks")
offssetDelegate=Function.createDelegate(this,this._getOffsetWeeks);else
offssetDelegate=Function.createDelegate(this,this._getOffsetMonths);Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.getOffset=offssetDelegate;this.OnResize();this._resizeDelegate=Function.createDelegate(this,this.OnResize);$addHandler(window,'resize',this._resizeDelegate);},_getOffsetWeeks:function(date,width,isBar,isBarStart)
{var i=isBar?0:1;var day=date.getDay()-1;return(width/7)*((day<0?6:day)+i);},_getOffsetMonths:function(date,width,isBar,isBarStart)
{var i=0;if(!isBar)
{i=1;isBarStart=true;}
var day=date.getDate()-1;return(width/31)*(day+i)-(isBarStart?0:5);},RemoveLabel:function(label)
{var lineElement=label.lineElement;var labelElement=label.labelElement;lineElement.parentNode.removeChild(lineElement);labelElement.parentNode.removeChild(labelElement);label.lineElement=null;label.labelElement=null;},AddLabel:function(label)
{var div=document.createElement('div');div.style.position='absolute';div.style.borderLeft='1px solid '+label.Color;div.style.padding='1px';div.style.width='1px';div.style.zIndex=1;document.body.appendChild(div);label.lineElement=div;var div1=document.createElement('div');div1.style.position='absolute';div1.style.background=label.Color;div1.style.color='#FFF';div1.style.zIndex=1;div1.innerHTML=label.Text;document.body.appendChild(div1);label.labelElement=div1;},RefreshLabel:function(label)
{label.intervalTD=this.findIntervalTD(label.Date);if(!label.intervalTD)return;var intervalBounds=Sys.UI.DomElement.getBounds(label.intervalTD);var offset=Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.getOffset(label.Date,intervalBounds.width,false);var lineElement=label.lineElement;var labelElement=label.labelElement;var tableBounds=this._tableBounds;if(isNaN(label.topOffset))
{label.topOffset=14*(this._labelPosition++%2);}
lineElement.style.left=intervalBounds.x+offset+2+'px';lineElement.style.top=tableBounds.y-14-label.topOffset+'px';lineElement.style.height=tableBounds.height+25+label.topOffset+'px';labelElement.style.top=tableBounds.y-12-label.topOffset+'px';labelElement.style.left=intervalBounds.x+offset+2+'px';},set_programForecast:function(forecastDate)
{if(forecastDate)
{if(this._programForecastLabel==null)
{this._programForecastLabel={Text:'Forecast',Date:forecastDate,Color:'#6699FF'};Array.add(this._labels,this._programForecastLabel);this.AddLabel(this._programForecastLabel);}
else
this._programForecastLabel.Date=forecastDate;this.RefreshLabel(this._programForecastLabel);}
else
{if(this._programForecastLabel)
{Array.remove(this._labels,this._programForecastLabel);this.RemoveLabel(this._programForecastLabel);this._programForecastLabel=null;}}},OnResize:function()
{this._tableBounds=Sys.UI.DomElement.getBounds(this.get_element());for(var i=0;i<this._labels.length;i++)
{if(!this._labels[i].lineElement)
this.AddLabel(this._labels[i]);this.RefreshLabel(this._labels[i]);}},dispose:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.callBaseMethod(this,'dispose');Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.instance=null;Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.getOffset=null;$removeHandler(window,'resize',this._resizeDelegate);this._resizeDelegate=null;},findProjectTD:function(projectID)
{var elementID='project'+projectID;var element=$get(elementID);if(element==null)
throw Error.create('ProjectTD not found: ID='+elementID);return element;},findIntervalTD:function(date)
{for(var i=0;i<this._intervals.length;i++)
{var interval=this._intervals[i];if(interval.StartDate<=date&&date<=interval.EndDate)
{var elementID='interval'+i;var element=$get(elementID);if(element==null)
throw Error.create('IntervalTD not found: ID='+elementID);return element;}}
if(this._intervals.length>0)
{var lastInterval=this._intervals[this._intervals.length-1];if(date>lastInterval.EndDate)
return this.findIntervalTD(lastInterval.EndDate);var firstInterval=this._intervals[0];if(date<firstInterval.StartDate)
return this.findIntervalTD(firstInterval.StartDate);}
throw Error.create('Interval not found: date='+date);},get_Intervals:function()
{return this._intervals;},set_Intervals:function(value)
{this._intervals=Sys.Serialization.JavaScriptSerializer.deserialize(value);},get_IntervalType:function()
{return this._intervalType;},set_IntervalType:function(value)
{this._intervalType=value;},get_Labels:function()
{return this._labels;},set_Labels:function(value)
{this._labels=Sys.Serialization.JavaScriptSerializer.deserialize(value);}}
Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.registerClass('Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine',Sys.UI.Control);if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();;
/*ReleaseBar.js*/
Type.registerNamespace("Tp.Atlas.Extenders.ReleasePlan");Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate=function(element)
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.initializeBase(this,[element]);this._xmlScriptBindings='';this._itemTemplate=null;};Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.prototype={initialize:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.callBaseMethod(this,'initialize');if(this._itemTemplate==null)
{var scriptDOM=new XMLDOM('<template>'+this._xmlScriptBindings+'</template>');this._itemTemplate=new Sys.Preview.UI.Template(this.get_element(),scriptDOM.childNodes[0]);this._itemTemplate.initialize();}
Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.instance=this._itemTemplate;},dispose:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.instance=null;Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.callBaseMethod(this,'dispose');if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null;}},get_xmlScriptBindings:function()
{return this._xmlScriptBindings;},set_xmlScriptBindings:function(value)
{this._xmlScriptBindings=value;}};Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.registerClass('Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate',Sys.UI.Control);Tp.Atlas.Extenders.ReleasePlan.ReleaseBar=function(element)
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.initializeBase(this,[element]);this._id=0;this._addReleasesDelegate=null;this._errorHandler=null;this._timeLineInstance=null;this._EntityBrowser=null;this._releaseBars=[];this._resizeDelegate=null;this._dropDelegate=null;this._futureReleaseColor='';this._currentReleaseColor='';this._onClientDrop='';this._onClientSave='';this._dropBloks=[];this.LoadCompleteDelegate=null;this._releaseDataItem=null;this._barElement=null;this._projectTD=null;this._startWeekTD=null;this._endWeekTD=null;this._forecastedEndWeekTD=null;this._isLoaded=false;this._dataItems=[];this._browserContext=null;this._forecastElement=null;};Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.signedForResize=false;Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.prototype={initialize:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.callBaseMethod(this,'initialize');this._timeLineInstance=Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.instance;if(this._timeLineInstance==null)
{throw Error.create('ReleaseTimeLine not found');}
this._EntityBrowser=Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance;if(this._EntityBrowser==null)
{throw Error.create('EntityBrowser not found');}
this._errorHandlerDelegate=Function.createDelegate(this,this._handlError);this._dropDelegate=Function.createDelegate(this,this._onDrop);this.LoadCompleteDelegate=Function.createDelegate(this,this._onLoadComplete);if(!Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.signedForResize)
{this._resizeDelegate=Function.createDelegate(this,this.RefreshHandler);$addHandler(window,'resize',this._resizeDelegate);Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.signedForResize=true;}
if(!Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance)
throw Error.create('Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance is null. It must be first on the page');if(!Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.bars)
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.bars=[];}
this.CreateBar();this.Refresh();if(this._onClientDrop)
this.add_drop(eval(this._onClientDrop));if(this._onClientSave)
this.add_save(eval(this._onClientSave));this.RefreshProgramForecast();},dispose:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.callBaseMethod(this,'dispose');this._addReleasesDelegate=null;this._errorHandlerDelegate=null;this._timeLineInstance=null;this._EntityBrowser=null;if(this._resizeDelegate)
{$removeHandler(window,'resize',this._resizeDelegate);Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.signedForResize=false;}
this._resizeDelegate=null;this._dropDelegate=null;this.LoadCompleteDelegate=null;this._barElement.control=null;this._barElement=null;this._projectTD=null;this._startWeekTD=null;this._endWeekTD=null;this._forecastedEndWeekTD=null;this._dataItems=null;this._forecastElement=null;},CreateBar:function()
{if(this._releaseDataItem!=null)
{var dataItem=this._releaseDataItem;this._barElement=Tp.Atlas.Extenders.ReleasePlan.ReleaseBarTemplate.instance.createInstance(this._timeLineInstance.get_element(),dataItem).instanceElement;this._barElement.style.display='';this._barElement.control=undefined;var popup=$create(Tp.Atlas.Extenders.RightClickPopup.RightClickPopup,{id:this.get_id()+'_rcp',TargetElement:this._barElement,'DataItem':dataItem},null,null,null);popup.add_save(Function.createDelegate(this,this._onSave));this._projectTD=this._timeLineInstance.findProjectTD(dataItem.ProjectID);this.updateStartAndEndTD();this._isLoaded=false;if(!Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._nextID)Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._nextID=0;var dropBlock=$create(Tp.Ajax.DragDrop.DropBlockBehavior,{id:'rb'+Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._nextID++,Type:'entity',NormalCssClass:this._barElement.className,OverCssClass:'releaseHighlighted',Data:this,TargetControl:this._barElement},null,null,null);dropBlock.add_drop(this._dropDelegate);Array.add(Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.bars,this);}},RefreshHandler:function(e)
{if(!Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.RefreshAll)
Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.RefreshAll=Function.createDelegate(this,this.RefreshAll);setTimeout("Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.RefreshAll()",0);},RefreshAll:function()
{Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._positionCache=null;var releaseBars=Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.bars;for(var i=0;i<releaseBars.length;i++)
{releaseBars[i].Refresh();}},RefreshProgramForecast:function()
{var releaseBars=Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.bars;if(releaseBars.length<=0)return;var forecastDate=null;for(var i=0;i<releaseBars.length;i++)
{if(releaseBars[i]._releaseDataItem.IsCurrent&&!forecastDate)
{forecastDate=releaseBars[i]._releaseDataItem.EndDate;}
if(releaseBars[i]._releaseDataItem.IsCurrent&&releaseBars[i]._releaseDataItem.EndDate>forecastDate)
{forecastDate=releaseBars[i]._releaseDataItem.EndDate;}
if(releaseBars[i]._releaseDataItem.IsCurrent&&releaseBars[i]._releaseDataItem.ForecastedEndDate>forecastDate)
{forecastDate=releaseBars[i]._releaseDataItem.ForecastedEndDate;}}
this._timeLineInstance.set_programForecast(forecastDate);},Refresh:function(newReleaseDataItem)
{if(!this._barElement)return;if(newReleaseDataItem)
{this._releaseDataItem=newReleaseDataItem;this.updateLabels();this.updateStartAndEndTD();this.RefreshProgramForecast();}
this.updatePosition();this.updateColor();this._barElement.control=this;if(!this._browserContext)
{this._browserContext=this._EntityBrowser.attach(this._barElement,this);var dropBlock=$create(Tp.Ajax.DragDrop.DropBlockBehavior,{Type:'entity',NormalCssClass:this._browserContext.browserElement.className,OverCssClass:'entityBrowserHightlighted',Data:this,TargetControl:this._browserContext.browserElement},null,null,null);dropBlock.add_drop(this._dropDelegate);}
this._EntityBrowser.OnResize(this._browserContext);this.updateForecast();},RefreshBrowser:function()
{this._EntityBrowser.replaceEntities(this._dataItems,this._browserContext);},isVisible:function()
{return this._EntityBrowser.isVisible(this._browserContext);},expand:function()
{if(!this._isLoaded)
{ReleasePlan.GetReleaseEntities(this._releaseDataItem.ID,this.LoadCompleteDelegate,null,this);}
this._EntityBrowser.show(this._browserContext);this.updateHeight();},collapse:function()
{this._EntityBrowser.hide(this._browserContext);this.updateHeight();},updateHeight:function()
{var maxHeight=0;var releaseBars=Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.bars;for(var i=0;i<releaseBars.length;i++)
{if(releaseBars[i]._projectTD==this._projectTD)
{if(releaseBars[i].isVisible())
{var bounds=Sys.UI.DomElement.getBounds(releaseBars[i]._browserContext.browserElement);if(bounds.height>maxHeight)
maxHeight=bounds.height;}}}
if(maxHeight>0)
this._projectTD.style.height=maxHeight+50+'px';else
this._projectTD.style.height='';this.RefreshAll();Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.instance.OnResize();},updatePosition:function()
{var projectBound=Sys.UI.DomElement.getBounds(this._projectTD);Ext.fly(this._projectTD).set({'valign':'top'});var y=projectBound.y+2;var boundsStart=Sys.UI.DomElement.getBounds(this._startWeekTD);var offset=Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.getOffset(this._releaseDataItem.StartDate,boundsStart.width,true,true);var x=boundsStart.x+offset;var boundsEnd=Sys.UI.DomElement.getBounds(this._endWeekTD);offset=Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.getOffset(this._releaseDataItem.EndDate,boundsEnd.width,true,false);var width=boundsEnd.x+offset-x;if(width<20)width=20;var currentBarBounds={'x':x,'y':y,'width':width,'height':this.getBounds().height};if(!Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._positionCache)
Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._positionCache={};var positionCache=Tp.Atlas.Extenders.ReleasePlan.ReleaseBar._positionCache;var groupID=this._projectTD.id;if(!positionCache[groupID])
positionCache[groupID]=[];var siblingBars=positionCache[groupID];var maxY=currentBarBounds.y+currentBarBounds.height;for(var i=0;i<siblingBars.length;i++)
{if(siblingBars[i]==this)
continue;var barBounds=siblingBars[i].getBounds();if(currentBarBounds.y==barBounds.y&&this._overlapsBars(siblingBars[i],this))
{currentBarBounds.y+=barBounds.height+2;i=-1;}
if(maxY<currentBarBounds.y+currentBarBounds.height)
maxY=currentBarBounds.y+currentBarBounds.height;}
if(!Array.contains(positionCache[groupID],this))
Array.add(positionCache[groupID],this);maxY=maxY-projectBound.y;if(maxY>0&&projectBound.height<maxY)
this._projectTD.style.height=maxY+2+'px';this._barElement.style.position='absolute';this._barElement.style.top=currentBarBounds.y+'px';this._barElement.style.left=currentBarBounds.x+'px';this._barElement.style.width=currentBarBounds.width+'px';},_overlapsBars:function(b1,b2){return b1._releaseDataItem.StartDate<=b2._releaseDataItem.EndDate&&b2._releaseDataItem.StartDate<=b1._releaseDataItem.EndDate;},getBounds:function()
{var bounds=Sys.UI.DomElement.getBounds(this._barElement);var browserBounds=this._browserContext?this._EntityBrowser.getBounds(this._browserContext):{'x':0,'y':0,'width':0,'height':0};return{'x':bounds.x,'y':bounds.y,'width':(bounds.width>browserBounds.width?bounds.width:browserBounds.width),'height':(bounds.height+browserBounds.height)};},updateStartAndEndTD:function()
{this._startWeekTD=this._timeLineInstance.findIntervalTD(this._releaseDataItem.StartDate);this._endWeekTD=this._timeLineInstance.findIntervalTD(this._releaseDataItem.EndDate);},updateForecast:function()
{if(this._releaseDataItem.ForecastedEndDate>this._releaseDataItem.EndDate&&this._releaseDataItem.IsCurrent)
{this._forecastedEndWeekTD=this._timeLineInstance.findIntervalTD(this._releaseDataItem.ForecastedEndDate);if(!this._forecastElement)
{this._forecastElement=document.createElement('div');this._forecastElement.style.position='absolute';this._forecastElement.style.display='none';this._forecastElement.innerHTML='&nbsp;';this._forecastElement.zIndex=0;this._timeLineInstance.get_element().appendChild(this._forecastElement);}
if(this._forecastElement)
{var bounds=Sys.UI.DomElement.getBounds(this._barElement);var x=bounds.x+bounds.width;var y=bounds.y;var boundsEnd=Sys.UI.DomElement.getBounds(this._forecastedEndWeekTD);var offset=Tp.Atlas.Extenders.ReleasePlan.ReleaseTimeLine.getOffset(this._releaseDataItem.ForecastedEndDate,boundsEnd.width,true,false);var width=boundsEnd.x+offset-x;this._forecastElement.style.display='';this._forecastElement.style.top=y+'px';this._forecastElement.style.left=x+'px';if(width<0)width=0;this._forecastElement.style.width=width+'px';if(this._timeLineInstance._deadLine&&this._timeLineInstance._deadLine<this._releaseDataItem.ForecastedEndDate)
{this._forecastElement.className='releaseForecastRed';}
else
{this._forecastElement.className='releaseForecast';}}}
else if(this._forecastElement)
{this._forecastElement.style.display='none';}},updateColor:function()
{if(!this._releaseDataItem.IsCurrent&&this._futureReleaseColor)
{this._barElement.style.background=this._futureReleaseColor;this._barElement.style.opacity=0.5;this._barElement.style.filter='alpha(opacity=50)';}
else if(this._currentReleaseColor)
{this._barElement.style.background=this._currentReleaseColor;this._barElement.style.opacity=0.8;this._barElement.style.filter='alpha(opacity=80)';}},updateLabels:function()
{var spans=this._barElement.getElementsByTagName('span');for(var i=0;i<spans.length;i++)
{if(spans[i].id=='effort')
{spans[i].innerHTML=this._releaseDataItem.Effort;}
else if(spans[i].id=='progress')
{spans[i].innerHTML=this._releaseDataItem.Progress;}
else if(spans[i].id=='forecast'&&this._releaseDataItem.Forecast)
{spans[i].innerHTML=this._releaseDataItem.Forecast;}
else if(spans[i].id=='name'&&this._releaseDataItem.Name)
{spans[i].innerHTML=this._releaseDataItem.Name;}}},canAdd:function(entity)
{if(entity.EntityTypeName=="Feature"&&!this._releaseDataItem.SupportFeature)return false;if(entity.EntityTypeName=="Bug"&&!this._releaseDataItem.SupportBug)return false;return true;},addEntity:function(entity)
{var oldParent=entity.parent;if(oldParent)
{oldParent.removeEntity(entity);}
if(this._isLoaded)
{Array.add(this._dataItems,entity);this._EntityBrowser.addEntity(entity,this._browserContext);}
this.updateHeight();},removeEntity:function(entity)
{Array.remove(this._dataItems,entity);this._EntityBrowser.removeEntity(entity,this._browserContext);this.updateHeight();},_onLoadComplete:function(dataItems,releaseBar)
{releaseBar._isLoaded=true;releaseBar._dataItems=dataItems;releaseBar.RefreshBrowser();this.updateHeight();},_onDrop:function(dropBlock,dragData)
{dragData.cancel_move=true;var handler=this.get_events().getHandler('drop');if(handler){var evArgs={releaseBar:dropBlock.get_Data(),entityDataItem:dragData.data,entityElement:dragData.element};handler(this,evArgs);}},_handlError:function(e)
{alert(e.get_Message());},add_drop:function(handler){this.get_events().addHandler('drop',handler);},remove_drop:function(handler){this.get_events().removeHandler('drop',handler);},add_save:function(handler){this.get_events().addHandler('save',handler);},remove_save:function(handler){this.get_events().removeHandler('save',handler);},_onSave:function(sender,args)
{var handler=this.get_events().getHandler('save');if(handler){handler(this,args);}},get_ReleaseDataItem:function()
{return this._releaseDataItem;},set_ReleaseDataItem:function(value)
{this._releaseDataItem=Sys.Serialization.JavaScriptSerializer.deserialize(value);},get_FutureReleaseColor:function()
{return this._futureReleaseColor;},set_FutureReleaseColor:function(value)
{this._futureReleaseColor=value;},get_CurrentReleaseColor:function()
{return this._currentReleaseColor;},set_CurrentReleaseColor:function(value)
{this._currentReleaseColor=value;},get_OnClientDrop:function()
{return this._onClientDrop;},set_OnClientDrop:function(value)
{this._onClientDrop=value;},get_OnClientSave:function()
{return this._onClientSave;},set_OnClientSave:function(value)
{this._onClientSave=value;}};Tp.Atlas.Extenders.ReleasePlan.ReleaseBar.registerClass('Tp.Atlas.Extenders.ReleasePlan.ReleaseBar',Sys.UI.Control);;
/*CustomFields.js*/
function InitializeCustomFields()
{var projectProgramDropDown=typeof(programProjectDropDownID)!='undefined'?$get(programProjectDropDownID):null;var processDropDown=typeof(processDropDownID)!='undefined'?$get(processDropDownID):null;if(processDropDown)
{$addHandler(processDropDown,'change',OnChangeProcessForCustomField);ProcessCustomField(processDropDown.value);}
if(projectProgramDropDown)
{$addHandler(projectProgramDropDown,'change',OnChangeProjectForCustomField);ProcessCustomField(projectProcess[projectProgramDropDown.value]);}}
function ProcessCustomField(processID)
{var isVisible=processID==customFieldProcessID;if(isVisible){Ext.getBody().select('.customFieldPlace').show();}
else{Ext.getBody().select('.customFieldPlace').hide();}
if(!swtichCFValidators)
return;for(var i=0;i<Page_Validators.length;i++)
{if(Page_Validators[i].id.toLowerCase().indexOf('customfields')!=-1)
{ValidatorEnable(Page_Validators[i],isVisible);}}
$get(hdnCustomFieldsChangedID).value=isVisible?"0":"1";}
function OnChangeProcessForCustomField(eventRaw)
{swtichCFValidators=true;ProcessCustomField(eventRaw.target.value);}
function OnChangeProjectForCustomField(eventRaw)
{swtichCFValidators=true;ProcessCustomField(projectProcess[eventRaw.target.value]);};
/*BacklogBrowser.js*/
Type.registerNamespace("Tp.Atlas.Extenders.BacklogBrowser");Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser=function(element){Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.initializeBase(this,[element]);this._BacklogItems=null;this._EntityBrowser=null;this._context=null;this._projectID=null;this._showFeatures=true;this._showUserStories=true;this._showBugs=true;this.nameFilter="";this.tagFilter="";this._sortOrder="Priority";this._dropBlock=null;this._onClientDrop='';this.instance=this;this._showAllEntities=null;};Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.prototype={initialize:function(){Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.callBaseMethod(this,'initialize');if(Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance)
throw Error.create('There are more than 1 BacklogBrowser instance found');Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance=this;if(!Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance)
throw Error.create('Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance is null. It must be first on the page');this._EntityBrowser=Tp.Atlas.Extenders.EntityBrowser.EntityBrowser.instance;this.CreateBacklog();this._dropDelegate=Function.createDelegate(this,this._onDrop);this._dropBlock=$create(Tp.Ajax.DragDrop.DropBlockBehavior,{Type:'entity',NormalCssClass:this.get_element().parentNode.className,OverCssClass:'backlogBrowserHighlighted',Data:'',TargetControl:this.get_element().parentNode},null,null,null);this._dropBlock.add_drop(this._dropDelegate);if(this._onClientDrop)
this.add_drop(eval(this._onClientDrop));},dispose:function(){Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.callBaseMethod(this,'dispose');Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.instance=null;this._BacklogItems=null;this._EntityBrowser=null;this._context=null;this._dropBlock=null;this._dropDelegate=null;},_onDrop:function(dropBlock,dragData){dragData.cancel_move=true;var handler=this.get_events().getHandler('drop');if(handler){var evArgs={releaseBar:dropBlock.get_Data(),releaseBarFrom:dragData.data.browserContext.parent,entityDataItem:dragData.data,entityElement:dragData.element};handler(this,evArgs);}},CreateBacklog:function(){if(!this._BacklogItems)
throw new Error.create('BacklogItems not set');if(this._context)
throw new Error.create('Backlog already created');this._context=this._EntityBrowser.attachStatic(this.get_element(),this);this._EntityBrowser.show(this._context);this.Refresh();},addEntity:function(entity){Array.add(this._BacklogItems,entity);this._EntityBrowser.addEntity(entity,this._context);},isEntityExists:function(entityID){if(this._BacklogItems==null)
return false;for(var i=0;i<this._BacklogItems.length;i++){if(this._BacklogItems[i].ID==entityID)
return true;}
return false;},removeEntity:function(entity){Array.remove(this._BacklogItems,entity);this._EntityBrowser.removeEntity(entity,this._context);},set_ProjectID:function(projectID){this._projectID=projectID;},set_TypeFilter:function(showFeatures,showUserStories,showBugs){this._showFeatures=showFeatures;this._showUserStories=showUserStories;this._showBugs=showBugs;},set_KeywordsFilter:function(keywords,tags){this.nameFilter=keywords;this.tagFilter=tags;},set_SortOrder:function(field){this._sortOrder=field;},Refresh:function(){var filteredEntities=[];var keywords=this.splitTextFilterBySpaces(this.nameFilter);var tags=this.splitTextFilterBySpaces(this.tagFilter);for(var i=0;i<this._BacklogItems.length;i++){var item=this._BacklogItems[i];var visible=this.filterByProject(item)&&this.filterByType(item)&&this.filterByKeyword(item,keywords)&&this.filterByTag(item,tags);if(visible){Array.add(filteredEntities,item);}}
if(this._sortOrder=="Name")
filteredEntities.sort(SortByName);else if(this._sortOrder=="Priority")
filteredEntities.sort(SortByPriority);else if(this._sortOrder=="Effort")
filteredEntities.sort(SortByEffort);else if(this._sortOrder=="TypeName")
filteredEntities.sort(SortByTypeName);if(!this._added){this._EntityBrowser.replaceEntities(filteredEntities,this._context);this._added=true;}
else
this._EntityBrowser.resortEntities(filteredEntities,this._context);},filterByProject:function(item){if(this._projectID!=null&&!isNaN(this._projectID)){return item.ProjectID==this._projectID;}
return true;},filterByType:function(item){if(item.EntityTypeName=="Feature"){return this._showFeatures;}
if(item.EntityTypeName=="UserStory"){return this._showUserStories;}
if(item.EntityTypeName=="Bug"){return this._showBugs;}
return true;},filterByKeyword:function(item,keywords){if(keywords.length){for(var n=0;n<keywords.length;n++){var keyword=keywords[n];var match=keyword.match(/^#?(\d+)$/);if(match){keyword=match[1];}
if(!isNaN(keyword)&&keyword>0){if(item.ID==keyword){return true;}}
else if(item.Name.toLowerCase().indexOf(keyword)!=-1){return true;}}
return false;}
return true;},splitTextFilterBySpaces:function(filterText){var x=(filterText||'').trim();if(x.length){return x.toLowerCase().split(/\s+/).sort();}
else{return[];}},filterByTag:function(item,tags){if(tags.length){function containsTag(item,tag){for(var n=0;n<item.Tags.length;n++){if(item.Tags[n].toLowerCase().indexOf(tag)!=-1){return true;}}
return false;}
for(var n=0;n<tags.length;n++){if(!containsTag(item,tags[n].toLowerCase())){return false;}}}
return true;},add_drop:function(handler){this.get_events().addHandler('drop',handler);},remove_drop:function(handler){this.get_events().removeHandler('drop',handler);},get_BacklogItems:function(){return this._BacklogItems;},set_BacklogItems:function(items){this._BacklogItems=Sys.Serialization.JavaScriptSerializer.deserialize(items);},get_TargetControl:function(){return this._TargetControl;},set_TargetControl:function(value){this._TargetControl=value;},get_OnClientDrop:function(){return this._onClientDrop;},set_OnClientDrop:function(value){this._onClientDrop=value;},set_showAllEntities:function(field){this._showAllEntities=field;},get_showAllEntities:function(field){return this._showAllEntities;}};function SortByName(o1,o2)
{var s1=o1.Name.replace(/\W+/,'').toLowerCase();var s2=o2.Name.replace(/\W+/,'').toLowerCase();if(s1>s2)
{return 1;}
else if(s1<s2)
{return-1;}
else
{return 0;}}
function SortByTypeName(o1,o2)
{var s1=o1.EntityTypeName.replace(/\W+/,'').toLowerCase();var s2=o2.EntityTypeName.replace(/\W+/,'').toLowerCase();if(s1>s2)
{return 1;}
else if(s1<s2)
{return-1;}
else
{return 0;}}
function SortByPriority(o1,o2)
{if(o1.IsFeature&&!o2.IsFeature)
return-1;if(!o1.IsFeature&&o2.IsFeature)
return 1;if(o1.IsFeature!=o2.IsFeature)Sys.Debug.fail('ss');if(o1.PriorityImportance<o2.PriorityImportance)
return-1;if(o1.PriorityImportance>o2.PriorityImportance)
return 1;return SortByName(o1,o2);}
function SortByEffort(o1,o2)
{if(o1.NumericEffort>o2.NumericEffort)
return-1;if(o1.NumericEffort<o2.NumericEffort)
return 1;return SortByPriority(o1,o2);}
Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser.registerClass('Tp.Atlas.Extenders.BacklogBrowser.BacklogBrowser',Sys.UI.Control);;
/*Tp.Atlas.Extenders.Components.BatchActionManager.js*/
Type.registerNamespace("Tp.Atlas.Extenders.Components");Tp.Atlas.Extenders.Components.BatchActionManager=function(element)
{Tp.Atlas.Extenders.Components.BatchActionManager.initializeBase(this,[element]);this._args=null;this._checkboxes=null;this._checkboxGroups=null;this._checkboxArgs=null;this._headCheckbox=null;}
Tp.Atlas.Extenders.Components.BatchActionManager.prototype={initialize:function()
{Tp.Atlas.Extenders.Components.BatchActionManager.callBaseMethod(this,'initialize');var str=this.get_element().value;this._args=str.split(':');this._initCheckboxes();},dispose:function()
{Tp.Atlas.Extenders.Components.BatchActionManager.callBaseMethod(this,'dispose');},get_Checkboxes:function()
{return this._checkboxes;},set_Checkboxes:function(value)
{this._checkboxes=value;},get_CheckboxGroups:function()
{return this._checkboxGroups;},set_CheckboxGroups:function(value)
{this._checkboxGroups=value;},get_CheckboxArgs:function()
{return this._checkboxArgs;},set_CheckboxArgs:function(value)
{this._checkboxArgs=value;},get_HeadCheckbox:function()
{return this._headCheckbox;},set_HeadCheckbox:function(value)
{this._headCheckbox=value;},ToggleCheckBox:function(checkboxElement,arg)
{if(checkboxElement.checked&&!Array.contains(this._args,arg))
{Array.add(this._args,arg);}
else if(!checkboxElement.checked&&Array.contains(this._args,arg))
{Array.remove(this._args,arg);}
this.get_element().value=this._args.join(':');this._highlightRow(checkboxElement);},ToggleAllCheckBoxes:function(checkboxElement,group)
{if(checkboxElement==null||this._checkboxes==null)return;var state=checkboxElement.checked;for(var i=0;i<this._checkboxes.length;i++)
{var chk=$get(this._checkboxes[i]);if(group==null||group==''||group==this._checkboxGroups[i])
{chk.checked=state==null?true:state;}
else
{chk.checked=false;}
this.ToggleCheckBox(chk,this._checkboxArgs[i]);}},_initCheckboxes:function()
{var bool=true;if(this._checkboxes==null)return;for(var i=0;i<this._checkboxes.length;i++)
{var checkbox=$get(this._checkboxes[i]);this._highlightRow(checkbox);bool=bool&&checkbox.checked;}
if(bool&&this._headCheckbox)
{$get(this._headCheckbox).checked=true;}},_highlightRow:function(checkBox)
{if(checkBox==null)
return;var parent=checkBox.parentNode;while(parent!=null&&parent.tagName!='TR')
parent=parent.parentNode;if(parent==null)
return;if(checkBox.checked&&parent.className!='rowCheckSelected')
{parent.previousClassName=parent.className;parent.className='rowCheckSelected';}
else if(!checkBox.checked)
{if(parent.previousClassName)
parent.className=parent.previousClassName;else if(parent.className=='rowCheckSelected')
parent.className='';}}}
Tp.Atlas.Extenders.Components.BatchActionManager.registerClass('Tp.Atlas.Extenders.Components.BatchActionManager',Sys.UI.Control);if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();;
/*NumberOperator.js*/
var NumberOperator=null;Type.registerNamespace('Tp.Atlas.Extenders.Utilities');Tp.Atlas.Extenders.Utilities.NumberOperator=function(){Tp.Atlas.Extenders.Utilities.NumberOperator.initializeBase(this);this._decimalSeparator='.';}
Tp.Atlas.Extenders.Utilities.NumberOperator.prototype={initialize:function(){Tp.Atlas.Extenders.Utilities.NumberOperator.callBaseMethod(this,'initialize');NumberOperator=this;},createNumber:function(value){if(value==null)
return 0;if(value=='')
return 0;if(!isNaN(value))
return parseFloat(value);var val=value;var num,cleanInput,m,exp;exp=new RegExp("^\\s*(\\d*)\\"+this.get_decimalSeparator()+"?(\\d*)\\s*$");m=val.match(exp);if(m==null)
return 0;if(m[1].length==0&&m[2].length==0)
return 0;cleanInput=(m[1].length>0?m[1]:"0")+(m[2].length>0?"."+m[2]:"");num=parseFloat(cleanInput);return(isNaN(num)?0:num);},getCountOfDigits:function(num){num=parseFloat(num.toString());var strNum=num.toString();var index=strNum.indexOf('.');if(index<0)
return 0;return strNum.length-index-1;},sum:function(num1,num2){var countOfDigits=Math.max(this.getCountOfDigits(num1),this.getCountOfDigits(num2));var result=num1+num2;result=result.toFixed(countOfDigits);result=parseFloat(result.toString());return result;},sub:function(num1,num2){var countOfDigits=Math.max(this.getCountOfDigits(num1),this.getCountOfDigits(num2));var result=num1-num2;result=result.toFixed(countOfDigits);result=parseFloat(result.toString());return result;},positiveSub:function(num1,num2){var countOfDigits=Math.max(this.getCountOfDigits(num1),this.getCountOfDigits(num2));var result=num1-num2;if(result<=0)
return 0;result=result.toFixed(countOfDigits);result=parseFloat(result.toString());return result;},toString:function(num){var strNum=num.toString();return strNum.replace('.',this.get_decimalSeparator());},dispose:function(){Tp.Atlas.Extenders.Utilities.NumberOperator.callBaseMethod(this,'dispose');},set_decimalSeparator:function(value){this._decimalSeparator=value;},get_decimalSeparator:function(){return this._decimalSeparator;}}
Tp.Atlas.Extenders.Utilities.NumberOperator.registerClass('Tp.Atlas.Extenders.Utilities.NumberOperator',Sys.Component);;
/*NumericMask.js*/
Type.registerNamespace('Tp.Extenders');Tp.Extenders.NumericMask=function()
{Tp.Extenders.NumericMask.initializeBase(this);this._targetControl=null;this._isOnlyNumbers=false;}
Tp.Extenders.NumericMask.prototype={initialize:function()
{this.onKeyHandler=Function.createDelegate(this,this._onKeyValidation);if(this._targetControl)
$addHandler(this._targetControl,'keypress',this.onKeyHandler);},dispose:function()
{if(this.onKeyHandler)
delete this.onKeyHandler;Tp.Extenders.NumericMask.callBaseMethod(this,'dispose');},get_IsOnlyNumbers:function()
{return this._isOnlyNumbers;},isValidInput:function(key,value)
{if(!this._isOnlyNumbers&&key==NumberOperator._decimalSeparator&&value.indexOf(NumberOperator._decimalSeparator)==-1)
return true;if(isNaN(key))
return false;return true;},_onKeyValidation:function(sender)
{if(sender.rawEvent.charCode!=null&&sender.rawEvent.charCode==0)
return;var key=String.fromCharCode(sender.charCode);if(!this.isValidInput(key,sender.target.value))
sender.preventDefault();},set_IsOnlyNumbers:function(value)
{this._isOnlyNumbers=value;},get_TargetControl:function()
{return this._targetControl;},set_TargetControl:function(value)
{this._targetControl=value;}}
Tp.Extenders.NumericMask.registerClass('Tp.Extenders.NumericMask',Sys.Component);;
/*MetaDataManager.js*/
var metaDataManager=null;Type.registerNamespace("Tp.Ajax.Extenders.Utilities");Tp.Ajax.Extenders.Utilities.MetaDataManager=function(){Tp.Ajax.Extenders.Utilities.MetaDataManager.initializeBase(this);this.entities=[];this.dataTypes=[];};Tp.Ajax.Extenders.Utilities.MetaDataManager.prototype={initialize:function(){Tp.Ajax.Extenders.Utilities.MetaDataManager.callBaseMethod(this,"initialize");metaDataManager=this;},getReportContent:function(gridDataRequest,callContext,entity){Ext.MessageBox.show({msg:"Loading the required information, please wait...",progressText:"Loading...",width:300,wait:true,waitConfig:{interval:200}});callContext.entity=entity;if(entity){Tp.Web.Extensions.ExtJs.Web.GridService.GetReportContent(gridDataRequest,this.onGettingReportContentCompleted,null,callContext);}else{Tp.Web.Extensions.ExtJs.Web.GridService.GetMetaDataInfo(gridDataRequest,this.onGettingMetaInfoCompleted,null,callContext);}},getMetaDataInfoForEntity:function(processId,entityName,callContext){Ext.MessageBox.show({msg:"Loading the required information, please wait...",progressText:"Loading...",width:300,wait:true,waitConfig:{interval:200}});Tp.Web.Extensions.ExtJs.Web.GridService.GetMetaDataInfoForEntity(processId,entityName,this.onGettingMetaInfoCompleted,null,callContext);},onGettingReportContentCompleted:function(result,callContext){metaDataManager.onOperationCompleted({Entity:callContext.entity,Content:result},callContext);},onGettingMetaInfoCompleted:function(result,callContext){if(result.Entity!=null){metaDataManager.addEntity(result.Entity);}
if(result.Types!=null){metaDataManager.addTypes(result.Types);}
metaDataManager.onOperationCompleted(result,callContext);},addEntity:function(entity){var cachedEntity=metaDataManager.entities[entity.DataType];if(cachedEntity!=null){if(entity.OneToOneFields!=null&&cachedEntity.OneToOneFields==null){cachedEntity.OneToOneFields=entity.OneToOneFields;}
if(entity.BagFields!=null&&cachedEntity.BagFields==null){cachedEntity.BagFields=entity.BagFields;}}else{metaDataManager.entities[entity.DataType]=entity;if(entity.BagFields!=null){Tp.collections.createMixedCollection(entity.BagFields).each(function(item){metaDataManager.addEntity(item);});}
if(entity.OneToOneFields!=null){Tp.collections.createMixedCollection(entity.OneToOneFields).each(function(item){metaDataManager.addEntity(item);});}}},addTypes:function(types){for(var i=0;i<types.length;i++){metaDataManager.dataTypes[types[i].Name]=types[i];}},getStoreForInnerBags:function(){var operators=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.ArrayReader({},[{name:"Name"},{name:"Type"},{name:"ID"}])});operators.load();return operators;},getAvailableInnerBags:function(entity,bagName){var fieldsData=[];var bags=entity.BagFields;var bag=null;for(var i=0;i<bags.length;i++){if(bags[i].Name==bagName){bag=bags[i];break;}}
var fieldsData=[];for(var i=0;i<entity.InnerReports.length;i++){var innerReport=entity.InnerReports[i];if(innerReport.Type==bag.DataType){fieldsData.push([innerReport.Name,innerReport.Type,innerReport.ID]);}}
return fieldsData;},getStoreBagFields:function(entity){var fieldsData=[];var bags=entity.BagFields;for(var i=0;i<bags.length;i++){if(bags[i].IsAlias){continue;}
fieldsData.push([bags[i].Name,bags[i].DisplayName,bags[i].DataType]);}
return new Ext.data.SimpleStore({fields:["Name","DisplayName","DataType"],data:fieldsData});},getStoreFilterFields:function(entity){var fieldsData=[];this.fillStoreWithNativeFields(fieldsData,entity,false);var oneToOneEntities=entity.OneToOneFields;for(var i=0;i<oneToOneEntities.length;i++){this.fillStoreWithNativeFields(fieldsData,oneToOneEntities[i],true);}
var bags=entity.BagFields;for(var i=0;i<bags.length;i++){if(!bags[i].IsAlias){continue;}
this.fillStoreWithNativeFields(fieldsData,bags[i],true);}
return new Ext.data.SimpleStore({fields:["Name","DisplayName","Type"],data:fieldsData});},getEmptyStoreForFields:function(){var fields=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.ArrayReader({},[{name:"Name"},{name:"DisplayName"},{name:"Type"}])});fields.load();return fields;},getStoreForOperators:function(){var operators=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.ArrayReader({},[{name:"Name"}])});operators.load();return operators;},getOperatorsAvailableForField:function(dataFieldType){var operators=[["equal to"],["not equal to"]];if(dataFieldType=="float"||dataFieldType=="int"||dataFieldType=="date"){operators.push(["greater than"]);operators.push(["less than"]);operators.push(["greater than or equal to"]);operators.push(["less than or equal to"]);}
if(dataFieldType=="string"){operators.push(["contains"]);operators.push(["not contains"]);}
return operators;},getGroupOperationsAvailableForField:function(dataFieldType){var operators=[];if(dataFieldType=="date"){operators.push(["max"]);operators.push(["min"]);}
if(dataFieldType=="float"||dataFieldType=="int"){operators.push(["sum"]);operators.push(["avg"]);operators.push(["max"]);operators.push(["min"]);}
return operators;},fillStoreWithNativeFields:function(store,entity,appendName){var nativeFields=this.getNativeFields(entity.DataType);for(var i=0;i<nativeFields.length;i++)
store.push([(appendName?entity.Name+":":"")+nativeFields[i].Id,(appendName?entity.DisplayName+" : ":"")+nativeFields[i].Id,nativeFields[i].Type]);},fillArrayWithNativeDataForGroupOperations:function(store,nativeFields){for(var i=0;i<nativeFields.length;i++){if(this.getGroupOperationsAvailableForField(nativeFields[i].Type).length==0)
continue;store.push([nativeFields[i].Id,nativeFields[i].Id,nativeFields[i].Type]);}},getNativeFields:function(dataTypeName){var dataType=this.dataTypes[dataTypeName];return dataType.NativeFields;},onOperationCompleted:function(result,callContext){callContext.callback(result,callContext.arg);Ext.MessageBox.hide();},dispose:function(){Tp.Ajax.Extenders.Utilities.MetaDataManager.callBaseMethod(this,"dispose");}};Tp.Ajax.Extenders.Utilities.MetaDataManager.registerClass("Tp.Ajax.Extenders.Utilities.MetaDataManager",Sys.Component);Sys.Application.add_init(function(){$create(Tp.Ajax.Extenders.Utilities.MetaDataManager,{id:"metaDataManager"},null,null,null)});;
/*Tabs.js*/
var TabControl$loaded={};function TabControl$show(clientTabId,serverTabId,tabIndex,selectedTabCssClass,TabCssClass){var uxTabControl=$get(clientTabId);var tabs=uxTabControl.childNodes[1].getElementsByTagName("LI");for(var index=0;index<tabs.length;index++){tabs[index].className=tabs[index].attributes["tabIndexNumber"].value==tabIndex?selectedTabCssClass:TabCssClass;}
var tabsContents=uxTabControl.childNodes[2].childNodes;var selectedTabContent=null;for(var index=0;index<tabsContents.length;index++){if(tabsContents[index].nodeType==3)
continue;if(tabsContents[index].attributes["tabIndexNumber"].value==tabIndex){tabsContents[index].style.display='block';selectedTabContent=tabsContents[index];}
else{tabsContents[index].style.display='none';}}
if(!TabControl$loaded[tabIndex]){__doPostBack(serverTabId,"L:"+tabIndex);}
else{__doPostBack(serverTabId,"S:"+tabIndex);}};
/*ReportGridEditor.js*/
Tp.Ajax.ReportGridEditor=function(reportGridPanel){this.reportGridPanel=reportGridPanel;this.tabs=[];this.window=null;this.customReportSaveAsWindow=null;};Tp.Ajax.ReportGridEditor.prototype={setMetaDataInfo:function(metaDataInfo){this.reportContent=metaDataInfo.Content;this.entity=metaDataInfo.Entity;for(var i=0;i<this.tabs.length;i++){this.tabPanel.remove(this.tabs[i]);}
this.entityPanel=new Tp.Ajax.EntityPanel({metaDataInfo:metaDataInfo});this.fieldsPanel=new Tp.Ajax.FieldsPanel({metaDataInfo:metaDataInfo});this.filtersPanel=new Tp.Ajax.FiltersPanel({metaDataInfo:metaDataInfo,entity:metaDataInfo.Entity});this.summaryFieldsPanel=new Tp.Ajax.SummaryFieldsPanel({metaDataInfo:metaDataInfo});this.innerListsPanel=new Tp.Ajax.InnerListsPanel({metaDataInfo:metaDataInfo});this.settingsPanel=new Tp.Ajax.SettingsPanel({metaDataInfo:metaDataInfo,gridConfig:this.reportGridPanel.initialConfig});this.tabs=[this.entityPanel,this.fieldsPanel,this.filtersPanel,this.summaryFieldsPanel,this.innerListsPanel,this.settingsPanel];for(var i=0;i<this.tabs.length;i++){this.tabPanel.add(this.tabs[i]);}
this.entityPanel.on("metaDataChanged",Function.createDelegate(this,this.onMetaDataChange));this.onMetaDataChange(metaDataInfo);},onMetaDataChange:function(metaDataInfo){if(metaDataInfo==null||metaDataInfo.Entity==null){this.fieldsPanel.disable();this.filtersPanel.disable();this.summaryFieldsPanel.disable();this.innerListsPanel.disable();}else{this.reportContent=metaDataInfo.Content;this.entity=metaDataInfo.Entity;this.fieldsPanel=new Tp.Ajax.FieldsPanel({metaDataInfo:metaDataInfo});this.filtersPanel=new Tp.Ajax.FiltersPanel({metaDataInfo:metaDataInfo,entity:metaDataInfo.Entity,criteria:metaDataInfo.Content.Criteria});this.summaryFieldsPanel=new Tp.Ajax.SummaryFieldsPanel({metaDataInfo:metaDataInfo});this.innerListsPanel=new Tp.Ajax.InnerListsPanel({metaDataInfo:metaDataInfo});this.tabs[1]=this.fieldsPanel;this.tabs[2]=this.filtersPanel;this.tabs[3]=this.summaryFieldsPanel;this.tabs[4]=this.innerListsPanel;this.tabPanel.remove(1);this.tabPanel.insert(1,this.tabs[1]);this.tabPanel.remove(2);this.tabPanel.insert(2,this.tabs[2]);this.tabPanel.remove(3);this.tabPanel.insert(3,this.tabs[3]);this.tabPanel.remove(4);this.tabPanel.insert(4,this.tabs[4]);}},createWindow:function(){this.tabPanel=new Ext.TabPanel({region:"center",margins:"3 3 3 0",activeTab:0,defaults:{autoScroll:true}});this.saveAsButton=new Ext.Button({text:"Save As",handler:Function.createDelegate(this,this.onSaveAs)});return new Ext.Window({title:"Create/Edit Report",closable:true,width:900,height:600,shadow:true,closeAction:"hide",maximizable:true,modal:true,plain:true,layout:"fit",items:[this.tabPanel],buttons:[{text:"Run Report",handler:Function.createDelegate(this,this.onApply)},{text:"Save & Run Report",handler:Function.createDelegate(this,this.onSave)},this.saveAsButton,{text:"Cancel",handler:Function.createDelegate(this,this.onCancel)}]});},onCancel:function(){this.reportContent=null;this.window.destroy();this.window=null;if(!Ext.isEmpty(this.customReportSaveAsWindow)){this.customReportSaveAsWindow.destroy();this.customReportSaveAsWindow=null;}},onApply:function(){var reportContent=this.prepareReportContent("Applying...",false);if(reportContent){Tp.Web.Extensions.ExtJs.Web.GridService.ApplyReport(this.reportGridPanel.gridDataRequest,this.reportContent,this.onReportSaved,null,this);}},prepareReportContent:function(progressText,saving){var reportContent=this.validate(saving);if(reportContent){this.mergeReport(reportContent);Ext.MessageBox.show({msg:"Please wait...",progressText:progressText,width:300,wait:true,waitConfig:{interval:100}});}
return reportContent;},onSaveError:function(exception,reportContext){SetLastWarning(exception.get_message());reportContext.onCancel();Ext.MessageBox.hide();},onSave:function(){var reportContent=this.prepareReportContent("Saving...",true);if(reportContent){Tp.Web.Extensions.ExtJs.Web.GridService.SaveReport(this.reportGridPanel.gridDataRequest,this.reportContent,this.onReportSaved,this.onSaveError,this);}},onSaveAs:function(){if(!Ext.isEmpty(this.customReportSaveAsWindow)){this.customReportSaveAsWindow.destroy();}
this.customReportSaveAsWindow=new Tp.CustomReports.CustomReportSaveAsWindow({});this.customReportSaveAsWindow.on("save",Function.createDelegate(this,this.customReportSaveAsWindowSavePressed));this.customReportSaveAsWindow.show();},customReportSaveAsWindowSavePressed:function(newReportName){if(this.customReportSaveAsWindow.validateFields()){var reportContent=this.prepareReportContent("Saving...",false);if(reportContent){this.reportContent.Name=newReportName;Tp.Web.Extensions.ExtJs.Web.GridService.CreateReport(this.reportContent,this.onReportSaved,this.onReportSaveFailed,this);}}},validate:function(saving){var reportContent={Fields:[]};if(this.entityPanel.validate()){}
else{this.tabPanel.activate(this.tabs[0]);Ext.MessageBox.show({title:"Invalid Report",msg:"Please select process and entity!",buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});return;}
if(this.fieldsPanel.validate()){var selectedFields=this.fieldsPanel.getSelectedFields();for(var i=0;i<selectedFields.length;i++){reportContent.Fields.push({Name:selectedFields[i]});}}
else{this.tabPanel.activate(this.tabs[1]);Ext.MessageBox.show({title:"Invalid Report",msg:"At least one field should be selected!",buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});return;}
if(this.filtersPanel.validate()){reportContent.Criteria=this.filtersPanel.getCriteria();}
else{this.tabPanel.activate(this.tabs[2]);Ext.MessageBox.show({title:"Invalid Report",msg:"The filters are not valid!",buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});return;}
if(this.summaryFieldsPanel.validate()){var summaryFields=this.summaryFieldsPanel.getSummaryFields();for(var i=0;i<summaryFields.length;i++){reportContent.Fields.push(summaryFields[i]);}}
else{this.tabPanel.activate(this.tabs[3]);Ext.MessageBox.show({title:"Invalid Report",msg:"The summary fields are not valid!",buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});return;}
if(this.innerListsPanel.validate()){reportContent.InnerReports=this.innerListsPanel.getInnerLists();}
else{this.tabPanel.activate(this.tabs[4]);Ext.MessageBox.show({title:"Invalid Report",msg:"The inner lists configuration is not valid!",buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});return;}
var validationResult=this.settingsPanel.validate(saving);if(validationResult!==true){this.tabPanel.activate(this.tabs[5]);Ext.MessageBox.show({title:"Invalid Report",msg:validationResult,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});return;}
reportContent.Name=this.settingsPanel.getReportName();reportContent.LimitOfRecords=this.settingsPanel.getPageSize();reportContent.IsPublic=this.settingsPanel.getIsPublic();return reportContent;},mergeReport:function(reportContent){this.reportContent.Name=reportContent.Name;this.reportContent.IsPublic=reportContent.IsPublic;this.reportContent.LimitOfRecords=reportContent.LimitOfRecords;this.reportContent.Criteria=reportContent.Criteria;var fields=[];for(var i=0;i<this.reportContent.Fields.length;i++){var field=this.reportContent.Fields[i];var foundFields=Tp.collections.createMixedCollection(reportContent.Fields).filterBy(function(foundField){if(!field.IsCalculatable){return foundField.Name==field.Name;}
return foundField.Name==field.Name&&foundField.IsCalculatable==field.IsCalculatable&&foundField.CollectionName==field.CollectionName;});if(foundFields.getCount()==1){reportContent.Fields.remove(foundFields.get(0));if(field.Width){foundFields.get(0).Width=field.Width;}
fields.push(foundFields.get(0));}}
for(var i=0;i<reportContent.Fields.length;i++){fields.push(reportContent.Fields[i]);}
this.reportContent.Fields=fields;this.reportContent.InnerReports=reportContent.InnerReports;},onReportSaved:function(result,editor){if(!Ext.isEmpty(editor.customReportSaveAsWindow))
editor.customReportSaveAsWindow.hide();editor.window.hide();Ext.MessageBox.hide();editor.reportGridPanel.gridDataRequest=result.dataRequest;editor.reportGridPanel.fireEvent("reconfiguring",result.header,editor.reportContent.LimitOfRecords,editor.reportContent);editor.onCancel();},onReportSaveFailed:function(result,editor){Ext.MessageBox.hide();editor.customReportSaveAsWindow.markReportNameInvalid(result.get_message());},show:function(){if(!this.reportContent&&!this.entity){metaDataManager.getReportContent(this.reportGridPanel.gridDataRequest,{callback:this.onLoadReportContent,arg:this});}else{metaDataManager.getReportContent(this.reportGridPanel.gridDataRequest,{callback:this.onLoadReportContent,arg:this},this.entity);}},onLoadReportContent:function(metaDataInfo,editor){editor.window=null;editor.metaDataInfo=metaDataInfo;editor.showEditorWindow();},showEditorWindow:function(){if(!this.window){this.window=this.createWindow();}
if(temporaryGridId==this.reportGridPanel.gridDataRequest.GridID){this.saveAsButton.disable();}
else{this.saveAsButton.enable();}
this.setMetaDataInfo(this.metaDataInfo);this.window.show(this);}};;
/*EntityPanel.js*/
Tp.Ajax.EntityPanel=Ext.extend(Ext.Panel,{title:"Entity",bodyStyle:"padding: 15px",border:false,constructor:function(config){Tp.Ajax.EntityPanel.superclass.constructor.call(this,config);},initComponent:function(){var processes=[];for(var i=0;i<this.metaDataInfo.ProcessInfo.length;i++){var entities=[];var process=this.metaDataInfo.ProcessInfo[i];for(var j=0;j<process.EntityInfo.length;j++){entity=process.EntityInfo[j];entities.push([process.Id,entity.Name,entity.Alias]);}
var p=[process.Id,process.Name,entities];processes.push(p);}
this.processStore=new Ext.data.SimpleStore({fields:["processId","processName","entities"],data:processes});this.processCombo=new Ext.form.ComboBox({store:this.processStore,forceSelection:true,allowBlank:false,valueField:"processId",displayField:"processName",typeAhead:true,mode:"local",triggerAction:"all",disabled:false,emptyText:"Select a process...",selectOnFocus:true,tpl:'<tpl for="."><div class="x-combo-list-item">{processName:htmlEncode}</div></tpl>'});this.processPanel=new Ext.Panel({border:false,items:[{border:false,layout:"fit",html:"Choose a process"},this.processCombo]});this.entityTypeStore=new Ext.data.SimpleStore({fields:["processId","entityName","entityAlias"],data:[]});this.entityTypeCombo=new Ext.form.ComboBox({store:this.entityTypeStore,forceSelection:true,allowBlank:false,valueField:"entityName",displayField:"entityAlias",typeAhead:true,mode:"local",triggerAction:"all",disabled:false,emptyText:"Select an entity type...",selectOnFocus:true,tpl:'<tpl for="."><div class="x-combo-list-item">{entityAlias:htmlEncode}</div></tpl>'});this.entityTypePanel=new Ext.Panel({border:false,bodyStyle:'margin-top: 10px;',items:[{border:false,layout:"fit",html:"Choose the top level entity for the report. <b>It can't be changed after report save</b>"},this.entityTypeCombo]});if(this.metaDataInfo.Entity!=null){this.processCombo.disable();this.entityTypeCombo.disable();}else{this.processCombo.on("select",Function.createDelegate(this,this.onProcessSelected));this.entityTypeCombo.on("select",Function.createDelegate(this,this.onEntityTypeSelected));}
if(this.metaDataInfo.Content!=null&&this.metaDataInfo.Content.ProcessID!=0){var r1=this.processCombo.findRecord(this.processCombo.valueField,this.metaDataInfo.Content.ProcessID);this.processCombo.setValue(r1.data.processId);this.entityTypeStore.loadData(r1.data.entities,false);if(this.metaDataInfo.Entity!=null){var r2=this.entityTypeCombo.findRecord(this.entityTypeCombo.valueField,this.metaDataInfo.Entity.Name);this.entityTypeCombo.setValue(r2.data.entityName);}}else{if(processes.length==1){this.processCombo.setValue(processes[0][0]);this.entityTypeStore.loadData(processes[0][2],false);}}
if(processes.length==1){this.processPanel.setVisible(false);}
Ext.apply(this,{items:[this.processPanel,this.entityTypePanel]});this.on("activate",function(panel){panel.doLayout(true);});Tp.Ajax.EntityPanel.superclass.initComponent.apply(this,arguments);},onProcessSelected:function(combo,record,index){if(this.processId!=record.data.processId){this.entityTypeStore.loadData(record.data.entities,false);this.entityTypeCombo.clearValue();this.fireEvent("metaDataChanged",null);}},onEntityTypeSelected:function(combo,record,index){if(this.metaDataInfo.Entity==null||this.metaDataInfo.Entity.Name!=record.data.entityName){metaDataManager.getMetaDataInfoForEntity(record.data.processId,record.data.entityName,{callback:Function.createDelegate(this,this.onGettingMetaInfoCompleted),arg:this});}},onGettingMetaInfoCompleted:function(result,callContext){this.fireEvent("metaDataChanged",result);},validate:function(){return this.processCombo.validate()&&this.entityTypeCombo.validate();},dummy:{}});;
/*FieldsPanel.js*/
Tp.Ajax.FieldsPanel=Ext.extend(Ext.Panel,{title:"Columns",border:false,constructor:function(config){this.selectedFields=[];Tp.Ajax.FieldsPanel.superclass.constructor.call(this,config);},initComponent:function(){if(this.metaDataInfo.Entity==null){Ext.apply(this,{bodyStyle:"padding: 15px",html:"Not available, please select an entity"});}else{this.columnTabs=this.getSelectFieldTabs();Ext.apply(this,{layout:"accordion",items:this.columnTabs});this.on("activate",function(panel){panel.doLayout(true);});}
Tp.Ajax.FieldsPanel.superclass.initComponent.apply(this,arguments);},getSelectFieldTabs:function(){var tabs=[];var tab=this.getColumnsTabPanel("Main Entity ("+this.metaDataInfo.Entity.DisplayName+")",this.metaDataInfo.Entity,false,true);if(tab!=null){tabs.push(tab);}
for(var i=0;i<this.metaDataInfo.Entity.OneToOneFields.length;i++){var entity=this.metaDataInfo.Entity.OneToOneFields[i];if(!entity.IsAlias){var oneToOneTab=this.getColumnsTabPanel(entity.DisplayName,entity,true);if(oneToOneTab!=null){tabs.push(oneToOneTab);}}}
return tabs;},getColumnsTabPanel:function(tabName,entity,pathRequired,disablePrimaryID){var checkBoxes=[];var nativeFields=metaDataManager.getNativeFields(entity.DataType);for(var i=0;i<nativeFields.length;i++){var val=nativeFields[i];if(disablePrimaryID&&val.Name=="ID"){continue;}
var valueToSet=(pathRequired?entity.Name+":":"")+val.Id;var encodedValID=Ext.util.Format.htmlEncode(val.Id);var checkBox=new Ext.form.Checkbox({boxLabel:encodedValID,name:valueToSet});checkBox.checked=this.isFieldSelected(valueToSet);if(checkBox.checked){this.selectedFields.push(valueToSet);}
checkBoxes.push(checkBox);checkBox.on("check",Function.createDelegate(this,this.onSelectField));}
if(checkBoxes.length==0){return null;}
function resort(arr){var mid=parseInt(arr.length/2);if(arr.length%2!=0)
mid++;var arr1=arr.slice(0,mid);var arr2=arr.slice(mid);var result=[];for(var i=0;i<mid;i++){result.push(arr1[i]);if(arr2.length>i){result.push(arr2[i]);}}
return result;}
var tab=new Ext.Panel({title:tabName,autoScroll:true,bodyStyle:"padding: 15px",layout:"column",layoutConfig:{columns:2},defaults:{columnWidth:'0.5'},items:resort(checkBoxes)});this.checkBoxes=checkBoxes;return tab;},isFieldSelected:function(fieldName){for(var j=0;j<this.metaDataInfo.Content.Fields.length;j++){if(fieldName==this.metaDataInfo.Content.Fields[j].Name)
return true;}
return false;},onSelectField:function(checkBox,isChecked){if(isChecked){this.selectedFields.push(checkBox.name);}else{this.selectedFields.remove(checkBox.name);}},validate:function(){return this.selectedFields.length>0;},getSelectedFields:function(){return this.selectedFields;},dummy:{}});;
/*SummaryFieldsPanel.js*/
Tp.Ajax.SummaryFieldsPanel=Ext.extend(Ext.Panel,{title:"Summary Columns",border:false,bodyStyle:"padding: 15px",index:1,constructor:function(config){this.columnsStore=null;this.summaryFieldsArray=[];Tp.Ajax.SummaryFieldsPanel.superclass.constructor.call(this,config);},initComponent:function(){if(this.metaDataInfo.Entity==null){Ext.apply(this,{bodyStyle:"padding: 15px",html:"Not available, please select an entity"});}else{this.fieldsPanel=new Ext.Panel({border:false});this.addFieldButton=new Ext.Button({text:"Add Column"});this.addFieldButton.on("click",Function.createDelegate(this,this.onAddFiled));Ext.apply(this,{items:[new Ext.Panel({border:false,html:"Create summary column to include in your report. For example, show total time spent to all Bugs related to User Story<div class='secondaryInfo'>Bugs Time <span style='margin-left:80px'>Bugs</span> <span style='margin-left:129px'>Time Spent</span> <span style='margin-left:95px'>sum</span></div>"}),{bodyStyle:"padding: 5px",border:false},this.fieldsPanel,{bodyStyle:"padding: 5px",border:false},this.addFieldButton]});for(var i=0;i<this.metaDataInfo.Content.Fields.length;i++){var field=this.metaDataInfo.Content.Fields[i];if(field.IsCalculatable){var columnSelect=this.createFieldRow();var index=this.columnsStore.find("Name",field.CollectionName);if(index>=0){columnSelect.setCriteria(field.Criteria);columnSelect.setValue(field.CollectionName);columnSelect.filterButton.enable();var row=this.columnsStore.getAt(index);this.enableRequiredTextBox(columnSelect,field.Name);this.loadChildSelect(columnSelect.childSelect,["count"],"count");columnSelect.childSelect.childSelect.disable();var data=[];metaDataManager.fillArrayWithNativeDataForGroupOperations(data,metaDataManager.getNativeFields(row.data.DataType));if(field.GroupField==""){field.GroupField=null;}
this.loadChildSelect(columnSelect,data,field.GroupField);var indexChild=columnSelect.childStore.find("Name",field.GroupField);if(indexChild>=0){var rowChild=columnSelect.childStore.getAt(indexChild);this.loadChildSelect(columnSelect.childSelect,metaDataManager.getGroupOperationsAvailableForField(rowChild.data.Type),field.GroupOperation);}}}}
this.on("activate",function(panel){panel.doLayout(true);});}
Tp.Ajax.SummaryFieldsPanel.superclass.initComponent.apply(this,arguments);},onAddFiled:function(){var mainSelect=this.createFieldRow();},createFieldRow:function(){if(!this.columnsStore){this.columnsStore=metaDataManager.getStoreBagFields(this.metaDataInfo.Entity);}
var selectBag=new Ext.form.ComboBox({store:this.columnsStore,displayField:"DisplayName",valueField:"Name",typeAhead:true,width:160,mode:"local",triggerAction:"all",emptyText:"- Select Collection -",forceSelection:true,selectOnFocus:true,allowBlank:false,setCriteria:function(criteria){this.criteria=criteria;this.displayCriteria();},displayCriteria:function(){var s="";for(var n=0;n<this.criteria.length;n++){if(n>0){s+=" and ";}
if(this.criteria.length>1){s+="(";}
s+="<strong>"+this.criteria[n].Name+"</strong>"
+" "+this.criteria[n].Operator
+" "+"<strong>"+this.criteria[n].Value+"</strong>";if(this.criteria.length>1){s+=")";}}
this.filterLabel.setText(s,false);}});selectBag.childStore=metaDataManager.getEmptyStoreForFields();selectBag.criteria=[];var selectField=new Ext.form.ComboBox({store:selectBag.childStore,displayField:"DisplayName",valueField:"Name",typeAhead:true,width:160,mode:"local",triggerAction:"all",emptyText:"- Select Field -",forceSelection:true,selectOnFocus:true,allowBlank:true,disabled:true});selectBag.childSelect=selectField;selectField.childStore=metaDataManager.getStoreForOperators();selectBag.on("select",Function.createDelegate(this,this.onChangeBag));var selectOperation=new Ext.form.ComboBox({store:selectField.childStore,displayField:"Name",valueField:"Name",typeAhead:true,mode:"local",width:110,triggerAction:"all",emptyText:"- Function -",selectOnFocus:true,forceSelection:true,disabled:true,allowBlank:false});selectField.childSelect=selectOperation;selectField.on("select",Function.createDelegate(this,this.onChangeField));selectBag.textField=new Tp.controls.TextField({allowBlank:false,emptyText:"- type field name "+(this.index++),minLength:1,maxLength:128,vtype:"summaryField"});selectBag.textField.summaryFieldsArray=this.summaryFieldsArray;var filterLabel=new Tp.controls.Label({html:"<em>No filters</em>"});selectBag.filterLabel=filterLabel;var filterButton=new Ext.Button({text:"Filters...",disabled:true});selectBag.filterButton=filterButton;var removeColumnButton=new Ext.Button({text:"Remove"});var summaryFieldRowPanel=new Ext.Panel({border:false,items:[{layout:"table",border:false,bodyStyle:"padding: 2px",layoutConfig:{columns:7},items:[selectBag.textField,selectBag,selectField,selectOperation,filterLabel,filterButton,removeColumnButton]}]});this.fieldsPanel.add(summaryFieldRowPanel);removeColumnButton.summaryFieldRow=summaryFieldRowPanel;removeColumnButton.on("click",Function.createDelegate(this,this.onRemoveColumn));filterButton.on("click",Function.createDelegate(this,this.onFiltersClick));filterButton.selectBag=selectBag;this.fieldsPanel.doLayout();summaryFieldRowPanel.selectBag=selectBag;this.summaryFieldsArray.push(selectBag);return selectBag;},validate:function(){var isValid=true;for(var i=0;i<this.summaryFieldsArray.length;i++){var selectBag=this.summaryFieldsArray[i];var selectedValuesValid=selectBag.validate()&&selectBag.childSelect.childSelect.validate();isValid=isValid&&selectedValuesValid;if(selectedValuesValid){isValid=isValid&&selectBag.textField.validate();}}
return isValid;},getSummaryFields:function(){var fields=[];for(var i=0;i<this.summaryFieldsArray.length;i++){var selectBag=this.summaryFieldsArray[i];var field={};field.Name=selectBag.textField.getValue();field.CollectionName=selectBag.getValue();field.IsCalculatable=true;field.GroupField=selectBag.childSelect.getValue();field.GroupOperation=selectBag.childSelect.childSelect.getValue();field.Criteria=selectBag.criteria;fields.push(field);}
return fields;},onFiltersClick:function(button){var bagSelect=button.selectBag;var index=this.columnsStore.find("Name",bagSelect.value);if(index<0){return;}
var row=this.columnsStore.getAt(index);var entity=metaDataManager.entities[row.data.DataType];this.filtersPanel=new Tp.Ajax.FiltersPanel({metaDataInfo:this.metaDataInfo,entity:entity,criteria:bagSelect.criteria});this.filtersPanel.bagSelect=bagSelect;this.win=new Ext.Window({title:"Edit Filters",closable:true,width:800,height:400,shadow:false,closeAction:"hide",maximizable:true,modal:true,plain:true,layout:"fit",items:[this.filtersPanel],buttons:[{text:"Apply",handler:Function.createDelegate(this,this.onApplySettings)},{text:"Close",handler:Function.createDelegate(this,function(){this.win.hide();})}]});this.win.show();},onApplySettings:function(){if(this.filtersPanel.validate()){this.filtersPanel.bagSelect.setCriteria(this.filtersPanel.getCriteria());this.win.hide();}},onChangeBag:function(bagsSelect,record){var data=[];metaDataManager.fillArrayWithNativeDataForGroupOperations(data,metaDataManager.getNativeFields(record.data.DataType));this.loadChildSelect(bagsSelect,data);this.loadChildSelect(bagsSelect.childSelect,["count"],"count");bagsSelect.childSelect.childSelect.disable();bagsSelect.filterButton.enable();bagsSelect.setCriteria([]);},onRemoveColumn:function(button){this.summaryFieldsArray.remove(button.summaryFieldRow.selectBag);this.fieldsPanel.remove(button.summaryFieldRow);},loadChildSelect:function(selectBox,data,value){selectBox.childStore.loadData(data);selectBox.childSelect.setValue("");selectBox.childSelect.enable();if(value){selectBox.childSelect.setValue(value);}},enableRequiredTextBox:function(fieldsSelect,value){fieldsSelect.textField.setValue(value);},onChangeField:function(fieldsSelect,record){this.loadChildSelect(fieldsSelect,metaDataManager.getGroupOperationsAvailableForField(record.data.Type));}});Ext.apply(Ext.form.VTypes,{summaryField:function(val,field){for(var i=0;i<field.summaryFieldsArray.length;i++){if(field.summaryFieldsArray[i].textField==field)
continue;if(field.summaryFieldsArray[i].textField.getValue().trim()==val.trim())
return false;}
return true;},summaryFieldText:"The field name should be unqiue"});;
/*FiltersPanel.js*/
Tp.Ajax.FiltersPanel=Ext.extend(Ext.Panel,{title:"Filters",border:false,bodyStyle:"padding: 15px",constructor:function(config){this.filterCount=0;this.entity=null;this.criteria=null;this.filterFieldsStore=null;this.selectFieldArray=[];this.innerPanel=false;Tp.Ajax.FiltersPanel.superclass.constructor.call(this,config);},initComponent:function(){if(this.criteria==null){if(this.metaDataInfo.Content!=null){this.criteria=this.metaDataInfo.Content.Criteria;}else{this.criteria=[];}}
if(this.entity==null){Ext.apply(this,{bodyStyle:"padding: 15px",html:"Not available, please select an entity"});}else{var addCriteriaButton=new Ext.Button({text:"Add Criteria"});addCriteriaButton.on("click",Function.createDelegate(this,this.onAddingCriteria));var criteriaPanel=new Ext.Panel({border:false});this.criteriaPanel=criteriaPanel;Ext.apply(this,{items:[new Ext.Panel({border:false,html:"You may <b>restrict the report results</b> and set filters for top entity.<br/>For example, to show closed and invalid Bugs you need to specify<div class='secondaryInfo'>Entity State : Name <span style='margin-left:98px'>equal to</span> <span style='margin-left:115px'>Closed,Invalid</span></div>"}),{bodyStyle:"padding: 5px",border:false},criteriaPanel,{bodyStyle:"padding: 5px",border:false},addCriteriaButton]});for(var i=0;i<this.criteria.length;i++){var fieldSelect=this.createCriteriaRow();var criterion=this.criteria[i];var index=this.filterFieldsStore.find("Name",criterion.Name);if(index>=0){fieldSelect.setValue(criterion.Name);var row=this.filterFieldsStore.getAt(index);this.loadOperators(fieldSelect,metaDataManager.getOperatorsAvailableForField(row.data.Type),criterion.Operator);this.enableRequiredTextBox(fieldSelect,row.data.Type,criterion.Value);}}
this.on("activate",function(panel){panel.doLayout(true);});}
Tp.Ajax.FiltersPanel.superclass.initComponent.apply(this,arguments);},validate:function(){var isValid=true;for(var i=0;i<this.selectFieldArray.length;i++){var selectField=this.selectFieldArray[i];var selectedValuesValid=selectField.validate()&&selectField.operatorsSelect.validate();isValid=isValid&&selectedValuesValid;if(selectedValuesValid){isValid=this.validateTextField(selectField.valueTextField);}}
return isValid;},validateTextField:function(textField){if(!textField.isVisible()){return true;}
if(textField.disabled){return true;}
if(textField.validate()){return true;}
return false;},getCriteria:function(){var criteria=[];for(var i=0;i<this.selectFieldArray.length;i++){var criterion={};criterion.Name=this.selectFieldArray[i].getValue();criterion.Operator=this.selectFieldArray[i].operatorsSelect.getValue();criterion.Value=this.selectFieldArray[i].valueTextField.getValue();if(criterion.Value.dateFormat){if(!criterion.Value.Formula){criterion.Value=criterion.Value.format(extJsDateFormat);}else{criterion.Value=criterion.Value.Formula.toLowerCase();}}
criteria.push(criterion);}
return criteria;},onAddingCriteria:function(){var mainSelect=this.createCriteriaRow();this.filterCount++;},createCriteriaRow:function(){if(!this.filterFieldsStore){this.filterFieldsStore=metaDataManager.getStoreFilterFields(this.entity);}
var selectField=new Ext.form.ComboBox({store:this.filterFieldsStore,displayField:"DisplayName",valueField:"Name",typeAhead:true,width:200,mode:"local",triggerAction:"all",emptyText:"- Select Field -",forceSelection:true,selectOnFocus:true,allowBlank:false});selectField.id="_filterFieldComboBox-"+this.filterCount+"-"+selectField.id;this.selectFieldArray.push(selectField);selectField.operatorsStore=metaDataManager.getStoreForOperators();var selectOperator=new Ext.form.ComboBox({store:selectField.operatorsStore,displayField:"Name",valueField:"Name",typeAhead:true,mode:"local",width:160,triggerAction:"all",emptyText:"- Select Operator -",selectOnFocus:true,forceSelection:true,disabled:true,allowBlank:false});selectOperator.id="_filterOperatorComboBox-"+this.filterCount+"-"+selectOperator.id;selectField.operatorsSelect=selectOperator;selectField.on("select",Function.createDelegate(this,this.onChangeField));selectField.textField=new Tp.controls.TextField({allowBlank:false,disabled:true});selectField.textField.id="_filterOperatorValueComboBox-"+this.filterCount+"-"+selectField.textField.id;selectField.dateField=new Ext.tp.form.TpDateField({allowBlank:false,format:extJsDateFormat,altFormats:'Y-m-d'});selectField.dateField.id="_filterOperatorValueComboBox-"+this.filterCount+"-"+selectField.dateField.id;selectField.dateField.hide();selectField.intField=new Ext.form.NumberField({allowDecimals:false,allowBlank:false,allowNegative:false});selectField.intField.id="_filterOperatorValueComboBox-"+this.filterCount+"-"+selectField.intField.id;selectField.intField.hide();selectField.floatField=new Ext.form.NumberField({allowDecimals:true,allowBlank:false,decimalSeparator:NumberOperator.get_decimalSeparator(),allowNegative:false});selectField.floatField.id="_filterOperatorValueComboBox-"+this.filterCount+"-"+selectField.floatField.id;selectField.floatField.hide();selectField.valueTextField=selectField.textField;var removeCriteriaButton=new Ext.Button({text:"Remove"});var criteriaRow=new Ext.Panel({border:false,items:[{layout:"table",border:false,bodyStyle:"padding: 2px",layoutConfig:{columns:4},items:[selectField,selectOperator,new Ext.Panel({border:false,bodyStyle:"padding: 0px",items:[selectField.textField,selectField.dateField,selectField.intField,selectField.floatField]}),removeCriteriaButton]}]});this.criteriaPanel.add(criteriaRow);removeCriteriaButton.criteriaRow=criteriaRow;removeCriteriaButton.criteriaRow.selectField=selectField;removeCriteriaButton.on("click",Function.createDelegate(this,this.onRemoveCriteria));this.criteriaPanel.doLayout();return selectField;},onRemoveCriteria:function(button){this.selectFieldArray.remove(button.criteriaRow.selectField);this.criteriaPanel.remove(button.criteriaRow);},loadOperators:function(fieldsSelect,operators,value){fieldsSelect.operatorsStore.loadData(operators);fieldsSelect.operatorsSelect.reset();fieldsSelect.operatorsSelect.enable();fieldsSelect.operatorsSelect.setValue("");fieldsSelect.operatorsSelect.clearInvalid();if(value)
fieldsSelect.operatorsSelect.setValue(value);},enableRequiredTextBox:function(fieldsSelect,dataType,value){fieldsSelect.textField.enable();fieldsSelect.textField.hide();fieldsSelect.dateField.hide();fieldsSelect.intField.hide();fieldsSelect.floatField.hide();if(dataType=="int"){fieldsSelect.valueTextField=fieldsSelect.intField;this.showField(fieldsSelect.intField,value);return;}
if(dataType=="float"){fieldsSelect.valueTextField=fieldsSelect.floatField;this.showField(fieldsSelect.floatField,value);return;}
if(dataType=="date"){fieldsSelect.valueTextField=fieldsSelect.dateField;this.showField(fieldsSelect.dateField,value);return;}
fieldsSelect.valueTextField=fieldsSelect.textField;this.showField(fieldsSelect.textField,value);},showField:function(field,value){field.setValue(value);field.show();field.focus();},onChangeField:function(fieldsSelect,record){this.loadOperators(fieldsSelect,metaDataManager.getOperatorsAvailableForField(record.data.Type));this.enableRequiredTextBox(fieldsSelect,record.data.Type,null);},dummy:{}});Ext.ns("Ext.tp.form");Ext.tp.form.TpDateField=Ext.extend(Ext.form.DateField,{parseDate:function(value){if(this.isFormula(value))
return value;return Ext.tp.form.TpDateField.superclass.parseDate.call(this,value);},isFormula:function(value){if(!value)
return false;if(typeof(value.match)=="undefined")
return false;var re=/^\s*(today|yesterday)\s*([+-]\s*\d+)?\s*$/i;return value.match(re);},getValue:function(){var baseValue=Ext.form.DateField.superclass.getValue.call(this);if(this.isFormula(baseValue)){var date=new Date();date.Formula=baseValue;return date;}
return Ext.tp.form.TpDateField.superclass.getValue.call(this);},validate:function(value){var baseValue=Ext.form.DateField.superclass.getValue.call(this);if(this.isFormula(baseValue)){this.clearInvalid();return true;}
return Ext.tp.form.TpDateField.superclass.validate.call(this,value);}});;
/*InnerListsPanel.js*/
Tp.Ajax.InnerListsPanel=Ext.extend(Ext.Panel,{title:"Inner Lists",bodyStyle:"padding: 15px",border:false,constructor:function(config){this.dropDowns=[];this.pageSize=0;Tp.Ajax.InnerListsPanel.superclass.constructor.call(this,config);},initComponent:function(){if(this.metaDataInfo.Entity==null){Ext.apply(this,{bodyStyle:"padding: 15px",html:"Not available, please select an entity"});}else{var addRowButton=new Ext.Button({text:"Add Inner List"});addRowButton.on("click",Function.createDelegate(this,this.onAddingInnerList));this.rowsPanel=new Ext.Panel({border:false});Ext.apply(this,{items:[{border:false,layout:"fit",html:"Add inner lists to your report. For example, User Stories report may include list of Bugs and Tasks for each User Story.<br/>"},{bodyStyle:"padding: 5px",border:false},this.rowsPanel,{bodyStyle:"padding: 5px",border:false},addRowButton]});for(var i=0;i<this.metaDataInfo.Content.InnerReports.length;i++){var innerReport=this.metaDataInfo.Content.InnerReports[i];var selectBag=this.createRow();var index=this.columnsStore.find("DataType",innerReport.Type);if(index>=0){var row=this.columnsStore.getAt(index);selectBag.setValue(row.data.Name);this.loadChildSelect(selectBag,metaDataManager.getAvailableInnerBags(this.metaDataInfo.Entity,row.data.Name),innerReport.ID);}}
this.on("activate",function(panel){panel.doLayout(true);});}
Tp.Ajax.InnerListsPanel.superclass.initComponent.apply(this,arguments);},onAddingInnerList:function(){this.createRow();},createRow:function(){if(!this.columnsStore)
this.columnsStore=metaDataManager.getStoreBagFields(this.metaDataInfo.Entity);var selectBag=new Ext.form.ComboBox({store:this.columnsStore,displayField:"DisplayName",valueField:"Name",typeAhead:true,width:180,mode:"local",triggerAction:"all",emptyText:"- Select Collection -",forceSelection:true,selectOnFocus:true,allowBlank:false});selectBag.childStore=metaDataManager.getStoreForInnerBags();var selectReport=new Ext.form.ComboBox({store:selectBag.childStore,displayField:"Name",valueField:"ID",typeAhead:true,width:180,mode:"local",triggerAction:"all",emptyText:"- Select Report -",forceSelection:true,selectOnFocus:true,allowBlank:false,disabled:true});selectBag.childSelect=selectReport;this.dropDowns.push(selectBag);var removeButton=new Ext.Button({text:"Remove"});var innerListRow=new Ext.Panel({border:false,items:[{layout:"table",border:false,bodyStyle:"padding: 2px",layoutConfig:{columns:6},items:[selectBag,selectReport,removeButton]}]});innerListRow.dropDown=selectBag;this.rowsPanel.add(innerListRow);removeButton.innerListRow=innerListRow;removeButton.on("click",Function.createDelegate(this,this.onRemoveRow));selectBag.on("select",Function.createDelegate(this,this.onSelectBag));this.rowsPanel.doLayout();return selectBag;},onSelectBag:function(bagsSelect,record){this.loadChildSelect(bagsSelect,metaDataManager.getAvailableInnerBags(this.metaDataInfo.Entity,record.data.Name));},loadChildSelect:function(selectBox,data,value){selectBox.childStore.loadData(data);selectBox.childSelect.setValue("");selectBox.childSelect.enable();if(value){selectBox.childSelect.setValue(value);}},getInnerLists:function(){var lists=[];for(var i=0;i<this.dropDowns.length;i++){var reportSelect=this.dropDowns[i].childSelect;var index=this.dropDowns[i].childStore.find("ID",reportSelect.getValue());if(index>=0){var row=this.dropDowns[i].childStore.getAt(index);lists.push({Name:row.data.Name,Type:row.data.Type,ID:row.data.ID});}}
return lists;},onRemoveRow:function(button){this.rowsPanel.remove(button.innerListRow);this.dropDowns.remove(button.innerListRow.dropDown);},validate:function(){var isValid=true;for(var i=0;i<this.dropDowns.length;i++){var selectBag=this.dropDowns[i];var selectedValuesValid=selectBag.validate()&&selectBag.childSelect.validate();isValid=isValid&&selectedValuesValid;}
return isValid;},dummy:{}});;
/*SettingsPanel.js*/
Tp.Ajax.SettingsPanel=Ext.extend(Ext.Panel,{title:"Settings",bodyStyle:"padding: 15px",border:false,gridConfig:null,constructor:function(config,gridConfig){Tp.Ajax.SettingsPanel.superclass.constructor.call(this,config);this.gridConfig=gridConfig;},initComponent:function(){var name="";var limit=25;var isPublic=false;if(this.metaDataInfo.Content!=null){name=this.metaDataInfo.Content.Name;limit=this.metaDataInfo.Content.LimitOfRecords;isPublic=this.metaDataInfo.Content.IsPublic;}
this.reportNameBox=new Tp.controls.TextField({allowBlank:false,minLength:1,maxLength:255,width:200,value:name,blankText:"Specify a valid report name",minLengthText:"The minimum length for report name is {0}",maxLengthText:"The maximum length for report name is {0}"});this.pageSizeBox=new Ext.form.NumberField({allowBlank:false,allowNegative:false,allowDecimals:false,width:30,minValue:5,maxValue:500,value:limit,blankText:"Specify a valid page size",minText:"The minimum value for page size is {0}",maxText:"The maximum value for page size is {0}"});this.publicCheckBox=new Tp.controls.CheckBox({boxLabel:"Show report to <b>all users</b>",checked:isPublic,disabled:!this.gridConfig.isOwner});Ext.apply(this,{items:[{border:false,layout:"fit",html:"<b>Report name</b>"},this.reportNameBox,{border:false,layout:"fit",html:"<br /><b>Page size</b> (number from 5 to 500)"},this.pageSizeBox,{border:false,layout:"fit",html:"<br />"},this.publicCheckBox]});this.on("activate",function(panel){panel.doLayout(true);panel.reportNameBox.focus();});Tp.Ajax.SettingsPanel.superclass.initComponent.apply(this,arguments);},validate:function(saving){if(saving&&!this.reportNameBox.validate()){return"Specify a valid report name";}
if(!this.pageSizeBox.validate()){return"Specify a valid page size";}
return true;},getReportName:function(){return this.reportNameBox.getValue();},getPageSize:function(){return this.pageSizeBox.getValue();},getIsPublic:function(){return this.publicCheckBox.getValue();},dummy:{}});;
/*CustomReportSaveAsPanel.js*/
Ext.ns('Tp.CustomReports.SaveAs');Tp.CustomReports.CustomReportSaveAsPanel=Ext.extend(Ext.form.FormPanel,{bodyStyle:"padding: 10px",border:false,txtReportName:null,constructor:function(){Tp.CustomReports.CustomReportSaveAsPanel.superclass.constructor.call(this,this._createConfig());},_createConfig:function(){this.txtReportName=new Ext.form.TextField({id:'txtReportName',name:'name',fieldLabel:"New Report Name",msgTarget:"under",allowBlank:false,blankText:"Specify a valid report name",labelSeparator:"",validationEvent:false,minLength:1,maxLength:255,minLengthText:"The minimum length for report name is {0}",maxLengthText:"The maximum length for report name is {0}",width:308});return{labelAlign:'top',items:[this.txtReportName]};},getNewReportName:function()
{return this.txtReportName.getValue();}});;
/*CustomReportSaveAsWindow.js*/
Ext.ns('Tp.CustomReports.SaveAs');Tp.CustomReports.CustomReportSaveAsWindow=Ext.extend(Ext.Window,{panel:null,constructor:function(config){Ext.apply(config,this._createConfig());Tp.CustomReports.CustomReportSaveAsWindow.superclass.constructor.call(this,config);this.addEvents("save");},_createConfig:function(){this.panel=new Tp.CustomReports.CustomReportSaveAsPanel({});return{closable:false,buttonAlign:'left',items:this.panel,modal:true,width:340,resizable:false,border:false,title:"Save As...",buttons:[{text:'Save',name:'saveButton',scope:this,handler:this.onSaveClick},{text:'Cancel',name:'cancelButton',scope:this,handler:this.onCancelClick}]};},onSaveClick:function(){this.fireEvent('save',this.panel.getNewReportName());},onCancelClick:function(){this.hide();this.panel.getForm().reset();},show:function()
{Tp.CustomReports.CustomReportSaveAsWindow.superclass.show.call(this);setTimeout(function(){var txtName=Ext.fly('txtReportName');if(txtName)txtName.focus();},1000);},validateFields:function()
{var result=this.panel.txtReportName.validate();this.syncShadow();return result;},markReportNameInvalid:function(message)
{this.panel.txtReportName.markInvalid(message);this.syncShadow();}});;
/*GridServiceProxy.js*/
Ext.namespace('Ext.Tp');Ext.Tp.GridServiceProxy=function(connection){var proxyConnection=null;if(connection){proxyConnection=connection;}else{proxyConnection={webServiceProxy:Tp.Web.Extensions.ExtJs.Web.GridService.GridService,webServiceProxyMethod:Tp.Web.Extensions.ExtJs.Web.GridService.GetData};}
Ext.Tp.GridServiceProxy.superclass.constructor.call(this);Ext.apply(this,proxyConnection);this.gridDataRequest=null;};Ext.extend(Ext.Tp.GridServiceProxy,Ext.data.DataProxy,{load:function(params,reader,callback,scope,arg){var userContext={params:params||{},request:{callback:callback,scope:scope,arg:arg},reader:reader,callback:this.loadResponse,scope:this};if(arg&&arg.Cnt){if(!this.gridDataRequest.Cnt)
this.gridDataRequest.Cnt={};Ext.apply(this.gridDataRequest.Cnt,arg.Cnt);}
var proxyWrapper=this;var webServiceCallback=function(response,context,methodName){proxyWrapper.loadResponse(response,userContext,methodName);};if(!params.groupBy&&scope.groupField){params.groupBy=scope.groupField;}
if(params.groupBy){this.gridDataRequest.GroupBy=params.groupBy;}else{this.gridDataRequest.GroupBy=null;}
if(params.sort){this.gridDataRequest.OrderBy=params.sort;}else{this.gridDataRequest.OrderBy=null;}
if(params.dir){this.gridDataRequest.OrderDir=params.dir=="ASC";}
if(params.start){this.gridDataRequest.Start=params.start;}else{this.gridDataRequest.Start=0;}
if(params.limit){this.gridDataRequest.Limit=params.limit;}
var serviceParams=[this.gridDataRequest];serviceParams.push(webServiceCallback);serviceParams.push(this.handleErrorResponse);this.webServiceProxyMethod.apply(this.webServiceProxy,serviceParams);},handleErrorResponse:function(response,userContext,methodName){alert("Error while calling method: "+methodName+"\n"+response.get_message());},loadResponse:function(response,userContext,methodName){var result=userContext.reader.readRecords(response);userContext.request.arg.summary=response.Summary;userContext.request.arg.nextPageFirstEntityId=response.NextPageFirstEntityId;userContext.request.arg.groupSummaries=Tp.data.RecordHelper.getInstance().normalizeGroupSummaryDates(response.GroupSummaries);userContext.request.callback.call(userContext.request.scope||window,result,userContext.request.arg,true);}});;
/*MoreActions.js*/
var appendReturnUrlForMoreActionLinks=false;function ShowMoreActionsPopup(lnkControl,extenderID,argument)
{var extender=$find(extenderID);extender.showDialog(lnkControl,argument);}
Type.registerNamespace('Tp.Atlas.Extenders.MoreActions');Tp.Atlas.Extenders.MoreActions.MoreActionsBehavior=function()
{Tp.Atlas.Extenders.MoreActions.MoreActionsBehavior.initializeBase(this);this._links=[];this._targetControl=null;}
Tp.Atlas.Extenders.MoreActions.MoreActionsBehavior.prototype={initialize:function(){},showDialog:function(lnkControl,argument){for(var i=0;i<this._links.length;i++){var link=this._links[i];var url=link.get_Url().replace("%7B0%7D",argument).replace("%7b0%7d",argument).replace("{0}",argument);if(appendReturnUrlForMoreActionLinks){var returnUrl=document.location.href.replace(Application.baseUrl,"~");var appendHistory=returnUrl.indexOf("?")>0?"#UPDATE_HISTORY=":"?UPDATE_HISTORY=";returnUrl=returnUrl.replace("#",appendHistory);if(url.indexOf("?")<0)
url+="?";url+="&ReturnUrl="+returnUrl;}
link.set_Url(url);}
this.showPopup(lnkControl,this._targetControl);},showPopup:function(link,panel){var extPanel=Ext.get(panel);extPanel.alignTo(link,"?").show();extPanel.alignTo(link,"?").show();Ext.get(document).on({'keyup':function(e){if(e.getKey()==e.ESC){extPanel.hide();}},single:true});var documentClickHandler=function(e,source){if(!(source==link||source==panel||extPanel.query('[id='+source.id+']').length>0)){Ext.get(document).un('click',documentClickHandler);extPanel.hide();}}
Ext.get(document).on({'click':documentClickHandler,single:false});},addLink:function(link){this._links.push(link);},dispose:function(){Tp.Atlas.Extenders.MoreActions.MoreActionsBehavior.callBaseMethod(this,'dispose');},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;}}
Tp.Atlas.Extenders.MoreActions.MoreActionsBehavior.registerClass('Tp.Atlas.Extenders.MoreActions.MoreActionsBehavior',Sys.Component);Tp.Atlas.Extenders.MoreActions.LinkBehavior=function()
{Tp.Atlas.Extenders.MoreActions.LinkBehavior.initializeBase(this);this._moreActionsExtenderID=null;this._url=null;this._targetControl=null;}
Tp.Atlas.Extenders.MoreActions.LinkBehavior.prototype={initialize:function()
{if(this._targetControl)
{this._url=this._targetControl.href;var moreActionsExtender=$find(this._moreActionsExtenderID);moreActionsExtender.addLink(this);}},get_Url:function()
{return this._url;},set_Url:function(url)
{this._targetControl.href=url;},get_TargetControl:function()
{return this._targetControl;},set_TargetControl:function(value)
{this._targetControl=value;},get_MoreActionsExtenderID:function()
{return this._moreActionsExtenderID;},set_MoreActionsExtenderID:function(value)
{this._moreActionsExtenderID=value;},dispose:function()
{this._targetControl=null;Tp.Atlas.Extenders.MoreActions.LinkBehavior.callBaseMethod(this,'dispose');}}
Tp.Atlas.Extenders.MoreActions.LinkBehavior.registerClass('Tp.Atlas.Extenders.MoreActions.LinkBehavior',Sys.Component);;
/*ChangeState.js*/
var states=[];var loadedProcesses=[];function RegisterStatesDialogHandlers(){var els=Ext.select('a.show-states-dialog-link');for(var i=0;i<els.getCount();i++){var link=els.item(i);var assignableId=link.getAttribute('assignableid');var processId=link.getAttribute('processid');var nextStates=link.getAttribute('nextstates');var linkId=link.getAttribute('id');var context={linkElement:Ext.get(linkId),stateIds:nextStates,assignabledID:assignableId,processID:processId};link.on('click',function(context){showStatesDialog(context);return false;}.createCallback(context),link);}};function isStatesLoadedForProcess(processID){return Array.indexOf(loadedProcesses,Number(processID))!=-1;}
function addProcessToLoadedList(processID){loadedProcesses.push(Number(processID));}
function addStateToStatesList(state){states.push(state);if(!isStatesLoadedForProcess(state.get_processId())){addProcessToLoadedList(state.get_processId());}}
function showStatesDialog(context){var stateSwitcher=$find('stateSwitcher');if(!stateSwitcher)
stateSwitcher=$create(Tp.Atlas.Extenders.Components.StateSwitcher,{'id':'stateSwitcher'},null,null);stateSwitcher.showStatesDialog(context);}
Type.registerNamespace("Tp.Atlas.Extenders.Components");Tp.Atlas.Extenders.Components.State=function(){Tp.Atlas.Extenders.Components.State.initializeBase(this);this._name='';this._stateId=0;this._processId=0;this._requiredComment=false;this._tag=null;}
Tp.Atlas.Extenders.Components.State.prototype={initialize:function(){Tp.Atlas.Extenders.Components.State.callBaseMethod(this,'initialize');addStateToStatesList(this);},get_name:function(){return this._name;},set_name:function(value){this._name=value;},get_processId:function(){return this._processId;},set_processId:function(value){this._processId=value;},get_requiredComment:function(){return this._requiredComment;},set_requiredComment:function(value){this._requiredComment=value;},get_stateId:function(){return this._stateId;},set_stateId:function(value){this._stateId=value;},get_tag:function(){return this._tag;},set_tag:function(value){this._tag=value;},dispose:function(){Tp.Atlas.Extenders.Components.State.callBaseMethod(this,'dispose');}}
Tp.Atlas.Extenders.Components.State.registerClass('Tp.Atlas.Extenders.Components.State',Sys.Component);Tp.Atlas.Extenders.Components.StateSwitcher=function(){Tp.Atlas.Extenders.Components.StateSwitcher.initializeBase(this);this._statesDialog=null;this._dialogBody=null;this._lnkToBeProcessed=null;this._entityId=0;this._commentDialog=null;this._postBackArguments=null;}
Tp.Atlas.Extenders.Components.StateSwitcher.prototype={initialize:function(){Tp.Atlas.Extenders.Components.StateSwitcher.callBaseMethod(this,'initialize');},loadStatesForProcess:function(context){WebMethods.GetEntityStatesForProcess(context.processID,Function.createDelegate(this,this._onLoadStatesComplete),null,context);},_onLoadStatesComplete:function(result,context,methodName){for(var i=0;i<result.length;i++){$create(Tp.Atlas.Extenders.Components.State,{"id":result[i].id,"name":result[i].name,"processId":result[i].processId,"requiredComment":result[i].requiredComment,"stateId":result[i].stateId},null,null);}
this._doShowStatesDialog(context);},showStatesDialog:function(context){if(!this.statesDialogInitialized())
this.initStatesDialog();if(!isStatesLoadedForProcess(context.processID)){this.loadStatesForProcess(context);return;}
this._doShowStatesDialog(context);},_showState:function(state){if(state.get_tag()==null)
{this._initStateHtml(state);}
state.get_tag().style.display="";},_hideState:function(state){if(state.get_tag()!=null)
{state.get_tag().style.display="none";}},_doShowStatesDialog:function(context){for(var i=0;i<states.length;i++){var stateId=","+states[i].get_stateId()+",";var isVisible=context.stateIds.indexOf(stateId)>=0;isVisible?this._showState(states[i]):this._hideState(states[i]);}
context.linkElement.assignableId=context.assignabledID;this._lnkToBeProcessed=context.linkElement;Tp.Atlas.Extenders.HoverBehavior.show(context.linkElement,this._statesDialog);},closeStatesDialog:function(){if(this._statesDialog)
Ext.get(this._statesDialog).hide();},statesDialogInitialized:function(){return this._statesDialog!=null;},initStatesDialog:function(){var div=document.createElement("div");div.className="morePanel";div.style.padding="4px";div.style.zIndex="1000000";var table=document.createElement("table");table.id="tableStates";table.cellPadding=0;table.cellSpacing=0;this._dialogBody=document.createElement("tbody");document.body.appendChild(div);div.appendChild(table);table.appendChild(this._dialogBody);this._statesDialog=div;},_initStateHtml:function(newState){var row=document.createElement("tr");var cell=document.createElement("td");var link=document.createElement("a");link.stateId=newState.get_stateId();link.processId=newState.get_processId();link.requiredComment=newState.get_requiredComment();link.innerHTML=Ext.util.Format.htmlEncode(newState.get_name());Ext.get(link).on({'click':this.onStateChange,scope:this});link.className="change-state";row.style.display="none";this._dialogBody.appendChild(row);row.appendChild(cell);cell.appendChild(link);newState.set_tag(row);},onStateChange:function(ev){if(this._lnkToBeProcessed==null)
return;this.closeStatesDialog();this._postBackArguments={EntityStateID:NumberOperator.createNumber(ev.target.stateId),GeneralID:NumberOperator.createNumber(this._lnkToBeProcessed.assignableId)};if(ev.target.requiredComment){this._postBackArguments.Comment=this._getComment();this._showCommentDialog();}
else{this.doPostBack();}
return false;},_showCommentDialog:function(){if(!this._commentDialog)
this._buildCommentDialog();this._commentDialog.show();this.setCommentFocus();},_closeCommentDialog:function(){if(this._commentDialog)
this._commentDialog.hide();},clearCommentDialog:function(){if(this._commentDialog){this._commentDialog.items.get('commentText').setValue('');this._commentDialog.buttons[0].setDisabled(true);}},_getComment:function(){return this._commentDialog?this._commentDialog.items.get('commentText').getValue():'';},setCommentFocus:function(){if(this._commentDialog)
this._commentDialog.items.get('commentText').focus(false,100);},_buildCommentDialog:function(){this._commentDialog=new Ext.Window({title:'Comment is required to switch the state',layout:'fit',width:400,height:200,closeAction:'hide',plain:true,modal:true,items:[{xtype:'textarea',id:'commentText',height:200,value:'',enableKeyEvents:true,listeners:{'keypress':{fn:this.onCommentChanged,scope:this,delay:100}},afterRender:function(el){Ext.form.TextArea.superclass.afterRender.call(this);if(typeof el.dom.onpaste!='undefined')
el.dom.onpaste=this.fireEvent.createDelegate(this,['keypress']);}}],buttons:[{text:'Submit',disabled:true,scope:this,handler:function(){this.doPostBackWithComment();}},{text:'Close',scope:this,handler:function(){this._closeCommentDialog();}}]});},onCommentChanged:function(txtField,e){this._commentDialog.buttons[0].setDisabled(this._getComment()=='');},doPostBackWithComment:function(){this._postBackArguments.Comment=this._getComment();if(this._postBackArguments.Comment==null||this._postBackArguments.Comment=='')
return;this.clearCommentDialog();this._closeCommentDialog();this.doPostBack();},doPostBack:function(){var serializer=Sys.Serialization.JavaScriptSerializer;__doPostBack(StatesContainerID,serializer.serialize(this._postBackArguments));},dispose:function(){Tp.Atlas.Extenders.Components.StateSwitcher.callBaseMethod(this,'dispose');}}
Tp.Atlas.Extenders.Components.StateSwitcher.registerClass('Tp.Atlas.Extenders.Components.StateSwitcher',Sys.Component);;
/*GeneralLookupBehavior.js*/
function CloseFindPopup(findPopupID)
{var findPopup=$find(findPopupID);findPopup.hideFindPopup();}
function GetGeneralLookupItemNameByRow(row){if(row==null)
{return"";}
var extRow=Ext.get(row)
if(extRow==null)
{return"";}
var spans=extRow.select("span.general-lookup-item-name");if(spans.elements.length>0){return spans.elements[0].innerText;}
return"";}
function SelectGeneralByRow(generalID,row,findPopupID)
{var itemName=GetGeneralLookupItemNameByRow(row);var findPopup=$find(findPopupID);findPopup.selectGeneral(generalID,removeRudementSpaces(itemName));}
function removeRudementSpaces(str)
{var re=new RegExp("\\s+","g");str=str.replace(re," ");re=new RegExp("^\\s+","g");str=str.replace(re,"");re=new RegExp("\\s+$","g");str=str.replace(re,"");return str;}
Type.registerNamespace('Tp.Atlas.Extenders.Lookup');Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior=function(){Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior.initializeBase(this);this._targetControl=null;this._completionListElement=null;this._generalElement=null;this._findLink=null;this._clearLink=null;this._findPopupControl=null;this._initialText=null;this._minimumPrefixLength=2;this._completionInterval=1000;this._completionSetCount=10;this._entityTypeIDs="";this._projectID=0;this._projectIDs='';this._currentProjectID=0;this._excludeEntityID=null;this._textColor='windowtext';this._textBackground='window';this._task=null;this._cache=null;this._currentPrefix=null;this._selectIndex=-1;this._enableCaching=true;this._onFindDelegate="";}
Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior.prototype={initialize:function(){Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior.callBaseMethod(this,'initialize');if(this._targetControl==null)
return;this.initializeTextBox(this._targetControl);this.initializeAutoComplete();this.initializeFindPopup();this.initializeClear();},initializeTextBox:function(element){element.autocomplete="off";Ext.fly(element).on({'focus':this._onGotFocus,'blur':this._onLostFocus,'keydown':this._onKeyDown,'keyup':this._onChageReseter,scope:this});this._initialText=element.value;},_onChageReseter:function(){if(this._initialText!=null&&this._initialText!=this._targetControl.value){this._generalElement.value="";this._initialText=null;Sys.Debug.trace('RESET');}},initializeAutoComplete:function(){if(this._completionListElement==null){this._completionListElement=document.createElement('DIV');this._completionListElement.id=this.get_id()+'_completionListElem';this._completionListElement.className='completionListElem';document.body.appendChild(this._completionListElement);}
var completionListStyle=this._completionListElement.style;completionListStyle.visibility='hidden';completionListStyle.backgroundColor=this._textBackground;completionListStyle.color=this._textColor;completionListStyle.border='solid 1px buttonshadow';completionListStyle.cursor='default';completionListStyle.unselectable='unselectable';completionListStyle.overflow='hidden';completionListStyle.zIndex=9999999999;Ext.fly(this._completionListElement).on({'mousedown':this._onListMouseDown,'mouseup':this._onListMouseUp,'mouseover':this._onListMouseOver,scope:this});},initializeFindPopup:function(){if(this._findLink){Ext.fly(this._findLink).on({'click':this.onFindLinkClick,scope:this});}},initializeClear:function(){if(this._clearLink){Ext.fly(this._clearLink).on({'click':this.onClearLinkClick,scope:this});}},onClearLinkClick:function(e){if(e)e.stopEvent();this.selectGeneral('','');},onFindLinkClick:function(e){if(e)e.stopEvent();this.showFindPopup();},showAutoComplete:function(){Ext.fly(this._completionListElement).alignTo(this._targetControl,"?").show();},hideAutoComplete:function(){Ext.fly(this._completionListElement).hide();this._completionListElement.innerHTML='';this._selectIndex=-1;},showFindPopup:function(){if(this._findPopupControl){var wnd=showModalPopup(this._findPopupControl,{width:800,forceNew:true});wnd.on('hide',this.hideFindPopup.createCallback(),this);}},hideFindPopup:function(){if(this._findPopupControl)
disposeModalPopup(this._findPopupControl);},startTimer:function(){if(!this._task){this._task={run:this._onTimerTick,interval:this._completionInterval,scope:this}
Ext.TaskMgr.start(this._task);}},stopTimer:function(){if(this._task){Ext.TaskMgr.stop(this._task);this._task=null;}},_onTimerTick:function(sender,eventArgs){var text=this._targetControl.value;if(text.trim().length<this._minimumPrefixLength){this._currentPrefix=null;this._update('',null,false);return;}
if(this._currentPrefix!==text){this._currentPrefix=text;if(this._cache&&this._cache[text]){this._update(text,this._cache[text],false);return;}
WebMethods.GetGeneralListEx(this._currentPrefix,this._completionSetCount,this._projectID,this._currentProjectID,this._projectIDs,this._entityTypeIDs,this._excludeEntityID,Function.createDelegate(this,this._onMethodComplete),Function.createDelegate(this,this._onMethodFailed),text);}},selectGeneral:function(generalID,text){var hdn=this._generalElement;hdn.value=generalID;this.fireOnChangeGeneral();this._setText(text);this.hideFindPopup();},fireOnChangeGeneral:function(){var hdn=this._generalElement;if(this._onFindDelegate!=""&&this._onFindDelegate!=null)
eval(this._onFindDelegate+"("+hdn.value+");");},_onGotFocus:function(ev){this._checkContent();this.startTimer();},_checkContent:function(){if(this._targetControl.value==""){var hdn=this._generalElement;var previous=hdn.value;hdn.value="";if(previous!=hdn.value)
this.fireOnChangeGeneral();}},_highlightItem:function(item){var children=this._completionListElement.childNodes;for(var i=0;i<children.length;i++){var child=children[i];if(child!==item){child.style.backgroundColor=this._textBackground;child.style.color=this._textColor;}}
if(item.childNodes.length>0){if(Sys.Browser.agent===Sys.Browser.Safari){item.style.backgroundColor='#FFF3DB';item.style.color='black';}
else{item.style.backgroundColor='highlight';item.style.color='highlighttext';}}},_onListMouseDown:function(ev){var item=ev.target.itemToSelect;if(item==null)
return;this._selectItem(item);},_selectItem:function(elem){var hdn=this._generalElement;hdn.value=elem.GeneralID;this.fireOnChangeGeneral();this._setText(elem.GeneralName);},_onListMouseUp:function(ev){this._targetControl.focus();},_onListMouseOver:function(ev){var item=ev.target.itemToSelect;if(item==null)
return;this._selectIndex=-1;this._highlightItem(item);},_onKeyDown:function(ev){var k=ev.keyCode?ev.keyCode:ev.rawEvent.keyCode;this._checkContent();if(k===Sys.UI.Key.esc){this.hideAutoComplete();ev.preventDefault();}
else if(k===Sys.UI.Key.up){if(this._selectIndex>0){this._selectIndex--;this._highlightItem(this._completionListElement.childNodes[this._selectIndex]);ev.preventDefault();}}
else if(k===Sys.UI.Key.down){if(this._selectIndex<(this._completionListElement.childNodes.length-1)){this._selectIndex++;this._highlightItem(this._completionListElement.childNodes[this._selectIndex]);ev.preventDefault();}}
else if(k===Sys.UI.Key.enter){if(this._selectIndex!==-1){this._selectItem(this._completionListElement.childNodes[this._selectIndex]);ev.preventDefault();}}
if(k!==Sys.UI.Key.tab){this.startTimer();}},_onLostFocus:function(){this._checkContent();this.stopTimer();this.hideAutoComplete();},_onMethodComplete:function(result,context,methodName){this._update(context,result,true);},_onMethodFailed:function(err,response,context){},_setText:function(text){this.stopTimer();this._currentPrefix=text;var element=this._targetControl;var control=element.control;if(control&&control.set_text){control.set_text(text);}
else{element.value=text;}
this.hideAutoComplete();},_update:function(prefixText,completionItems,cacheResults){if(cacheResults&&this._enableCaching){if(!this._cache){this._cache={};}
this._cache[prefixText]=completionItems;}
this._completionListElement.innerHTML='';this._selectIndex=-1;if(completionItems&&completionItems.length){for(var i=0;i<completionItems.length;i++){var itemElement=document.createElement('li');itemElement.__item='';itemElement.GeneralName=completionItems[i].Text;itemElement.GeneralID=completionItems[i].ID;itemElement.itemToSelect=itemElement;var imageSpan=document.createElement('span');imageSpan.itemToSelect=itemElement;var imgIcon=document.createElement("img");imgIcon.itemToSelect=itemElement;imgIcon.src=Application.baseUrl+"/img/"+completionItems[i].Icon;imgIcon.border=0;imageSpan.appendChild(imgIcon);itemElement.appendChild(imageSpan);var nameSpan=document.createElement('span');nameSpan.itemToSelect=itemElement;nameSpan.innerText=completionItems[i].Text;itemElement.appendChild(nameSpan);this._completionListElement.appendChild(itemElement);}
var elementBounds=Ext.fly(this._targetControl).getBox();this._completionListElement.style.width=Math.max(1,elementBounds.width-2)+'px';this.showAutoComplete();}
else{this.hideAutoComplete();}},dispose:function(){Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior.callBaseMethod(this,'dispose');},get_excludeEntityID:function(){return this._excludeEntityID;},set_excludeEntityID:function(value){this._excludeEntityID=value;},get_projectID:function(){return this._projectID;},set_projectID:function(value){this._projectID=value;},get_currentProjectID:function(){return this._currentProjectID;},set_currentProjectID:function(value){this._currentProjectID=value;},get_projectIDs:function(){return this._projectIDs;},set_projectIDs:function(value){this._projectIDs=value;},get_entityTypeIDs:function(){return this._entityTypeIDs;},set_entityTypeIDs:function(value){this._entityTypeIDs=value;},get_onFindDelegate:function(){return this._onFindDelegate;},set_onFindDelegate:function(value){this._onFindDelegate=value;},get_findLink:function(){return this._findLink;},set_findLink:function(value){this._findLink=value;},get_clearLink:function(){return this._clearLink;},set_clearLink:function(value){this._clearLink=value;},get_findPopupControl:function(){return this._findPopupControl;},set_findPopupControl:function(value){this._findPopupControl=value;},get_generalElement:function(){return this._generalElement;},set_generalElement:function(value){this._generalElement=value;},get_completionListElement:function(){return this._completionListElement;},set_completionListElement:function(value){this._completionListElement=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;}}
Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior.registerClass('Tp.Atlas.Extenders.Lookup.GeneralLookupBehavior',Sys.Component);;
/*Progress.js*/
Type.registerNamespace('Tp.Utilities');var progressDialog=null;Tp.Utilities.ProgressDialog=function()
{Tp.Utilities.ProgressDialog.initializeBase(this);}
Tp.Utilities.ProgressDialog.prototype={initialize:function(){Tp.Utilities.ProgressDialog.callBaseMethod(this,'initialize');progressDialog=this;this.resetCompleteHandler();this.resetSettings();},resetSettings:function(){this.width=300;},setCompleteHandler:function(handler,context){this.OnComplete=handler;this.context=context;},resetCompleteHandler:function(){this.OnComplete=function(){};},monitorTaskExecution:function(response){this._monitorTaskExecution(response);},_monitorTaskExecution:function(response){if(response.IsRunning){progressDialog.setMessage(response.Message);var valueToExecute="Administration.GetStatus('"+response.TaskID+"', progressDialog._monitorTaskExecution, progressDialog._onError, null);";setTimeout(valueToExecute,1000);}
else{progressDialog.hide();progressDialog.OnComplete(progressDialog.context);}},_onError:function(arg){progressDialog.hide();DisplayError(arg._message);},setMessage:function(message){this.show(message);},show:function(message){if(!message)
message='';Ext.MessageBox.show({title:'Please wait',msg:message,width:this.width,waitConfig:{interval:50},wait:true,closable:false});},hide:function(){Ext.MessageBox.hide();this.resetSettings();},dispose:function(){Tp.Utilities.ProgressDialog.callBaseMethod(this,'dispose');}}
Tp.Utilities.ProgressDialog.registerClass('Tp.Utilities.ProgressDialog',Sys.Component);Sys.Application.add_init(function(){$create(Tp.Utilities.ProgressDialog,{id:'progressDialog'},null,null,null);});;
/*UserStoryEffortViewBehavior.js*/
Type.registerNamespace('Tp.Atlas.Extenders.AssignmentEffort');var userStoryEffortView=null;function ChangeUserStoryEffortsView(userStoryID)
{userStoryEffortView.onChangeUserStory(userStoryID);}
Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior=function()
{Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior.initializeBase(this);this._TaskID=null;this._UserStoryID=null;this._ChildsEffortValue='0';this._AssignmentsValue=null;this._effortsCell=null;this._effortControls=new Array();this._totalLabel=null;this._childsLabel=null;this._assignmentEfforExtenderID=null;this._unit='';this._targetControl=null;}
Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior.prototype={initialize:function(){Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior.callBaseMethod(this,'initialize');var table=document.createElement("table");table.cellPadding=0;table.cellSpacing=5;table.border=0;var body=document.createElement("tbody");var emptyRow=document.createElement("tr");this._effortsCell=document.createElement("td");emptyRow.appendChild(this._effortsCell);this._effortsCell.vAlign="top";body.appendChild(emptyRow);table.appendChild(body);this._targetControl.appendChild(table);userStoryEffortView=this;var hdn=$get('hdnUsEffort');if(hdn!=null){var serializer=Sys.Serialization.JavaScriptSerializer;var result=serializer.deserialize(hdn.value);this._AssignmentsValue=result.Assignments;this._ChildsEffortValue=result.ChildsEffort;this._UserStoryID=result.ID;}},signUpForEvents:function(){var extender=$find(this._assignmentEfforExtenderID);extender.add_change(Function.createDelegate(this,this.recalculateTotal));this.displayEfforts();},onChangeUserStory:function(userStoryID){if(typeof(userStoryID)=='undefined')
userStoryID=0;this._UserStoryID=userStoryID;this._effortsCell.innerHTML='';WebMethods.GetUserStoryEffortInfo(userStoryID,this._TaskID,this.onGetInfo,null,this);},onGetInfo:function(result,context){context._AssignmentsValue=result.Assignments;context._ChildsEffortValue=result.ChildsEffort;context.displayEfforts();},getRole:function(value){for(var i=0;i<roles.length;i++){if(roles[i].ID==value)
return roles[i];}
return null;},displayEfforts:function(){this._effortsCell.innerHTML='';this._effortControls=new Array();if(this._UserStoryID==0||this._UserStoryID==null||this._AssignmentsValue==null)
return;var unit='';for(var i=0;i<this._AssignmentsValue.length;i++){var role=this.getRole(this._AssignmentsValue[i].RoleID);unit=this._AssignmentsValue[i].Unit;this.appendRoleEffortLabel(role,this._AssignmentsValue[i].Effort,unit);}
this._unit=unit;if(this._effortControls.length>0){var childsEffort=NumberOperator.createNumber(this._ChildsEffortValue);if(unit=='h'){var span=document.createElement("span");this._childsLabel=document.createElement("span");this._childsLabel.innerHTML=NumberOperator.toString(childsEffort);span.innerHTML="Tasks Effort: ";this._effortsCell.appendChild(span);this._effortsCell.appendChild(this._childsLabel);span=document.createElement("span");span.innerHTML="&nbsp;h<br/>";this._effortsCell.appendChild(span);}
var div=document.createElement("div");div.className="totalLine";this._effortsCell.appendChild(div);var total=document.createElement("b");total.innerHTML="Total Effort: ";div.appendChild(total);this._totalLabel=document.createElement("b");div.appendChild(this._totalLabel);var span=document.createElement("b");span.innerHTML="&nbsp;"+unit;div.appendChild(span);this.recalculateTotal();}},getInputForRole:function(role){var result=null;for(var i=0;i<this._effortControls.length;i++){if(this._effortControls[i].roleID==role.ID)
return this._effortControls[i];}
return null;},recalculateTotal:function(){if(this._UserStoryID==null||this._UserStoryID==0)
return;var total=0;var extender=$find(this._assignmentEfforExtenderID);for(var i=0;i<this._AssignmentsValue.length;i++){var role=this.getRole(this._AssignmentsValue[i].RoleID);var input=this.getInputForRole(role);var extInput=extender.getInputForRole(role);var storyEffort=NumberOperator.createNumber(this._AssignmentsValue[i].Effort);if(extender.isSubstraction()&&extInput!=null){var taskEffort=NumberOperator.createNumber(extInput.value);input.innerHTML=NumberOperator.toString(NumberOperator.positiveSub(storyEffort,taskEffort));}
else{input.innerHTML=NumberOperator.toString(storyEffort);}}
for(var i=0;i<this._effortControls.length;i++){var val=NumberOperator.createNumber(this._effortControls[i].innerHTML);total=NumberOperator.sum(total,val);}
var childsEffort=NumberOperator.createNumber(this._ChildsEffortValue);if(this._unit=='h'){var assignments=extender.get_Assignments();for(var i=0;i<assignments.length;i++)
childsEffort=NumberOperator.sum(childsEffort,NumberOperator.createNumber(assignments[i].Effort));this._childsLabel.innerHTML=NumberOperator.toString(childsEffort);}
else
childsEffort=0;total=NumberOperator.sum(total,childsEffort);this._totalLabel.innerHTML=NumberOperator.toString(total);},appendRoleEffortLabel:function(role,effort,unit){if(!role.HaveEffort)
return;var span=document.createElement("span");var encodedActorName=Ext.util.Format.htmlEncode(role.Name);span.innerHTML=encodedActorName+" Effort: ";this._effortsCell.appendChild(span);var input=document.createElement("span");input.innerHTML=effort;input.roleID=role.ID;this._effortControls.push(input);this._effortsCell.appendChild(input);span=document.createElement("span");span.innerHTML="&nbsp;"+unit;this._effortsCell.appendChild(span);this._effortsCell.appendChild(document.createElement("br"));},dispose:function(){Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior.callBaseMethod(this,'dispose');},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},get_ChildsEffort:function(){return this._ChildsEffortValue;},set_ChildsEffort:function(value){this._ChildsEffortValue=value;},get_Assignments:function(){return this._AssignmentsValue;},set_Assignments:function(value){this._AssignmentsValue=value;},get_assignmentEfforExtenderID:function(){return this._assignmentEfforExtenderID;},set_assignmentEfforExtenderID:function(value){this._assignmentEfforExtenderID=value;},get_TaskID:function(){return this._TaskID;},set_TaskID:function(value){this._TaskID=value;},get_UserStoryID:function(){return this._UserStoryID;},set_UserStoryID:function(value){this._UserStoryID=value;}}
Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior.registerClass('Tp.Atlas.Extenders.AssignmentEffort.UserStoryEffortViewBehavior',Sys.Component);;
/*AssignmentEfforExtenderBehavior.js*/
var projectTeams=new Array();var users=new Array();var roles=new Array();var currentProjectID=0;var loggedUserID=0;Type.registerNamespace('Tp.Atlas.Extenders.AssignmentEffort');Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior=function(){Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior.initializeBase(this);this._ChildsEffortValue='0';this._EffortDifference=0;this._OtherRolesEffort=0;this._RoleID=0;this._HasInitialEstimateValue=false;this._AssignmentsValue=null;this._assignmentsCell=null;this._effortsCell=null;this._estimateCell=null;this._effortControls=new Array();this._estimateControls=new Array();this._dropDowns=new Array();this._totalEffortLabel=null;this._totalEstimateLabel=null;this._substractCheckBoxID=null;this._ShowEfforts=true;this._targetControl=null;}
Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior.prototype={initialize:function(){Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior.callBaseMethod(this,'initialize');this._isFake=(this._targetControl==null);if(this._isFake)
this._targetControl=document.createElement("span");if(!this._isFake){var table=document.createElement("table");table.cellPadding=0;table.cellSpacing=0;var body=document.createElement("tbody");var emptyRow=document.createElement("tr");this._assignmentsCell=document.createElement("td");this._effortsCell=this.getEffortCell();this._estimateCell=this.getEffortCell();emptyRow.appendChild(this._assignmentsCell);if(this.get_HasInitialEstimate())
emptyRow.appendChild(this._estimateCell);emptyRow.appendChild(this._effortsCell);this._assignmentsCell.vAlign="top";this._assignmentsCell.noWrap=true;body.appendChild(emptyRow);table.appendChild(body);this._targetControl.parentNode.appendChild(table);this._onChangeAssignmentHandler=Function.createDelegate(this,this._onChangeAssignment);this._onChangeEffortHandler=Function.createDelegate(this,this._onChangeEffort);this._onChangeEstimateHandler=Function.createDelegate(this,this._onChangeEstimate);this._onChangeProjectHandler=Function.createDelegate(this,this._onChangeProject);this._onEffortKeyValidationHandler=Function.createDelegate(this,this._onEffortKeyValidation);if(typeof(programProjectDropDownID)=='string'){var projectDropDown=$get(programProjectDropDownID);if(projectDropDown!=null){$addHandler(projectDropDown,'change',this._onChangeProjectHandler);if(!isNaN(projectDropDown.value))
currentProjectID=Number(projectDropDown.value);}}
var serializer=Sys.Serialization.JavaScriptSerializer;this.set_Assignments(serializer.deserialize(this._targetControl.value));if(typeof(userStoryEffortView)=="object"&&userStoryEffortView)
userStoryEffortView.signUpForEvents();var checkBox=this.get_CheckBox();if(checkBox!=null)
$addHandler(checkBox,'change',Function.createDelegate(this,this.onChangeSubstraction));}},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},getEffortCell:function(){var effortsCell=document.createElement("td");effortsCell.className='pl-15 pr-5';effortsCell.noWrap=true;effortsCell.vAlign="top";return effortsCell;},_onChangeProject:function(){currentProjectID=0;var dropDown=$get(programProjectDropDownID);if(!isNaN(dropDown.value))
currentProjectID=Number(dropDown.value);this.recalculateAssignmentsForProjectChange();},recalculateOtherRolesEfforts:function(newTasksEffort,effortDiff){this._OtherRolesEffort=NumberOperator.createNumber(this._ChildsEffortValue)-newTasksEffort+effortDiff;},recalculateAssignmentsForProjectChange:function(isStoryEffortEqualsSumTasksEffort,deletedOld){var assignments=new Array();var project=this.getProjectByID(currentProjectID);if(project!=null){for(var i=0;i<project.entityType.roles.length;i++){var assignment={"RoleID":project.entityType.roles[i],"Effort":"0","UserIDs":[],"Unit":project.entityType.unit,"InitialEstimate":"0"};assignments.push(assignment);}}
for(var i=0;i<assignments.length;i++){var assignment=this.getAssignmentForRole(assignments[i].RoleID);if(assignment==null)
continue;if(isStoryEffortEqualsSumTasksEffort&&!deletedOld&&this._RoleID==assignments[i].RoleID){var effort=NumberOperator.createNumber(assignment.Effort);if(this._EffortDifference!=0&&effort!=0){assignments[i].Effort=effort<this._EffortDifference?0:effort-this._EffortDifference;this._EffortDifference=0;}else
assignments[i].Effort=effort;}
else
assignments[i].Effort=assignment.Effort;assignments[i].InitialEstimate=assignment.InitialEstimate;assignments[i].UserIDs=this.filterUserIDsForProject(project,assignment.UserIDs);}
this.set_Assignments(assignments);this.serializeAssignmentsAndEfforts();},filterUserIDsForProject:function(project,userIDs){var result=new Array();for(var i=0;i<project.users.length;i++){for(var j=0;j<userIDs.length;j++){if(userIDs[j]==project.users[i])
result.push(userIDs[j]);}}
return result;},getAssignmentForRole:function(roleId){for(var i=0;i<this._AssignmentsValue.length;i++){if(this._AssignmentsValue[i].RoleID==(roleId))
return this._AssignmentsValue[i];}
return null;},onChangeSubstraction:function(){this.raiseChangeEvent();},isSubstraction:function(){var checkBox=this.get_CheckBox();if(checkBox!=null)
return checkBox.checked;return false;},get_CheckBox:function(){if(this._substractCheckBoxID==null)
return null;var checkBox=$get(this._substractCheckBoxID);return checkBox;},dispose:function(){if(this._onChangeAssignmentHandler)
delete this._onChangeAssignmentHandler;this._onChangeAssignmentHandler=null;if(this._onChangeEffortHandler)
delete this._onChangeEffortHandler;if(this._onChangeEstimateHandler)
delete this._onChangeEstimateHandler;if(this._onEffortKeyValidationHandler)
delete this._onEffortKeyValidationHandler;if(this._onChangeProjectHandler)
delete this._onChangeProjectHandler;this._onChangeAssignment=null;Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior.callBaseMethod(this,'dispose');},_onChangeAssignment:function(sender){this.serializeAssignmentsAndEfforts();},_onChangeEffort:function(sender){this.serializeAssignmentsAndEfforts();this.recalculateTotal();},_onChangeEstimate:function(sender){this.serializeAssignmentsAndEfforts();this.recalculateTotal();},_onEffortKeyValidation:function(sender){function isValidInput(key,value){if(key==NumberOperator._decimalSeparator&&value.indexOf(NumberOperator._decimalSeparator)==-1)
return true;if(isNaN(key))
return false;else
return true;}
if(sender.rawEvent.charCode!=null)
if(sender.rawEvent.charCode==0)
return;var key=String.fromCharCode(sender.charCode);if(!isValidInput(key,sender.target.value))
sender.preventDefault();},serializeAssignmentsAndEfforts:function(){for(var i=0;i<this._AssignmentsValue.length;i++){var role=this.getRole(this._AssignmentsValue[i].RoleID);var dropDowns=this.getDropDownsForRole(role);Array.clear(this._AssignmentsValue[i].UserIDs);for(var j=0;j<dropDowns.length;j++){if(dropDowns[j].value!='')
this._AssignmentsValue[i].UserIDs.push(Number.parseInvariant(dropDowns[j].value));}
var input=this.getInputForRole(role,this._effortControls);if(input!=null)
this._AssignmentsValue[i].Effort=input.value;input=this.getInputForRole(role,this._estimateControls);if(input!=null)
this._AssignmentsValue[i].InitialEstimate=input.value;}
var serializer=Sys.Serialization.JavaScriptSerializer;this._targetControl.value=serializer.serialize(this._AssignmentsValue);},getInputForRole:function(role,effortControls){if(!effortControls)
effortControls=this._effortControls;var result=null;for(var i=0;i<effortControls.length;i++){if(effortControls[i].roleObject.ID==role.ID)
return effortControls[i];}
return null;},getDropDownsForRole:function(role){var result=new Array();for(var i=0;i<this._dropDowns.length;i++){if(this._dropDowns[i].roleObject.ID==role.ID)
result.push(this._dropDowns[i]);}
return result;},get_ShowEfforts:function(){return this._ShowEfforts;},set_ShowEfforts:function(value){this._ShowEfforts=value;},get_ChildsEffort:function(){return this._ChildsEffortValue;},set_ChildsEffort:function(value){this._ChildsEffortValue=value;},get_EffortDifference:function(){return this._EffortDifference;},set_EffortDifference:function(value){this._EffortDifference=value;},get_RoleID:function(){return this._RoleID;},set_RoleID:function(value){this._RoleID=value;},get_HasInitialEstimate:function(){return this._HasInitialEstimateValue;},set_HasInitialEstimate:function(value){this._HasInitialEstimateValue=value;},get_substractCheckBoxID:function(){return this._substractCheckBoxID;},set_substractCheckBoxID:function(value){this._substractCheckBoxID=value;},get_Assignments:function(){return this._AssignmentsValue;},clearControlsAndHandlers:function(){for(var i=0;i<this._dropDowns.length;i++)
$removeHandler(this._dropDowns[i],"change",this._onChangeAssignmentHandler);for(var i=0;i<this._effortControls.length;i++)
$removeHandler(this._effortControls[i],"keyup",this._onChangeEffortHandler);for(var i=0;i<this._estimateControls.length;i++)
$removeHandler(this._estimateControls[i],"keyup",this._onChangeEstimateHandler);Array.clear(this._dropDowns);Array.clear(this._effortControls);Array.clear(this._estimateControls);this._assignmentsCell.innerHTML='';this._effortsCell.innerHTML='';this._estimateCell.innerHTML='';},set_Assignments:function(value){this._AssignmentsValue=value;if(this._isFake)
return;this.clearControlsAndHandlers();var unit='';for(var i=0;i<this._AssignmentsValue.length;i++){var role=this.getRole(this._AssignmentsValue[i].RoleID);var roleSpan=document.createElement('span');roleSpan.className='roles';var roleTitle=document.createElement("p");roleTitle.className='pb-5 defaultLabel';var encodedRoleName=Ext.util.Format.htmlEncode(role.Name);roleTitle.innerHTML=encodedRoleName;roleSpan.appendChild(roleTitle);var dropDown=this.createDropDownForRole(role,currentProjectID);roleSpan.appendChild(dropDown);if(role.Pair){dropDown=this.createDropDownForRole(role,currentProjectID);roleSpan.appendChild(dropDown);}
this._assignmentsCell.appendChild(roleSpan);var userIds=this._AssignmentsValue[i].UserIDs;var dropDowns=this.getDropDownsForRole(role);for(var j=0;j<userIds.length;j++)
this.selectValueInDropDown(dropDowns[j],userIds[j]);unit=this._AssignmentsValue[i].Unit;this.appendRoleEffortInput(role,this._AssignmentsValue[i].Effort,unit);if(this.get_HasInitialEstimate())
this.appendEstimateInput(role,this._AssignmentsValue[i].InitialEstimate,unit);}
if(this._effortControls.length>0){var childsEffort=NumberOperator.createNumber(this._ChildsEffortValue);if(childsEffort>0){var span=document.createElement("span");span.innerHTML="Tasks effort <br/>"+NumberOperator.toString(childsEffort+this._OtherRolesEffort)+"&nbsp;h<br/>";this._effortsCell.appendChild(span);}}
this._totalEffortLabel=this.appendTotal(this._effortsCell,this._effortControls,unit);this._totalEstimateLabel=this.appendTotal(this._estimateCell,this._estimateControls,unit);if(this._effortControls.length>0)
this.recalculateTotal();},appendTotal:function(cell,effortControls,unit){if(effortControls.length==0)
return null;var div=document.createElement("div");div.className="totalLine";cell.appendChild(div);var totalLabel=document.createElement("b");div.appendChild(totalLabel);var span=document.createElement("b");span.innerHTML="&nbsp;"+unit;div.appendChild(span);var total=document.createElement("span");total.innerHTML="&nbsp;total";div.appendChild(total);return totalLabel;},getTotal:function(effortControls){var total=0;for(var i=0;i<effortControls.length;i++){var val=NumberOperator.createNumber(effortControls[i].value);total=NumberOperator.sum(total,val);}
return total;},recalculateTotal:function(){var total=this.getTotal(this._effortControls);var childsEffort=NumberOperator.createNumber(this._ChildsEffortValue);total=NumberOperator.sum(total,childsEffort);this._totalEffortLabel.innerHTML=NumberOperator.toString(total);if(this.get_HasInitialEstimate()){total=this.getTotal(this._estimateControls);this._totalEstimateLabel.innerHTML=NumberOperator.toString(total);}
this.raiseChangeEvent();},add_change:function(handler){this.get_events().addHandler('change',handler);},remove_change:function(handler){this.get_events().removeHandler('change',handler);},raiseChangeEvent:function(){var ev=this.get_events().getHandler('change');if(ev)
ev(this,Sys.EventArgs.Empty);},appendRoleEffortInput:function(role,effort,unit){this.appendEffortField(role,effort,unit,this._onChangeEffortHandler,this._onEffortKeyValidationHandler,this._effortsCell,this._effortControls,"Effort");},appendEstimateInput:function(role,effort,unit){this.appendEffortField(role,effort,unit,this._onChangeEstimateHandler,this._onEffortKeyValidationHandler,this._estimateCell,this._estimateControls,"Estimate");},appendEffortField:function(role,effort,unit,keyUpHandler,keyPressHandler,cell,controlsArray,title){if(!role.HaveEffort||!this._ShowEfforts){var div=document.createElement("div");div.style.height="50px";cell.appendChild(div);return;}
var effortDiv=document.createElement('div');effortDiv.className='estimateEffortBlock';var span=document.createElement("p");span.className='pb-5 defaultLabel';span.innerHTML=title;effortDiv.appendChild(span);var input=document.createElement("input");input.type="text";input.id=title+"ForRole"+role.ID;input.value=effort;input.className="input";input.style.width="50px";input.roleObject=role;controlsArray.push(input);effortDiv.appendChild(input);span=document.createElement("span");span.innerHTML="&nbsp;"+unit;effortDiv.appendChild(span);$addHandler(input,'keyup',keyUpHandler);$addHandler(input,'keypress',keyPressHandler);cell.appendChild(effortDiv);},getRole:function(value){for(var i=0;i<roles.length;i++){if(roles[i].ID==value)
return roles[i];}
return null;},createDropDownForRole:function(role,projectId){var dropDown=document.createElement("select");dropDown.id='selectForActor'+role.RoleID.toString();this.addOptionToDropDown(dropDown,"","- Select "+role.Name+" -");var members=users;if(projectId>0)
members=this.getUsersForProject(projectId);var isCurrentUserInTeam=false;for(var i=0;i<members.length;i++){if(members[i].id==loggedUserID)
isCurrentUserInTeam=true;}
if(isCurrentUserInTeam)
this.addOptionToDropDown(dropDown,loggedUserID,"Assign to Me");for(var i=0;i<members.length;i++)
this.addOptionToDropDownNoCheck(dropDown,members[i].id,members[i].name);this._dropDowns.push(dropDown);dropDown.roleObject=role;$addHandler(dropDown,'change',this._onChangeAssignmentHandler);return dropDown;},selectValueInDropDown:function(dropDown,value){for(var i=0;dropDown.options.length;i++){if(dropDown.options[i].value==value&&dropDown.options[i].text!='Assign to Me'){dropDown.options[i].selected=true;return;}}},getUsersForProject:function(projectId){var result=new Array();var project=this.getProjectByID(projectId);for(var j=0;j<project.users.length;j++){var user=this.getUserById(project.users[j]);if(user!=null)
result.push(user);}
return result;},getProjectByID:function(projectId){for(var i=0;i<projectTeams.length;i++){if(projectTeams[i].projectId==projectId)
return projectTeams[i];}
return null;},getUserById:function(userId){for(var u=0;u<users.length;u++){if(userId==users[u].id)
return users[u];}
return null;},addOptionToDropDown:function(dropDown,value,text){var optionElement=new Option(text,value);for(var i=0;i<dropDown.options.length;i++){if(dropDown.options[i].value==value)
return;}
dropDown.options[dropDown.options.length]=optionElement;},addOptionToDropDownNoCheck:function(dropDown,value,text){var optionElement=new Option(text,value);dropDown.options[dropDown.options.length]=optionElement;},clearDropDown:function(dropDown){while(0<dropDown.dropDown.length)
dropDown.dropDown.remove(0);}}
Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior.registerClass('Tp.Atlas.Extenders.AssignmentEffort.AssignmentEfforExtenderBehavior',Sys.Component);;
/*PopupLinkBehavior.js*/
Type.registerNamespace('Tp.Atlas.Extenders.Popup');Tp.Atlas.Extenders.Popup.PopupLinkBehavior=function(){Tp.Atlas.Extenders.Popup.PopupLinkBehavior.initializeBase(this);this._targetControl=null;this._clickHandler=null;this._postBackCode=null;}
Tp.Atlas.Extenders.Popup.PopupLinkBehavior.prototype={initialize:function(){Tp.Atlas.Extenders.Popup.PopupLinkBehavior.callBaseMethod(this,'initialize');this._clickHandler=Function.createDelegate(this,this.OnClick);$addHandler(this._targetControl,"click",this._clickHandler);},dispose:function(){if(this._clickHandler!=null)
{$removeHandler(this._targetControl,"click",this._clickHandler);this._clickHandler=null;}
Tp.Atlas.Extenders.Popup.PopupLinkBehavior.callBaseMethod(this,'dispose');},OnClick:function(){var postBackString=this.get_PostBackCode();window.setTimeout(postBackString,0);return false;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},get_PostBackCode:function(){return this._postBackCode;},set_PostBackCode:function(value){this._postBackCode=value;}}
Tp.Atlas.Extenders.Popup.PopupLinkBehavior.registerClass('Tp.Atlas.Extenders.Popup.PopupLinkBehavior',Sys.Component);;
/*TimeDetailsPopupManagerBehavior.js*/
var Time_Extenders=new Array();var Current_TimeExtender=0;var disableTimeHandling=false;var disableCurrentTimeExtenderActivating=false;var isOnceLoaded=false;var timeDetailsPopup=null;var processEventInfoHandlerWasAdded=false;Sys.Application.add_load(function(){if(isOnceLoaded)
return;isOnceLoaded=true;ActiveCurrentExtender();});function ActiveCurrentExtender(){if(disableCurrentTimeExtenderActivating)
return;if(Time_Extenders.length==0)
return;Time_Extenders[0].focus();}
function TimeSheetEnabled(isEnabled){disableCurrentTimeExtenderActivating=!isEnabled;disableTimeHandling=!isEnabled;}
function addProcessEventInfoHandler(){if(!processEventInfoHandlerWasAdded){processEventInfoHandlerWasAdded=true;$addHandler(document,"keyup",processEventInfo);}}
function removeProcessEventInfoHandler(){if(processEventInfoHandlerWasAdded){processEventInfoHandlerWasAdded=false;$removeHandler(document,"keyup",processEventInfo);}}
addProcessEventInfoHandler();function processEventInfo(evt){if(disableTimeHandling)
return;var prevousExtender=null;var newIndex=Current_TimeExtender;if(Time_Extenders.length==0)
return;if(Current_TimeExtender>=0)
prevousExtender=Time_Extenders[Current_TimeExtender];if(evt.keyCode==39){newIndex++;if(newIndex>=Time_Extenders.length)
newIndex=Time_Extenders.length-1;Time_Extenders[newIndex].focus();}
if(evt.keyCode==37){newIndex--;if(newIndex<0)
newIndex=0;Time_Extenders[newIndex].focus();}
if(evt.keyCode==38){newIndex=newIndex-7;if(newIndex<0)
newIndex=Time_Extenders.length+newIndex;Time_Extenders[newIndex].focus();}
if(evt.keyCode==40){newIndex=newIndex+7;if(newIndex>=Time_Extenders.length)
newIndex=newIndex-Time_Extenders.length;Time_Extenders[newIndex].focus();}
if(evt.keyCode==13){if(Current_TimeExtender>=0){var element=Time_Extenders[Current_TimeExtender].get_element();element.click();}}
if(evt.keyCode==127){if(Current_TimeExtender>=0){var extender=Time_Extenders[Current_TimeExtender];extender.deleteTime();}}}
Type.registerNamespace('TS');TS.CustomFieldsContainer=function(){TS.CustomFieldsContainer.initializeBase(this);this._customFieldsByProject=[];}
TS.CustomFieldsContainer.prototype={addCustomFieldToProject:function(projectId,customField){if(!this._customFieldsByProject[projectId]){this._customFieldsByProject[projectId]=[];}
this._customFieldsByProject[projectId].push(customField);},getCustomFieldsForProject:function(projectId){if(this._customFieldsByProject[projectId]){return this._customFieldsByProject[projectId];}
return null;}};TS.TD=function(){TS.TD.initializeBase(this);this._remain="0";this._defaultRemain="0";this._spent="0";this._assignableID="";this._projectID="";this._activityID="";this._previousRemain="0";this._timeID="";this._date="";this._dayKey=0;this._rowKey=0;this._description="";this._okHandler=null;this._cancelHandler=null;this._deleteHandler=null;this._deleteTimeHandler=null;this._onClickHandler=null;this._onFocusHandler=null;this._onBlurHandler=null;this._onKeyUpHandler=null;this._onRemainTimeChangedHandler=null;this._onKeyboardKeyDownHandler=null;this._isExternalDeletion=true;this._index=0;this._popup=null;this._targetControl=null;this._roleOptions=[];this._PID=null;this._CF=null;this._timeService=null;this._deleteTimeHandler=null;this._beforeDeleteTimeHandler=null;this._beforeSaveTimeHandler=null;this._saveTimeHandler=null;this._onHidePopupDelegate=null;this._userID=0;}
TS.TD.prototype={initialize:function(){TS.TD.callBaseMethod(this,'initialize');this._onClickHandler=Function.createDelegate(this,this._onClick);this._onFocusHandler=Function.createDelegate(this,this._onFocus);this._onBlurHandler=Function.createDelegate(this,this._onBlur);this._onHidePopupDelegate=Function.createDelegate(this,this._onClosePopup);this._deleteTimeHandler=Function.createDelegate(this,this.acceptDeletion);this._beforeDeleteTimeHandler=Function.createDelegate(this,this.beforeTimeDelete);this._beforeSaveTimeHandler=Function.createDelegate(this,this.beforeSaveTime);this._saveTimeHandler=Function.createDelegate(this,this.accepSaveTime);this._timeService=new TS.TimeService({listeners:{timeDeleted:this._deleteTimeHandler,beforeDeleted:this._beforeDeleteTimeHandler,beforeSave:this._beforeSaveTimeHandler,timeSaved:this._saveTimeHandler}});var element=this.get_element();$addHandler(element,'click',this._onClickHandler);$addHandler(element,'focus',this._onFocusHandler);$addHandler(element,'blur',this._onBlurHandler);this._index=Time_Extenders.length;Time_Extenders.push(this);var isDescriptionEnabled=false;if($get(this._timeDescriptionFieldID)!=null)
isDescriptionEnabled=true;this._controlIdToFocus=isDescriptionEnabled?this._timeDescriptionFieldID:this._timeSpentFieldID;if(!timeDetailsPopup)
timeDetailsPopup=new TS.TimeDetails();this._popup=timeDetailsPopup;Sys.WebForms.PageRequestManager.getInstance()._registerDisposeScript(timeSheetPanel,"$find(\u0027"+this.get_id()+"\u0027).dispose();");},get_element:function(){return this._targetControl;},set_AO:function(value){this._roleOptions=value.split(',');},get_AO:function(){return this._roleOptions;},set_RoleOptions:function(value){this._roleOptions=value.split(',');},get_RoleOptions:function(){return this._roleOptions;},get_C:function(){return this._targetControl;},set_C:function(value){this._targetControl=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},focus:function(){if(!this._targetControl)
return;try{Ext.get(this._targetControl).focus();}
catch(e){}},_onFocus:function(sender,arg){this.setCurrent();},setCurrent:function(){if(this.get_element().style.backgroundColor=='#C1DAF0'){return;}
var prevousExtender=null;if(Current_TimeExtender>=0){prevousExtender=Time_Extenders[Current_TimeExtender];prevousExtender.get_element().style.backgroundColor='#FFFFFF';}
this.get_element().style.backgroundColor='#C1DAF0';Current_TimeExtender=this._index;},_onBlur:function(sender,arg){},add_change:function(handler){this.get_events().addHandler('change',handler);},remove_change:function(handler){this.get_events().removeHandler('change',handler);},raiseChangeEvent:function(){var ev=this.get_events().getHandler('change');if(ev)
ev(this,Sys.EventArgs.Empty);},getRemainTextBox:function(){return $get(this._timeRemainFieldID);},getDeleteButton:function(){return this._popup.getDeleteButton().btnEl.dom;},getSpentTextBox:function(){return this._popup.get_TimeSpentControl().getEl().dom;},getRoles:function(){var rolesTpFind=[];for(var i=0;i<this._roleOptions.length;i++){var role=this._findRole(this._roleOptions[i]);rolesTpFind.push(role);}
return rolesTpFind;},setTimeSpent:function(){this._popup.set_TimeSpent(this._spent);},setTimeRemain:function(){this._popup.set_TimeRemain(this._remain);},setDescription:function(){this._popup.set_Description(this._description);},hideDeleteButton:function(){this._popup.hideDeleteButton();},showDeleteButton:function(){this._popup.showDeleteButton();},_onClick:function(sender,arg){var txtSpent=this.getSpentTextBox();this.setCurrent();this.setTimeSpent();this.setTimeRemain();if(this._timeID=='0'||this._timeID==''){this.hideDeleteButton();}
else{this.showDeleteButton();}
var timeRemain=0;var row=this.get_RowKey();for(var i=Current_TimeExtender;i>=0;i--){if(row!=Time_Extenders[i].get_RowKey())
break;var spentValue=NumberOperator.createNumber(Time_Extenders[i].get_Spent());var defaultRemain=NumberOperator.createNumber(Time_Extenders[i].get_DefaultRemain());var remain=NumberOperator.createNumber(Time_Extenders[i].get_Remain());if(spentValue>0){timeRemain=remain;break;}
if(defaultRemain>0){timeRemain=defaultRemain;break;}}
if(this._timeID=='0'||this._timeID==''){this.setRemainTime(timeRemain);}
else{this.setRemainTime(timeRemain+spentValue);}
this._onKeyUpHandler=Function.createDelegate(this,this._onTxtRemainKeyUp);this._onRemainTimeChangedHandler=Function.createDelegate(this,this._onRemainTimeChanged);this._popup.addListener("spentTimeChanged",this._onKeyUpHandler);this._popup.addListener("remainTimeChanged",this._onRemainTimeChangedHandler);this.setDescription();this._onKeyboardKeyDownHandler=Function.createDelegate(this,this._handleClosing);$addHandler(document,"keydown",this._onKeyboardKeyDownHandler);removeProcessEventInfoHandler();this._isExternalDeletion=false;this._popup.focusEl=Ext.get(this._controlIdToFocus);var processConfiguration=this.getProcessConfiguration();this._popup.addListener("hide",this._onHidePopupDelegate);var time={projectID:this._projectID,assignableID:this._assignableID,activityID:this._activityID,timeID:this._timeID,spent:this._spent,remain:this._remain,description:this._description,date:this._date,userID:this._userID,customFields:this.get_CF()};this._popup.show({Time:time,Roles:this.getRoles(),CustomFieldValues:this.get_CF(),CustomFields:processConfiguration.CustomFields,DescriptionEnabled:processConfiguration.DescriptionEnabled,DescriptionRequired:processConfiguration.DescriptionRequired,TimeService:this._timeService,TimeId:this._timeID,Id:this.get_id()});},getProcessConfiguration:function(){for(var i=0;i<processConfigurations.length;i++){if(processConfigurations[i].ID==this.get_PID()){return processConfigurations[i];}}
return null;},_findRole:function(roleId){for(var j=0;j<roles.length;j++){if(roles[j].ID==roleId)
return roles[j];}
return null;},_handleClosing:function(evt){if(evt.keyCode==27)
this._closePopup();if(evt.keyCode==13)
this._popup.doSave();},_initHandlers:function(){Page_InvalidControlToBeFocused=null;Current_TimeExtender=this._index;this.focus();addProcessEventInfoHandler();this._popup.removeListener("hide",this._onHidePopupDelegate);this.removeCustomHandlers();},_closePopup:function(){this._popup.hide();},_onTxtRemainKeyUp:function(sender,arg){if(!this._popup.isRemainWasChanged())
this._recalculateRemainValue();},_onRemainTimeChanged:function(remainTime){this.setRemainTime(remainTime);},setRemainTime:function(timeRemain){this._previousRemain=timeRemain;this._recalculateRemainValue();},_recalculateRemainValue:function(){var spentTime=NumberOperator.createNumber(this._popup.get_TimeSpent());if(isNaN(spentTime))
return;var remainValue=NumberOperator.positiveSub(NumberOperator.createNumber(this._previousRemain),NumberOperator.createNumber(this._popup.get_TimeSpent()));this._popup.set_TimeRemain(remainValue);this._popup.playAnimation(this._popup.get_TimeRemainControl(),'#FFEF42');},playChangeAnimation:function(element){this.playAnimation(element,'#FFEF42');},playDeleteAnimation:function(element){this.playAnimation(element,'#F05959');},playAnimation:function(element,color){var el=Ext.fly(element).highlight(color);},deleteTime:function(){if(this._timeID=='0'||this._timeID=='')
return;this._isExternalDeletion=true;this.get_element().disabled=true;this._timeService.deleteTime(this._timeID,this.get_id());},beforeSaveTime:function(){this._popup.enable(false);},accepSaveTime:function(time){this.get_element().value=time.spent;this._remain=time.remain;this._spent=time.spent;this._description=time.description;this._timeID=time.timeID;this.set_CF(time.customFields);this.raiseChangeEvent();this._closePopup();this.playChangeAnimation(this.get_element());var roleID=this._popup.get_SelectedRoleID();this._roleOptions[this._popup.get_SelectedRoleIndex()]=this._roleOptions[0];this._roleOptions[0]=roleID;},beforeTimeDelete:function(){this._popup.enable(false);},acceptDeletion:function(){this.setCurrent();this._remain="0";this._spent="0";this._description="";this._timeID="0";this.set_CF([]);this.get_element().value="0";this.raiseChangeEvent();if(!this._isExternalDeletion)
this._closePopup();else
this.get_element().disabled=false;this.playDeleteAnimation(this.get_element());},enableForm:function(enabled){if(this._isExternalDeletion)
return;this._popup.enable(enabled);},_onClosePopup:function(sender,arg){this._initHandlers();},removeCustomHandlers:function(){if(this._onKeyUpHandler!=null){this._popup.removeListener("spentTimeChanged",this._onKeyUpHandler);}
this._onKeyUpHandler=null;if(this._onKeyboardKeyDownHandler!=null)
$removeHandler(document,"keydown",this._onKeyboardKeyDownHandler);this._onKeyboardKeyDownHandler=null;},dispose:function(){if(this._onClickHandler){$removeHandler(this.get_element(),'click',this._onClickHandler);delete this._onClickHandler;}
if(this._onFocusHandler){$removeHandler(this.get_element(),'focus',this._onFocusHandler);delete this._onFocusHandler;}
if(this._onBlurHandler){$removeHandler(this.get_element(),'blur',this._onBlurHandler);delete this._onBlurHandler;}
if(Time_Extenders.length>0)
Time_Extenders=new Array();TimeSheetEnabled(false);Current_TimeExtender=0;TS.TD.callBaseMethod(this,'dispose');},get_DR:function(){return this._defaultRemain;},set_DR:function(value){this._defaultRemain=value;},get_DefaultRemain:function(){return this._defaultRemain;},set_DefaultRemain:function(value){this._defaultRemain=value;},get_R:function(){return this._remain;},set_R:function(value){this._remain=value;},get_Remain:function(){return this._remain;},set_Remain:function(value){this._remain=value;},get_S:function(){return this._spent;},set_S:function(value){this._spent=value;},get_Spent:function(){return this._spent;},set_Spent:function(value){this._spent=value;},get_CustomFieldRetreiver:function(){return this._customFieldRetreiver;},set_CustomFieldContainer:function(value){this._customFieldRetreiver=value;},get_A:function(){return this._assignableID;},set_A:function(value){this._assignableID=value;},get_AssignableID:function(){return this._assignableID;},set_AssignableID:function(value){this._assignableID=value;},get_P:function(){return this._projectID;},set_P:function(value){this._projectID=value;},get_PID:function(){return this._PID;},set_PID:function(value){this._PID=value;},get_userID:function(){return this._userID;},set_userID:function(value){this._userID=value;},get_CF:function(){return this._CF;},set_CF:function(value){this._CF=value;},get_ProjectID:function(){return this._projectID;},set_ProjectID:function(value){this._projectID=value;},get_T:function(){return this._timeID;},set_T:function(value){this._timeID=value;},get_TimeID:function(){return this._timeID;},set_TimeID:function(value){this._timeID=value;},get_CA:function(){return this._activityID;},set_CA:function(value){this._activityID=value;},get_CustomActivityID:function(){return this._activityID;},set_CustomActivityID:function(value){this._activityID=value;},get_D:function(){return this._date;},set_D:function(value){this._date=value;},get_Date:function(){return this._date;},set_Date:function(value){this._date=value;},get_RK:function(){return this._rowKey;},set_RK:function(value){this._rowKey=value;},get_RowKey:function(){return this._rowKey;},set_RowKey:function(value){this._rowKey=value;},get_DK:function(){return this._dayKey;},set_DK:function(value){this._dayKey=value;},get_DayKey:function(){return this._dayKey;},set_DayKey:function(value){this._dayKey=value;},get_DS:function(){return this._description;},set_DS:function(value){this._description=value;},get_Description:function(){return this._description;},set_Description:function(value){this._description=value;}}
TS.TD.registerClass('TS.TD',Sys.Component);;
/*TimeDetails.js*/
Ext.ns('TS');TS.TimeDetails=Ext.extend(Ext.util.Observable,{form:null,popupWindow:null,timeSpentControl:null,timeRemainControl:null,saveButton:null,cancelButton:null,deleteButton:null,customFieldsEditors:[],timeService:null,previusRemain:null,constructor:function(){this.addEvents({"hide":true});this.addEvents({"spentTimeChanged":true});this.addEvents({"remainTimeChanged":true});TS.TimeDetails.superclass.constructor.call(this);var items=this.getItems();this.saveButton=new Ext.Button({text:'Save',handler:Function.createDelegate(this,this.onSave)});this.cancelButton=new Ext.Button({text:'Cancel',handler:Function.createDelegate(this,this.onClose)});this.deleteButton=new Ext.Button({text:'Delete',handler:Function.createDelegate(this,this.onDelete)});this.rolesList.on('select',this.onRoleChange,this);this.form=new Ext.FormPanel({name:this.getTitle()+" Form",labelWidth:110,frame:false,bodyStyle:'padding:10px 10px 10px 10px',border:true,defaultType:'textfield',items:items});this.popupWindow=new Ext.Window({name:this.getTitle()+"Window",title:this.getTitle(),closable:true,plain:true,shadow:true,modal:true,width:480,renderTo:Ext.getBody(),resizable:false,closeAction:'hide',items:[this.form],buttons:[this.saveButton,this.cancelButton,this.deleteButton]});this.popupWindow.addListener("hide",Function.createDelegate(this,this._onHide));this.timeSpentControl.addListener("keyup",Function.createDelegate(this,this._onSpentTimeKeyUp));},_onHide:function(){this.fireEvent('hide',this.popupWindow);},enable:function(enabled){if(!enabled){this.popupWindow.disable();}
else{this.popupWindow.enable();}},doSave:function(){if(this.txtDescription.hasFocus)
return;if(!this.form.getForm().isValid())
return;var time=this.configuration.Time;time.spent=this.get_TimeSpent();time.remain=this.get_TimeRemain();time.description=this.get_Description();time.roleID=this.get_SelectedRoleID();time.customFields=this.get_CustomFields();this.userID=0;this.configuration.TimeService.saveTime(time,this.configuration.Id);},onSave:function(){return this.doSave();},onDelete:function(){this.configuration.TimeService.deleteTime(this.configuration.TimeId,this.configuration.Id);},getTitle:function(){return"Add/Edit Time";},getItems:function(){this.roleListStore=new Ext.data.JsonStore({fields:['ID','Name'],data:[]});this.rolesList=new Ext.form.ComboBox({id:"rolesList",fieldLabel:"Post Time As",store:this.roleListStore,displayField:"Name",valueField:"ID",typeAhead:true,mode:'local',triggerAction:"all",emptyText:"- Select Role -",selectOnFocus:true});this.txtDescription=new Ext.form.TextArea({name:'Description',xtype:'textarea',width:300,height:100,allowBlank:false,fieldLabel:"Description"});this.timeSpentControl=new Ext.form.NumberField({fieldLabel:'Time spent (h)',name:'Spent',allowBlank:false,allowDecimals:true,allowNegative:false,decimalSeparator:NumberOperator.get_decimalSeparator(),minValue:0.001,width:40,enableKeyEvents:true});this.timeRemainControl=new Ext.form.NumberField({fieldLabel:'Time remaining (h)',name:'Remain',allowBlank:false,allowDecimals:true,allowNegative:false,decimalSeparator:NumberOperator.get_decimalSeparator(),minValue:0,width:40});var items=[this.txtDescription,this.timeSpentControl,this.timeRemainControl,this.rolesList];return items;},onRoleChange:function(source){var timeID=this.savedRoleID==this.rolesList.getValue()?this.configuration.Time.timeID:0;if(timeID!=0)
WebMethods.GetTimeRemainAndSpendForTimeID(timeID,this.onGetRemainTimeCallback,null,this);else
WebMethods.GetTimeRemainAndSpendForAssignableAndRoleAndTime(0,this.configuration.Time.assignableID,this.rolesList.getValue(),this.onGetRemainTimeCallback,null,this);},onGetRemainTimeCallback:function(result,context){context.fireEvent("remainTimeChanged",Number(result[0])+Number(result[1]),context);},_onSpentTimeKeyUp:function(){this.fireEvent("spentTimeChanged",this);},setDisplayMode:function(field,displayMode){if(field.container){field.container.up('div.x-form-item').dom.style.display=displayMode;}},hideField:function(field){this.setDisplayMode(field,'none');},showField:function(field){this.setDisplayMode(field,'');},setRoleList:function(roles){if(roles.length<=1){this.hideField(this.rolesList);}
else{this.roleListStore.loadData(roles,false);this.showField(this.rolesList);this.rolesList.setValue(roles[0].ID);}},hide:function(){this.popupWindow.hide();},isValid:function(){var isValid=true;var form=this.form.getForm();form.items.each(function(item){isValid=isValid&&item.isValid();});return isValid;},getProperties:function(){var dictionary={};var form=this.form.getForm();form.items.each(function(item){var value=item.getValue();if(value instanceof Date){value=value.format("d-M-Y");}
dictionary[item.getName()]=value;});return dictionary;},onClose:function(){this.popupWindow.hide();},show:function(configuration){this.configuration=configuration;this.form.getForm().clearInvalid();this.setRoleList(configuration.Roles);this.processDescriptionField(configuration);this.addCustomFields(configuration.CustomFields,configuration.CustomFieldValues);this.popupWindow.show();this.popupWindow.center();this.popupWindow.enable();this.txtDescription.focus(false,500);var role=this.rolesList.getValue();if(role!=""&&role!=null){this.savedRoleID=this.rolesList.getValue();var timeID=this.configuration.Time.timeID;if(timeID!=0)
WebMethods.GetTimeRemainAndSpendForTimeID(timeID,this.onGetRemainTimeCallback,null,this);else
WebMethods.GetTimeRemainAndSpendForAssignableAndRoleAndTime(timeID,this.configuration.Time.assignableID,this.savedRoleID,this.onGetRemainTimeCallback,null,this);}},savedRoleID:null,removeCustomFieldEditors:function(){for(var i=0;i<this.customFieldsEditors.length;i++){this.form.remove(this.customFieldsEditors[i]);this.customFieldsEditors[i].destroy();}
this.customFieldsEditors=[];},addCustomFields:function(customFields,values){this.removeCustomFieldEditors();var fieldEditorFactory=new TS.CustomFieldEditorFactory();for(var i=0;i<customFields.length;i++){var customFieldDto=customFields[i];var fieldEditor=fieldEditorFactory.createEditor(customFieldDto);if(!fieldEditor)
continue;this.form.add(fieldEditor);this.customFieldsEditors.push(fieldEditor);if(!values)
continue;var value=values[customFieldDto.Name];if(value)
fieldEditor.setValue(value);}},processDescriptionField:function(configuration){this.txtDescription.allowBlank=!configuration.DescriptionRequired;if(configuration.DescriptionEnabled){this.showField(this.txtDescription);}
else{this.hideField(this.txtDescription);}},set_Description:function(value){this.txtDescription.setValue(value);},get_Description:function(){return this.txtDescription.getValue();},get_CustomFields:function(){var customFields={};for(var i=0;i<this.customFieldsEditors.length;i++){var customFieldEditor=this.customFieldsEditors[i];var value=customFieldEditor.getValue();if(value.dateFormat)
value=value.format(extJsDateFormat);customFields[customFieldEditor.DTO.Name]=value;}
return customFields;},set_TimeSpent:function(value){this.timeSpentControl.setValue(value);},get_TimeSpent:function(){return this.timeSpentControl.getValue();},playAnimation:function(control,color){var el=Ext.fly(control.el).highlight(color);},get_TimeRemainControl:function(){return this.timeRemainControl;},get_TimeSpentControl:function(){return this.timeSpentControl;},set_TimeRemain:function(value){this.previusRemain=value;this.timeRemainControl.setValue(value);},isRemainWasChanged:function(){return this.previusRemain!=this.get_TimeRemain();},get_TimeRemain:function(){return this.timeRemainControl.getValue();},set_SelectedRole:function(value){this.rolesList.setValue(value);},get_SelectedRoleID:function(){return this.rolesList.getValue();},get_SelectedRoleIndex:function(){return this.rolesList.getStore().find("ID",this.get_SelectedRoleID())},getOkButton:function(){return this.saveButton;},getCancelButton:function(){return this.cancelButton;},getDeleteButton:function(){return this.deleteButton;},hideDeleteButton:function(){this.deleteButton.hide();},showDeleteButton:function(){this.deleteButton.show();},beforeBinding:function(dictionary){}});;
/*TimeService.js*/
Ext.ns('TS');TS.TimeService=Ext.extend(Ext.util.Observable,{_onDeleteCallbackHandler:null,_onSaveCallbackHandler:null,constructor:function(config){this.addEvents({"beforeSave":true,"timeSaved":true,"timeDeleted":true,"beforeDeleted":true});this.listeners=config.listeners;this._onDeleteCallbackHandler=Function.createDelegate(this,this._onDeleteCallback);this._onSaveCallbackHandler=Function.createDelegate(this,this._onSaveCallback);TS.TimeService.superclass.constructor.call(this,config)},saveTime:function(time,id){this.time=time;this._id=id;this.fireEvent('beforeSave',this._id);WebMethods.SaveTime(time.projectID,time.assignableID,time.activityID,time.timeID,time.spent,time.remain,time.description,time.date,time.userID,time.roleID,time.customFields,this._onSaveCallbackHandler,null,this._id);},_onDeleteCallback:function(){this.fireEvent('timeDeleted',this._timeID,this._id);this._timeID=null;this._id=null;},_onSaveCallback:function(result){if(result[0]==''){this.time.timeID=result[1];this.fireEvent('timeSaved',this.time,this._id);this._time=null;this._id=null;}
else
alert('Error: '+result[0]);},deleteTime:function(timeId,id){this._timeID=timeId;this._id=id;this.fireEvent('beforeDeleted',this._timeID,this._id);WebMethods.DeleteTime(this._timeID,this._id,this._onDeleteCallbackHandler);}});;
/*CustomFieldEditorFactory.js*/
Type.registerNamespace('TS');TS.CustomFieldEditorFactory=function(){TS.CustomFieldEditorFactory.initializeBase(this);this.Text=0;this.ComboBox=1;this.CheckBox=2;this.URL=3;this.Date=4;this.RichText=5;this.Number=6;}
TS.CustomFieldEditorFactory.prototype={createEditor:function(customField){var editor=this.createEditorInner(customField);if(!editor)
return null;editor.DTO=customField;return editor;},createEditorInner:function(customField){var config={fieldLabel:customField.Name,allowBlank:!customField.Required};if(customField.FieldType==this.Text){return new Ext.form.TextField(config);}
if(customField.FieldType==this.ComboBox){var values=customField.Value.split("\r\n");var data=[];for(var i=0;i<values.length;i++){data.push([values[i],values[i]]);}
var store=new Ext.data.ArrayStore({id:0,fields:['ID','Value'],data:data});config.typeAhead=true;config.triggerAction='all';config.lazyRender=true;config.mode='local';config.store=store;config.valueField='ID';config.displayField='Value';config.emptyText="- Select Item -";return new Ext.form.ComboBox(config);}
if(customField.FieldType==this.RichText){config.width=300;config.height=150;return new Tp.controls.RichTextField(config);}
if(customField.FieldType==this.URL){var editor=new Tp.controls.UrlField(config);editor.getValue=function(){var v=Tp.controls.UrlField.superclass.getValue.call(this);return v;}
editor.validator=function(value){if(value&&value.length>0){var v=new RegExp();v.compile("^[A-Za-z]+://[A-Za-z0-9-_.]+(/)?(/[A-Za-z0-9-_%&\?\/.=#]+)?$");return v.test(value);}
return true;},editor.setValue("link\nhttp://");return editor;}
if(customField.FieldType==this.CheckBox){var editor=new Ext.form.Checkbox(config);editor.setValue=function(value){if(typeof(value)=='string')
value=value.toLowerCase();Ext.form.Checkbox.prototype.setValue.call(this,value);};return editor;}
if(customField.FieldType==this.Date){var editor=new Ext.form.DateField(config);return editor;}
if(customField.FieldType==this.Number){config.allowDecimals=false;config.allowNegative=false;config.minValue=0;return new Ext.form.NumberField(config);}}};
/*TaskBoard.js*/
Type.registerNamespace('Tp.Ajax.DragDrop');Tp.Ajax.DragDrop.DragBlockBehavior=function(){Tp.Ajax.DragDrop.DragBlockBehavior.initializeBase(this);this._mouseDownHandler=Function.createDelegate(this,this.mouseDownHandler);this._dataType='';this._dragHandle='';this._overCssClass='';this._normalCssClass='';this._data='';this._visual=null;this._targetControl=null;}
Tp.Ajax.DragDrop.DragBlockBehavior.prototype={get_dragDataType:function(){return this._dataType;},getDragData:function(context){return{element:this._targetControl,data:this._data};},get_dragMode:function(){return Sys.Preview.UI.DragMode.Copy;},onDragStart:function(){Sys.UI.DomElement.addCssClass(document.body,"disableSelection");},onDrag:function(){},onDragEnd:function(canceled){if(this._visual){document.body.removeChild(this._visual);this._visual=null;}
Sys.UI.DomElement.removeCssClass(document.body,"disableSelection");},initialize:function(){Tp.Ajax.DragDrop.DragBlockBehavior.callBaseMethod(this,'initialize');if(!this._dragHandle){this._dragHandle=this._targetControl;}
$addHandler(this._dragHandle,'mousedown',this._mouseDownHandler)},mouseDownHandler:function(ev){window._event=ev;if(window.getSelection)
window.getSelection().removeAllRanges();if(ev.button==2)return;this._visual=this._targetControl.cloneNode(true);this._visual.style.opacity='0.4';this._visual.style.filter='progid:DXImageTransform.Microsoft.BasicImage(opacity=0.4)';this._visual.style.zIndex=99999;document.body.appendChild(this._visual);var location=Sys.UI.DomElement.getLocation(this._targetControl);Sys.UI.DomElement.setLocation(this._visual,location.x,location.y);Sys.Preview.UI.DragDropManager.startDragDrop(this,this._visual,null);},dispose:function(){if(this._mouseDownHandler)
$removeHandler(this._dragHandle,'mousedown',this._mouseDownHandler);this._mouseDownHandler=null;this._dragHandle=null;Tp.Ajax.DragDrop.DragBlockBehavior.callBaseMethod(this,'dispose');},get_Type:function(){return this._dataType;},set_Type:function(value){this._dataType=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},get_DragHandle:function(){return this._dragHandle;},set_DragHandle:function(value){this._dragHandle=value;},get_Data:function(){return this._data;},set_Data:function(value){this._data=value;}}
Tp.Ajax.DragDrop.DragBlockBehavior.registerClass('Tp.Ajax.DragDrop.DragBlockBehavior',Sys.Component,Sys.Preview.UI.IDragSource);Tp.Ajax.DragDrop.DropBlockBehavior=function(){Tp.Ajax.DragDrop.DropBlockBehavior.initializeBase(this);this._dataType='';this._data='';this._targetControl=null;this._copyDragElement=null;}
Tp.Ajax.DragDrop.DropBlockBehavior.prototype={get_dropTargetElement:function(){return this._targetControl;},canDrop:function(dragMode,dataType,data){return this._dataType===dataType;},drop:function(dragMode,dataType,data){if(dataType==this._dataType&&data){var handler=this.get_events().getHandler('drop');data.cancel_move=false;if(handler){handler(this,data);}
this._targetControl.className=this._normalCssClass;if(data.cancel_move)return;if(this._copyDragElement){throw"copyDragElement is not used any more."}
else{this._targetControl.appendChild(data.element);}}},onDragEnterTarget:function(dragMode,dataType,data){if(dataType==this._dataType&&data){this._targetControl.className=this._overCssClass;}},onDragLeaveTarget:function(dragMode,dataType,data){if(dataType==this._dataType&&data){this._targetControl.className=this._normalCssClass;}},onDragInTarget:function(dragMode,dataType,data){},initialize:function(){Tp.Ajax.DragDrop.DropBlockBehavior.callBaseMethod(this,'initialize');Sys.Preview.UI.DragDropManager.registerDropTarget(this);},dispose:function(){Sys.Preview.UI.DragDropManager.unregisterDropTarget(this);Tp.Ajax.DragDrop.DropBlockBehavior.callBaseMethod(this,'dispose');},add_drop:function(handler){this.get_events().addHandler('drop',handler);},remove_drop:function(handler){this.get_events().removeHandler('drop',handler);},get_Type:function(){return this._dataType;},set_Type:function(value){this._dataType=value;},get_OverCssClass:function(){return this._overCssClass;},set_OverCssClass:function(value){this._overCssClass=value;},get_NormalCssClass:function(){return this._normalCssClass;},set_NormalCssClass:function(value){this._normalCssClass=value;},get_Data:function(){return this._data;},set_Data:function(value){this._data=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},set_CopyDragElement:function(value){throw"Not impelemented";this._copyDragElement=value;},get_CopyDragElement:function(value){return this._copyDragElement;}}
Tp.Ajax.DragDrop.DropBlockBehavior.registerClass('Tp.Ajax.DragDrop.DropBlockBehavior',Sys.Component,Sys.Preview.UI.IDropTarget);;
/*TotalTimeLabelBehavior.js*/
Type.registerNamespace('TS');TS.TL=function(){TS.TL.initializeBase(this);this._calculationType="week";this._dayKey=0;this._rowKey=0;this._extenders=new Array();this._targetControl=null;}
TS.TL.prototype={initialize:function(){TS.TL.callBaseMethod(this,'initialize');if(typeof(Time_Extenders)!="undefined"){for(var i=0;i<Time_Extenders.length;i++){if(Time_Extenders[i].get_RowKey()==this._rowKey&&this._calculationType.indexOf("week")>=0)
this._addExtender(Time_Extenders[i]);if(Time_Extenders[i].get_DayKey()==this._dayKey&&this._calculationType=="day")
this._addExtender(Time_Extenders[i]);if(this._calculationType.indexOf("total")>=0)
this._addExtender(Time_Extenders[i]);}}
this.calculate();Sys.WebForms.PageRequestManager.getInstance()._registerDisposeScript(timeSheetPanel,"$find(\u0027"+this.get_id()+"\u0027).dispose();");},get_element:function(){return this._targetControl;},get_C:function(){return this._targetControl;},set_C:function(value){this._targetControl=value;},get_TargetControl:function(){return this._targetControl;},set_TargetControl:function(value){this._targetControl=value;},_addExtender:function(extender){this._extenders.push(extender);extender.add_change(Function.createDelegate(this,this._onChangeChildValue));},_onChangeChildValue:function(sender,arg){this.calculate();},calculate:function(){var total=0;var remain_total=0;var day=0;var row=0;for(var i=0;i<this._extenders.length;i++){var spentValue=NumberOperator.createNumber(this._extenders[i].get_Spent());var defaultRemain=NumberOperator.createNumber(this._extenders[i].get_DefaultRemain());if(this._calculationType.indexOf("remain")<0){total=NumberOperator.sum(spentValue,total);}
if(this._calculationType.indexOf("week_remain")>=0){if((spentValue>0||(spentValue==0&&defaultRemain>0))&&day<=i){day=i;total=NumberOperator.createNumber(this._extenders[i].get_Remain());if(spentValue==0&&defaultRemain>0)
total=defaultRemain;}}
if(this._calculationType.indexOf("total_remain")>=0){if(row!=this._extenders[i].get_RowKey()){row=this._extenders[i].get_RowKey();total=NumberOperator.sum(remain_total,total);remain_total=0;day=0;}
if((spentValue>0||(spentValue==0&&defaultRemain>0))&&day<=i){day=i;remain_total=NumberOperator.createNumber(this._extenders[i].get_Remain());if(spentValue==0&&defaultRemain>0)
remain_total=defaultRemain;}}}
var result=NumberOperator.sum(total,remain_total);this.get_element().innerHTML=NumberOperator.toString(result);},dispose:function(){TS.TL.callBaseMethod(this,'dispose');},get_RowKey:function(){return this._rowKey;},set_RowKey:function(value){this._rowKey=value;},get_R:function(){return this._rowKey;},set_R:function(value){this._rowKey=value;},get_DayKey:function(){return this._dayKey;},set_DayKey:function(value){this._dayKey=value;},get_D:function(){return this._dayKey;},set_D:function(value){this._dayKey=value;},get_CalculationType:function(){return this._calculationType;},set_CalculationType:function(value){this._calculationType=value;},get_T:function(){return this._calculationType;},set_T:function(value){this._calculationType=value;}}
TS.TL.registerClass('TS.TL',Sys.Component);;
/*BatchChanger.js*/
Type.registerNamespace("Tp.Operations");Tp.Operations.BatchChanger=function()
{Tp.Operations.BatchChanger.initializeBase(this);this._currentLink=null;this._entityID=null;}
Tp.Operations.BatchChanger.prototype={initialize:function()
{},change:function(lnk,entityID)
{this._currentLink=lnk;this._entityID=entityID;this.showPrompt();return false;},showPrompt:function()
{var handler=Function.createDelegate(this,this.onProceedWithChanging)
Ext.MessageBox.prompt(this.getTitle(),this.getMessage(),handler);},onProceedWithChanging:function(btn,text)
{if(btn=="cancel")
return;if(text==null||text.trim()=="")
return;progressDialog.show("initializing changing process");this.getServiceMethod()(this._entityID,text,function(response,context){context.onStartedChange(response);},null,this);},getServiceMethod:function()
{},onStartedChange:function(response)
{if(response.Error!='')
{progressDialog.hide();alert(response.Error);this.showPrompt();return;}
if(!response.IsRunning)
{this.OnCompleteChanging(this);return;}
progressDialog.setCompleteHandler(this.OnCompleteChanging,this);progressDialog.monitorTaskExecution(response);},OnCompleteChanging:function(batchChanger)
{progressDialog.hide();progressDialog.resetCompleteHandler();batchChanger._currentLink.postBack();},getTitle:function()
{return"Name";},getMessage:function()
{return"Other entry instead of deleted one should be assigned to related entities.<br/>Please type its name below";},dispose:function()
{Tp.Operations.BatchChanger.callBaseMethod(this,'dispose');}}
Tp.Operations.BatchChanger.registerClass('Tp.Operations.BatchChanger',Sys.Component);;
/*PrioritySeverity.js*/
var priorityChanger=null;var severityChanger=null;Tp.Operations.PriorityBatchChanger=function()
{Tp.Operations.PriorityBatchChanger.initializeBase(this);}
Tp.Operations.PriorityBatchChanger.prototype={getTitle:function(){return"Priority Name";},getServiceMethod:function(){return Administration.StartChangingPriority;}}
Tp.Operations.PriorityBatchChanger.registerClass('Tp.Operations.PriorityBatchChanger',Tp.Operations.BatchChanger);Tp.Operations.SeverityBatchChanger=function()
{Tp.Operations.SeverityBatchChanger.initializeBase(this);}
Tp.Operations.SeverityBatchChanger.prototype={getTitle:function(){return"Severity Name";},getServiceMethod:function(){return Administration.StartChangingSeverity;}}
Tp.Operations.SeverityBatchChanger.registerClass('Tp.Operations.SeverityBatchChanger',Tp.Operations.BatchChanger);Sys.Application.add_init(function(){severityChanger=$create(Tp.Operations.SeverityBatchChanger,{id:'severityChanger'},null,null,null);});Sys.Application.add_init(function(){priorityChanger=$create(Tp.Operations.PriorityBatchChanger,{id:'priorityChanger'},null,null,null);});;
/*Workflow.js*/
Tp.Operations.EntityStateBatchChanger=function(){Tp.Operations.EntityStateBatchChanger.initializeBase(this);}
Tp.Operations.EntityStateBatchChanger.prototype={getTitle:function(){return"Entity State Name";},getServiceMethod:function(){return Administration.StartChangingState;},getMessage:function(){return"<span style='color:red'>Please note:</span> Assignments and efforts may be cleared up if this state has an Role (Ex. you have User Story workflow with <b>Open</b> and <b>Done</b> states, <b>Open</b> state has <b>Developer</b> role. The assigments and efforts for <b>Developer</b> will be deleted if you delete <b>Open</b> state). <br/> <br/> Type another entity state name instead of deleted state (Ex. Open)";}}
Tp.Operations.EntityStateBatchChanger.registerClass('Tp.Operations.EntityStateBatchChanger',Tp.Operations.BatchChanger);Tp.Operations.RoleChanger=function(){Tp.Operations.RoleChanger.initializeBase(this);}
Tp.Operations.RoleChanger.prototype={getTitle:function(){return"Role Name";},getServiceMethod:function(){return Administration.StartChangingRole;},getMessage:function(){return"<span style='color:red'>Please note:</span> Usage of deleted role will be replaced with pointed below. <br/> <br/> Type another role name instead of deleted role.";}}
Tp.Operations.RoleChanger.registerClass('Tp.Operations.RoleChanger',Tp.Operations.BatchChanger);Sys.Application.add_init(function()
{entityStateChanger=$create(Tp.Operations.EntityStateBatchChanger,{id:'entityStateChanger'},null,null,null);roleChanger=$create(Tp.Operations.RoleChanger,{id:'roleChanger'},null,null,null);});;
/*SampleProjectGenerator.js*/
Type.registerNamespace("Tp.Operations");Tp.Operations.SampleProjectGenerator=function()
{Tp.Operations.SampleProjectGenerator.initializeBase(this);}
Tp.Operations.SampleProjectGenerator.prototype={initialize:function(){this.projectId=0;},start:function(){progressDialog.width=500;progressDialog.interval=2000;progressDialog.show("Initializing data");Administration.GenerateSampleProject(function(response,context){context.onStarted(response);},null,this);},onStarted:function(response){if(response.Error!=''){progressDialog.hide();alert(response.Error);return;}
if(!response.IsRunning){this.OnCompleteGenerating(this);return;}
progressDialog.setCompleteHandler(this.OnCompleteGenerating,this);progressDialog.monitorTaskExecution(response);},OnCompleteGenerating:function(SampleProjectGenerator){progressDialog.resetCompleteHandler();progressDialog.setMessage('Redirecting to the generated sample project...');Administration.GetLastGeneratedProjectInfo(function(response){if(!RedirectToProjectDashboard(response.ProjectID)){progressDialog.hide();Ext.MessageBox.show({title:'Failed to generate sample project',msg:response.ErrorMessage,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});}},null,this);},dispose:function(){Tp.Operations.SampleProjectGenerator.callBaseMethod(this,'dispose');}}
Tp.Operations.SampleProjectGenerator.registerClass('Tp.Operations.SampleProjectGenerator',Sys.Component);;
/*AjaxNetFixes.js*/
if(Sys.Browser.agent===Sys.Browser.Safari){Sys.Preview.UI.DragDropManager._getInstance().getScrollOffset=Sys.Preview.UI.IEDragDropManager.prototype.getScrollOffset
Sys.Preview.UI.DragDropManager._getInstance()._autoScroll=function(){}};
/*TagsTextBox.js*/
Type.registerNamespace("Tp.Atlas.Extenders");Tp.Atlas.Extenders.TagsTextBox=function(){Tp.Atlas.Extenders.TagsTextBox.initializeBase(this);this._lastChangeTime=0;this._parsTagsRe=new RegExp("\"([^\"]+)\"|(\\S+)\\s?","ig");this._container=null;this._clearButton=null;this._tagsLabel=null;this._ToggleButton=null;this._tagsTextBox=null;this._filterTextBox=null;this._isAllTagsLoading=false;this._isAllTagsLoaded=false;this._tagsData=null;this._tagBundleData=null;this._tagsRank={};this._tagsCase={};this._tagsCloud=[];this._bundles=[];this._tagsApplied=null;this._tagsCloudContainer=null;this._onTagsTextBoxChangeDelegate=null;this._onFilterTextBoxChangeDelegate=null;this._onClearButtonClickDelegate=null;this._onSortDelegate=null;this._toggleBundlesDelegate=null;this._SortByNameAZDelegate=null;this._SortByNameZADelegate=null;this._SortByRankDelegate=null;this._SortDirecton="rank";this._ShowBundles=false;this._projectIDs=[];this._elementToExpandCollapse=null;this._textChangeHandler=function(){};this._alwaysVisible=false;}
Tp.Atlas.Extenders.TagsTextBox.prototype={initialize:function(){Tp.Atlas.Extenders.TagsTextBox.callBaseMethod(this,'initialize');if(this._ToggleButton){Ext.fly(this._ToggleButton).on({'click':function(){this.toggleContainer();},scope:this});}
var container=Ext.get(this._container);this._filterTextBox=container.query('input[class*= tagsLookup]')[0];this._onTagsTextBoxChangeDelegate=Function.createDelegate(this,this.onTagsTextBoxChange);this._onFilterTextBoxChangeDelegate=Function.createDelegate(this,this.onFilterTextBoxChange);this._onClearButtonClickDelegate=Function.createDelegate(this,this.onClearButtonClick);this._SortByNameAZDelegate=Function.createDelegate(this,this.SortByNameAZ);this._SortByNameZADelegate=Function.createDelegate(this,this.SortByNameZA);this._SortByRankDelegate=Function.createDelegate(this,this.SortByRank);this._onSortDelegate=Function.createDelegate(this,this.onSort);this._toggleBundlesDelegate=Function.createDelegate(this,this.toggleBundles);this.initTagsData();this.initBundlesData();this.RenderTagsApplied();this.RenderTagsCloud();this.refreshTagsLabel();container.select('.sortByRank').on('click',this.onSort.createDelegate(this,['rank']));container.select('.sortByName').on('click',this.onSort.createDelegate(this,['name']));container.select('.showBundles').on('click',this.toggleBundles.createDelegate(this,['show']));container.select('.hideBundles').on('click',this.toggleBundles.createDelegate(this,['hide']));$addHandler(this._tagsTextBox,"keyup",this._onTagsTextBoxChangeDelegate);$addHandler(this._filterTextBox,"keyup",this._onFilterTextBoxChangeDelegate);$addHandler(this._clearButton,"click",this._onClearButtonClickDelegate);if(this._alwaysVisible==true){this._saveState=function(){};Ext.fly(this._elementToExpandCollapse).setDisplayed(true);}else{this._restoreState();}},_tagsTextBox_isDisplayedCookieName:'tagsTextBox_isDisplayedCookie',_restoreState:function(){var showHideCookie=Ext.util.Cookies.get(this._tagsTextBox_isDisplayedCookieName);var isDisplayed=showHideCookie=='true';Ext.fly(this._elementToExpandCollapse).setDisplayed(isDisplayed);},toggleContainer:function(){var expander=Ext.get(this._elementToExpandCollapse);expander.setVisibilityMode(Ext.Element.DISPLAY);expander.toggle();this.refreshTagsLabel();this._saveState();},_saveState:function(){Ext.util.Cookies.set(this._tagsTextBox_isDisplayedCookieName,Ext.fly(this._elementToExpandCollapse).isDisplayed(),new Date().add(Date.YEAR,1));},refreshTagsLabel:function(){if(this._tagsLabel){var tagsLabel=Ext.fly(this._tagsLabel);tagsLabel.setVisibilityMode(Ext.Element.VISIBILITY);if(tagsLabel.isVisible()){tagsLabel.hide();}
else{tagsLabel.update(this._tagsTextBox.value);tagsLabel.show();}}},toggleBundles:function(key){this._ShowBundles=key=="show";this.RenderTagsCloud();},onSort:function(arg){var tags=this.get_tagsCloud();if(arg=="name"){if(this._SortDirecton=="za"){this._SortDirecton="az";}
else{this._SortDirecton="za";}}
else if(arg=="rank"){this._SortDirecton="rank";}
this.RenderTagsCloud();this.FilterTagsCloud(this._filterTextBox.value);return false;},sortTags:function(tags){switch(this._SortDirecton){case'az':tags.sort(this._SortByNameAZDelegate);return;case'za':tags.sort(this._SortByNameZADelegate);return;}
tags.sort(this._SortByRankDelegate);},dispose:function(){Tp.Atlas.Extenders.TagsTextBox.callBaseMethod(this,'dispose');if(this._onTagsTextBoxChangeDelegate){$removeHandler(this._tagsTextBox,"keyup",this._onTagsTextBoxChangeDelegate);}
if(this._onFilterTextBoxChangeDelegate){$removeHandler(this._filterTextBox,"keyup",this._onFilterTextBoxChangeDelegate);}
if(this._onClearButtonClickDelegate){$removeHandler(this._clearButton,"click",this._onClearButtonClickDelegate);}
this._onTagsTextBoxChangeDelegate=null;this._onFilterTextBoxChangeDelegate=null;this._onClearButtonClickDelegate=null;this._tagsTextBox=null;this._filterTextBox=null;},initTagsData:function(){this._tagsCase={};this._tagsCloud=[];this._tagsRank={};for(var tag in this._tagsData){var rank=this._tagsData[tag];this._tagsCase[tag.toLowerCase()]=tag;tag=tag.toLowerCase();if(!Array.contains(this._tagsCloud,tag)){Array.add(this._tagsCloud,tag);this._tagsRank[tag]='rank0';for(var i=10;i>0;i--){if(rank>i*2){this._tagsRank[tag]='rank'+i;break;}}}}},initBundlesData:function(){var bundleCache={};for(var i=0;i<this._tagBundleData.length;i++){var item=this._tagBundleData[i];if(!item)continue;var bundle=bundleCache[item.TagBundleName];if(!bundle){bundle={'TagBundleID':item['TagBundleID'],'TagBundleName':item['TagBundleName'],'Tags':[]};bundleCache[item.TagBundleName]=bundle;Array.add(this._bundles,bundle);}
if(!Array.contains(bundle.Tags,item['TagName'])){Array.add(bundle.Tags,item['TagName'])}}},RefreshTagsApplied:function(){this.set_tagsApplied(this.parseTags());this.highlightAppliedTags();},RenderTagsApplied:function(){var tags=this.get_tagsApplied();var tagsStr='';var tagsCase=this._tagsCase;Array.forEach(tags,function(item){item=tagsCase[item]?tagsCase[item]:item;tagsStr=tagsStr?tagsStr+' ':'';tagsStr+=item.match(new RegExp('\\W'))?'"'+item+'"':item;});this._tagsTextBox.value=tagsStr;this._textChangeHandler();},toggleTagApplied:function(tag){tag=tag.toLowerCase();var tagsApplied=this.get_tagsApplied();if(Array.contains(tagsApplied,tag))
Array.remove(tagsApplied,tag)
else
Array.add(tagsApplied,tag)},highlightAppliedTags:function(){var tagsApplied=this.get_tagsApplied();var elements=Tp.collections.createMixedCollection(Ext.get(this._tagsCloudContainer).query('span'));elements.each(function(item){if(Array.contains(tagsApplied,item.innerText.toLowerCase())){Ext.fly(item).setStyle('backgroundColor','#92C184');Ext.fly(item).setStyle('color','#FFF');Ext.fly(item).setStyle('textDecoration','none');}
else{Ext.fly(item).setStyle('backgroundColor','');Ext.fly(item).setStyle('color','');}});},RenderBundles:function(container){var expandAllBundles=this._bundles.length<11;for(var i=0;i<this._bundles.length;i++){var bundle=this._bundles[i];if(!bundle||!bundle.Tags||(bundle.Tags.length==0))continue;if(bundle.expand==undefined)
bundle.expand=expandAllBundles;this.RenderBundle(container,bundle,bundle.expand)
if(bundle.expand)
this.RenderTags(container,bundle.Tags);}},RenderBundle:function(container,bundle,expand){var link=document.createElement('span');var linkEl=Ext.get(link);var nameEncoded=Ext.util.Format.htmlEncode(bundle.TagBundleName);linkEl.update(' '+nameEncoded+(expand?' > ':' + '));linkEl.addClass('tagCloudBundle');link.bundle=bundle;$addHandler(link,"click",Function.createDelegate(this,this.toggleBundle));container.appendChild(link);},RenderTagsCloud:function(renderInvisible){var container=Ext.get(this._tagsCloudContainer);container.update("");if(this._ShowBundles){this.RenderBundles(container);}
else{var tags=this.get_tagsCloud();this.RenderTags(container,tags,renderInvisible);}
this.highlightAppliedTags();},RenderTags:function(tagsCloudContainer,tags,renderInvisible){this.sortTags(tags);for(var i=0;i<tags.length;i++){var tag=this._tagsCase[tags[i]]?this._tagsCase[tags[i]]:tags[i];var link=this.createTagLink(tag);if(renderInvisible){link.style.display='none';}
var separator=document.createTextNode(' ');tagsCloudContainer.dom.appendChild(separator);tagsCloudContainer.appendChild(link);}},RenderLoadingText:function(){var tagsCloudContainer=Ext.get(this._tagsCloudContainer);tagsCloudContainer.update("");var spanEl=Ext.get(document.createElement('span'));spanEl.update('Loading complete tags list...');tagsCloudContainer.insertHtml('beforeEnd','&nbsp;');tagsCloudContainer.appendChild(spanEl);tagsCloudContainer.insertHtml('beforeEnd','&nbsp;');},createTagLink:function(tag){var link=document.createElement('span');var linkEl=Ext.get(link);linkEl.update(Ext.util.Format.htmlEncode(tag));linkEl.addClass(this.get_tagRankClass(tag));$addHandler(link,"click",Function.createDelegate(this,this.toggleTag));return link;},toggleTag:function(e){this.toggleTagApplied(e.target.innerText);this.RenderTagsApplied();this.highlightAppliedTags();},toggleBundle:function(e){var bundle=e.target.bundle;if(bundle)
bundle.expand=!bundle.expand;this.RenderTagsCloud();},onTagsTextBoxChange:function(e){var thisChangeTime=new Date().getTime();if((thisChangeTime-this._lastChangeTime)<500)
return;this._lastChangeTime=thisChangeTime;setTimeout(Function.createDelegate(this,this.RefreshTagsApplied),500);},onClearButtonClick:function(e){this._filterTextBox.value='';this.FilterTagsCloud('');},onFilterTextBoxChange:function(e){if(!this._isAllTagsLoaded){if(!this._isAllTagsLoading){this.LoadAllTags();}
return;}
this.FilterTagsCloud(this._filterTextBox.value);},FilterTagsCloud:function(filter){var count=0;filter=filter.toLowerCase();var collection=Tp.collections.createMixedCollection(Ext.DomQuery.select(':not(.tagCloudBundle)',this._tagsCloudContainer));collection.each(function(item,index){if(count<100&&item.innerText.toLowerCase().indexOf(filter)==0){Ext.fly(item).setStyle('display','inline');count++;}
else{Ext.fly(item).setStyle('display','none');}});},LoadAllTags:function(){this.RenderLoadingText();this._isAllTagsLoading=true;WebMethods.GetAllTagsForProjects(this._projectIDs,Function.createDelegate(this,this.OnAllTagsLoaded),function(e){alert(e.get_message());});},OnAllTagsLoaded:function(result){this._isAllTagsLoaded=true;this._tagsData=result;this.initTagsData();this.RenderTagsCloud(true);this.onFilterTextBoxChange();},parseTags:function(){var currentTagsStr=this._tagsTextBox.value;var tags=[];var result=currentTagsStr.match(this._parsTagsRe);if(result){for(var i=0;i<result.length;i++){var tag=this.clearTag(result[i]);if(!Array.contains(tags,tag))
Array.add(tags,tag);}}
return tags;},setTextChangeHandler:function(handler){this._textChangeHandler=handler;},get_tagsCloud:function(){return this._tagsCloud;},set_alwaysVisible:function(value){this._alwaysVisible=new Boolean(value);},get_alwaysVisible:function(){return this._alwaysVisible;},get_tagsApplied:function(){if(!this._tagsApplied)this._tagsApplied=[];return this._tagsApplied;},set_tagsApplied:function(value){this._tagsApplied=this.toLowerCase(value);},get_tagRankClass:function(tag){tag=tag.toLowerCase();var cssClass=this._tagsRank[tag];return cssClass?cssClass:'';},get_tagsData:function(){return this._tagsData;},set_tagsData:function(value){this._tagsData=value;},get_tagBundleData:function(){return this._tagBundleData;},set_tagBundleData:function(value){this._tagBundleData=value;},get_tagsCloudContainer:function(){return this._tagsCloudContainer;},set_tagsCloudContainer:function(value){this._tagsCloudContainer=value;},clearTag:function(tag){return this.removeSpaces(tag).replace(/^"|"$/g,"").replace(/^\s+|\s+$/g,"");},removeSpaces:function(str){return str.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"");},get_tagsTextBox:function(){return this._tagsTextBox;},set_tagsTextBox:function(value){this._tagsTextBox=value;},get_ToggleButton:function(){return this._ToggleButton;},set_ToggleButton:function(value){this._ToggleButton=value;},get_clearButton:function(){return this._clearButton;},set_clearButton:function(value){this._clearButton=value;},get_elementToExpandCollapse:function(){return this._elementToExpandCollapse;},set_elementToExpandCollapse:function(value){this._elementToExpandCollapse=value;},get_tagsLabel:function(){return this._tagsLabel;},set_tagsLabel:function(value){this._tagsLabel=value;},get_container:function(){return this._container;},set_container:function(value){this._container=value;},get_projectIDs:function(){return this._projectIDs;},set_projectIDs:function(value){this._projectIDs=value;},toLowerCase:function(strs){var lowerCaseStrs=[];if(strs)
Array.forEach(strs,function(item){Array.add(lowerCaseStrs,item.toLowerCase())})
return lowerCaseStrs;},SortByNameAZ:function(tag1,tag2){var s1=tag1.replace(/\W+/,'').toLowerCase();var s2=tag2.replace(/\W+/,'').toLowerCase();if(s1>s2){return 1;}
else if(s1<s2){return-1;}
else{return 0;}},SortByNameZA:function(tag1,tag2){return this.SortByNameAZ(tag1,tag2)*-1;},SortByRank:function(tag1,tag2){var rank1=this._tagsData[this._tagsCase[tag1]];var rank2=this._tagsData[this._tagsCase[tag2]];if(rank1>rank2)
return-1;if(rank1<rank2)
return 1;return this.SortByNameAZ(tag1,tag2);}}
Tp.Atlas.Extenders.TagsTextBox.registerClass('Tp.Atlas.Extenders.TagsTextBox',Sys.Component);if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();;
/*LongRunningTask.js*/
Ext.namespace('Tp.components');Tp.components.LongRunningTask=Ext.extend(Object,{_items:null,_itemsPerIteration:null,_itemHandler:null,_index:-1,_disposed:false,interval:600,constructor:function(items,itemHandler,finalHandler,itemsPerIteration){Tp.util.validateForNulls([items,itemHandler]);this._items=items;this._itemHandler=itemHandler;this._finalHandler=finalHandler||function(){};this._itemsPerIteration=itemsPerIteration||50;},init:function(){if(this._disposed){throw new Error("Task is already disposed. You cannot run it again.");}
Ext.TaskMgr.start(this);},dispose:function(){this._disposed=true;Ext.TaskMgr.stop(this);},isNoItemsToProcess:function(){return this._index==this._items.length-1;},_stop:function(){this._finalHandler();this.dispose();},_run:function(){if(this.isNoItemsToProcess()){this._stop();return;}
var startFrom=this._index+1;var endAt=startFrom+this._itemsPerIteration;for(var i=startFrom;i<endAt;i++){if(i>this._items.length-1){this._stop();return;}
this._index=i;this._itemHandler(this._items[i],i);}},run:function(){if(this._disposed){return;}
try{this._run();}
catch(e){this._stop();throw new Error(String.format("LongRunningTask:{0}",e.message));}}});;
/*Model.js*/
Ext.ns('Tp.data');Tp.data.EntityType=function(id,name,title){this.id=id;this.name=name;this.title=title;};Tp.data.EntityState=function(id,name,nextStates){this.id=id;this.name=name;this.nextStates=nextStates||[];};Tp.data.Process=function(id,name,entityTypes,entityStates){this.id=id;this.name=name;this.entityTypes=entityTypes;this.entityStates=entityStates;};Tp.data.Entity=function(id,entityType,name){this.id=id;this.entityType=entityType;this.name=name;this.priorityName='';this.priorityImportance=0;};;
/*Controller.js*/
Ext.ns('Tp.controls.kanbanboard');Tp.controls.kanbanboard.Controller=Ext.extend(Ext.util.Observable,{service:null,project:null,process:null,uxKanbanBoardPanel:null,swimlanes:[],uxbacklog:null,entityHashmap:null,uxswimlanes:[],enabled:true,renderedItemsInBacklog:0,itemsCountPerRendering:20,userStoryEntityPopup:null,constructor:function(project,process,preferences){if(!project){throw new Error('Project not specified');}
if(!process){throw new Error('Process not specified');}
Tp.controls.kanbanboard.Controller.superclass.constructor.call(this);this.service=Tp.Web.PageServices.KanbanBoard.KanbanBoardService;this.project=project;this.process=process;this.entityHashmap={};this.uxswimlanes=[];this.addEvents({"loaded":true,"statechanged":true});this.swimlanes=this.applyPreferences(this.initSwimlanes(),preferences||{order:[],limits:{}});this.preferences=preferences;},preferences:null,load:function(){this.service.loadEntities(this.project.id,[],this.loadEntities_onSuccess.createDelegate(this),this.loadEntities_onFailure.createDelegate(this));},enable:function(){this.enabled=true;},disable:function(){this.enabled=false;},savePreferences:function(){var preferences={order:[],limits:{},isCollapsed:null};var plannedSwimlane=this.swimlanes.plannedSwimlane;if(plannedSwimlane.limit>0){preferences.limits[plannedSwimlane.id]=plannedSwimlane.limit;}
for(var n=0;n<this.swimlanes.length;n++){var swimlane=this.swimlanes[n];preferences.order.push(swimlane.id);if(swimlane.limit>0){preferences.limits[swimlane.id]=swimlane.limit;}}
this.service.savePreferences(this.project.id,preferences);},setBacklog:function(backlog){this.uxbacklog=backlog;backlog.on("enterdrag",this.onEnterDrag,this);backlog.on("begindrag",this.onBeginDrag,this);backlog.on("enddrag",this.onEndDrag,this);backlog.on("dropaccept",this.onDropAccept,this);backlog.on("backlogexpand",this.onBacklogExpand,this);backlog.on("destroy",function(cmp){this.uxbacklog=null;},this);backlog.on("backlogFilled",function(){if(this.uxKanbanBoardPanel){this.uxKanbanBoardPanel.isReloadPossible=true;}},this);},setFilter:function(filter){this.filter=filter;},setKanbanBoardPanel:function(uxKanbanBoardPanel){this.uxKanbanBoardPanel=uxKanbanBoardPanel;this.uxKanbanBoardPanel.on("reload",this.onReload,this);},addSwimlane:function(uxswimlane){uxswimlane.on("enterdrag",this.onEnterDrag,this);uxswimlane.on("begindrag",this.onBeginDrag,this);uxswimlane.on("enddrag",this.onEndDrag,this);uxswimlane.on("dropaccept",this.onDropAccept,this);uxswimlane.on("destroy",function(cmp){this.uxswimlanes.remove(cmp);},this);this.uxswimlanes.push(uxswimlane);this.fillItemContainer(uxswimlane,this.entityHashmap[uxswimlane.swimlane.name]||[],true);},onEnterDrag:function(itemContaier,item,entity){this.uxbacklog.highlighDisabled(item,entity);for(var n=0;n<this.uxswimlanes.length;n++){this.uxswimlanes[n].highlighDisabled(item,entity);}},onReload:function(){this.entityHashmap={};this.uxbacklog.removeAll();for(var n=0;n<this.uxswimlanes.length;n++){this.uxswimlanes[n].removeAll();}
this.load();},onBeginDrag:function(itemContaier,item,entity){},onEndDrag:function(itemContaier,item,entity){this.uxbacklog.highlighDisabled(item,null);for(var n=0;n<this.uxswimlanes.length;n++){this.uxswimlanes[n].highlighDisabled(item,null);}},onBacklogExpand:function(){this.loadBacklogEntities();this.uxbacklog.region.panel.un("expand",this.uxbacklog.setExpandListener,this.uxbacklog);},onDropAccept:function(swimlane,item,entity,entityState){var ctx={item:item,entity:entity,entityState:entityState};this.service.changeEntityState(entity.id,entityState.id,this.changeEntityState_onSuccess.createDelegate(this),this.changeEntityState_onFailure.createDelegate(this),ctx);for(var swimlaneName in this.entityHashmap){var foundSwimlaneUI=this.getSwimlaneByName(swimlaneName);if(typeof(foundSwimlaneUI)==undefined)continue;if(foundSwimlaneUI.items==undefined||foundSwimlaneUI.items.items==undefined)
continue;this.entityHashmap[foundSwimlaneUI.swimlane.name]=[];for(var i=0;i<foundSwimlaneUI.items.items.length;i++){var item=foundSwimlaneUI.items.items[i];this.entityHashmap[foundSwimlaneUI.swimlane.name].push(item.entity);}}},getSwimlaneByName:function(swimlaneName){for(var i=0;i<this.uxswimlanes.length;i++){if(this.uxswimlanes[i].swimlane.name==swimlaneName){return this.uxswimlanes[i];}}
if(this.uxbacklog.swimlane.name==swimlaneName)
return this.uxbacklog;return undefined;},initSwimlanes:function(){var id=0;var Swimlane=function(name,title,process){this.id='x-'+id++;this.name=name;this.title=title||'<untitled>';this.limit=0;this.entityStates=[];this.process=process;this.addEntityState=function(entityState,process){this.entityStates.push(entityState);var ids=[];var labels=[];labels.add=function(label){if(this.indexOf(label)==-1){this.push(label);}};for(var n=0;n<this.entityStates.length;n++){if(!(!process.bugTrackingPractice&&this.entityStates[n].entityType==process.bugEntityType)){ids.push(this.entityStates[n].id);labels.add(this.entityStates[n].name);}}
this.id='s-'+ids.sort().join('-');this.title=labels.join(', ');};this.matchEntity=function(entity){for(var n=0;n<this.entityStates.length;n++){if(entity.entityState==this.entityStates[n]){return true;}}
return false;};this.acceptEntity=function(entity){for(var n=0;n<this.entityStates.length;n++){if(entity.entityState.hasTransitionTo(this.entityStates[n])){return true;}}
return false;};this.findEntityState=function(entity){for(var n=0;n<this.entityStates.length;n++){if(entity.entityType==this.entityStates[n].entityType){return this.entityStates[n];}}
throw new Error('Appropriate entity state not found');};};var swimlanes=[];Ext.apply(swimlanes,{initialSwimlane:new Swimlane('__initial__','Initial',this.process),finalSwimlane:new Swimlane('__final__','Final',this.process),plannedSwimlane:new Swimlane('__planned__','Planned',this.process),projectId:this.project.id,process:this.process,item:function(id){if(this.initialSwimlane.id==id){return this.initialSwimlane;}
if(this.finalSwimlane.id==id){return this.finalSwimlane;}
if(this.plannedSwimlane.id==id){return this.plannedSwimlane;}
for(var n=0;n<this.length;n++){if(this[n].id==id){return this[n];}}
throw new Error('Swimlane not found');},getSwimlaneForEntityState:function(entityState){if(entityState['initial']){return this.initialSwimlane;}
if(entityState['final']){return this.finalSwimlane;}
if(entityState['planned']){return this.plannedSwimlane;}
for(var n=0;n<this.length;n++){if(this[n].name==entityState.name){return this[n];}}
var swimlane=new Swimlane(entityState.name,null,this.process);this.push(swimlane);return swimlane;},addEntityState:function(entityState,process){this.getSwimlaneForEntityState(entityState).addEntityState(entityState,process);},hasPlannedSwimlane:function(){return this.plannedSwimlane.entityStates.length>0;}});var wipStatesOnBoard=false;for(var n=0;n<this.process.entityStates.length;n++){var entityState=this.process.entityStates[n];if(this.isWIP_OR_PlannedState(entityState)&&this.process.bugTrackingPractice&&entityState.entityType==this.process.bugEntityType){swimlanes.addEntityState(entityState,this.process);wipStatesOnBoard=true;}
else if(this.isWIP_OR_PlannedState(entityState)&&entityState.entityType==this.process.userStoryEntityType){swimlanes.addEntityState(entityState,this.process);wipStatesOnBoard=true;}
else if(!this.isWIP_OR_PlannedState(entityState)){if(entityState.entityType==this.process.userStoryEntityType||entityState.entityType==this.process.bugEntityType){swimlanes.addEntityState(entityState,this.process);}}}
if(!wipStatesOnBoard)
swimlanes.push(new Swimlane("Error"+this.project.id,"<span style='color:red;'>There are no WIP entity states. You may add them in Admin <span style='font-size:14px;'>&rarr;</span> Process <span style='font-size:14px;'>&rarr;</span> Workflow</span>"));for(var n=0;n<swimlanes.length;n++){swimlanes[swimlanes[n].id]=swimlanes[n];}
return swimlanes;},isWIP_OR_PlannedState:function(entityState){return!(entityState['initial']||entityState['final']);},applyPreferences:function(swimlanes,preferences){if(swimlanes.plannedSwimlane.id in preferences.limits){swimlanes.plannedSwimlane.limit=parseInt(preferences.limits[swimlanes.plannedSwimlane.id]);}
for(var n=0;n<swimlanes.length;n++){if(swimlanes[n].id in preferences.limits){swimlanes[n].limit=parseInt(preferences.limits[swimlanes[n].id]);}}
function moveTo(array,item,index){var n=array.indexOf(item);array.splice(n,1);array.splice(index,0,item);}
var offset=0;for(var n=0;n<preferences.order.length;n++){if(preferences.order[n]in swimlanes){var swimlane=swimlanes[preferences.order[n]];moveTo(swimlanes,swimlane,offset);offset++;}}
return swimlanes;},fillItemContainer:function(itemContainer,entities){var maxItemsPerSwimlane=100;for(var i=0;i<entities.length;i++){if((itemContainer.swimlane.name=='__final__')&&i>=10)
break;if(this.isWIP_OR_PlannedState(entities[i].entityState)&&i>=maxItemsPerSwimlane){break;}
var item=new Tp.controls.kanbanboard.Item({entity:entities[i]});itemContainer.add(item);item.on('onBugsPopupShow',this.bugsPopupShowHandler.createDelegate(this));item.on('onTasksPopupShow',this.tasksPopupShowHandler.createDelegate(this));}
itemContainer.doLayout();},lastItem:null,tasksPopupShowHandler:function(item){this.showUserStoryEntityPopup(item,new Tp.controls.kanbanboard.board.TaskPopupStrategy({service:this.service}),this.process.taskEntityType.title);},bugsPopupShowHandler:function(item){this.showUserStoryEntityPopup(item,new Tp.controls.kanbanboard.board.BugPopupStrategy({service:this.service}),this.process.bugEntityType.title);},showUserStoryEntityPopup:function(item,strategy,entityTitle){this.lastItem=item;this.uxKanbanBoardPanel.disable();if(this.userStoryEntityPopup==null){this.userStoryEntityPopup=new Tp.controls.kanbanboard.board.UserStoryEntityPopup({service:this.service});this.userStoryEntityPopup.on("hide",this.popupHideHandler.createDelegate(this));}
this.userStoryEntityPopup.setStrategy(strategy);this.userStoryEntityPopup.title=entityTitle+'s for '+this.process.userStoryEntityType.title+' '+item.getEntityName();this.userStoryEntityPopup.loadData(item.entity);},popupHideHandler:function(popup){var c=0;Array.forEach(popup.store.data.items,function(i){Array.forEach(this.process.entityStates,function(s){if(s.id==i.data.entityStateId&&!s.final)
c++;},this);},this);popup.getStrategy().updateItem(this.lastItem,c);this.uxKanbanBoardPanel.enable();},placeItemOnItemContainer:function(item,doLayout){if(this.uxbacklog.swimlane.matchEntity(item.entity)){this.uxbacklog.add(item);}
else{for(var n=0;n<this.uxswimlanes.length;n++){if(this.uxswimlanes[n].swimlane.matchEntity(item.entity)){this.uxswimlanes[n].add(item);}}}
if(doLayout){this.uxbacklog.doLayout();for(var n=0;n<this.uxswimlanes.length;n++){this.uxswimlanes[n].doLayout();}}},fixEntities:function(entities){for(var n=0;n<entities.length;n++){var entity=entities[n];entity.entityType=this.process.getEntityType(entity.entityTypeId);delete entity.entityTypeId;entity.entityState=this.process.getEntityState(entity.entityStateId);delete entity.entityStateId;}
return entities;},collectEntitiesByState:function(entities){var entities=this.fixEntities(entities);this.entityHashmap[this.uxbacklog.swimlane.name]=this.entityHashmap[this.uxbacklog.swimlane.name]||[];for(var m=0;m<this.uxswimlanes.length;m++){this.entityHashmap[this.uxswimlanes[m].swimlane.name]=this.entityHashmap[this.uxswimlanes[m].swimlane.name]||[];}
for(var i=0;i<entities.length;i++){if(this.uxbacklog.swimlane.matchEntity(entities[i])){this.entityHashmap[this.uxbacklog.swimlane.name].push(entities[i]);}
for(var m=0;m<this.uxswimlanes.length;m++){if(this.uxswimlanes[m].swimlane.matchEntity(entities[i])){this.entityHashmap[this.uxswimlanes[m].swimlane.name].push(entities[i]);}}}},loadBacklogEntities:function(){this.service.loadBacklogEntities(this.project.id,[],this.loadBacklogEntities_onSuccess.createDelegate(this),this.loadEntities_onFailure.createDelegate(this));},loadEntities_onSuccess:function(entities){this.collectEntitiesByState(entities);for(var m=0;m<this.uxswimlanes.length;m++){this.fillItemContainer(this.uxswimlanes[m],this.entityHashmap[this.uxswimlanes[m].swimlane.name],true);}
if(this.uxbacklog.getIsCollapsed()){this.uxKanbanBoardPanel.isReloadPossible=true;this.fireEvent("loaded",this,entities);return;}
this.loadBacklogEntities();},loadBacklogEntities_onSuccess:function(entities){this.collectEntitiesByState(entities);this.fillItemContainer(this.uxbacklog,this.entityHashmap[this.uxbacklog.swimlane.name],true);this.fireEvent("loaded",this,entities);},loadEntities_onFailure:function(x){Tp.util.Notifier.error('Error','Loading entities failed, please reload this page.\n<hr/>\n'+x.get_message());},changeEntityState_onSuccess:function(x,ctx){ctx.entity.entityState=ctx.entityState;this.fireEvent("statechanged",this,ctx.entity);Tp.util.Notifier.notify('OK','State changed to "'+ctx.entityState.name+'"');},changeEntityState_onFailure:function(x,ctx){this.placeItemOnItemContainer(ctx.item,true);Tp.util.Notifier.error('Error','Changing state failed, please reload this page.\n<hr/>\n'+x.get_message());}});;
/*KanbanBoardPanel.js*/
Ext.ns('Tp.controls.kanbanboard');Tp.controls.kanbanboard.KanbanBoardPanel=Ext.extend(Ext.Panel,{controller:null,customizing:false,collapsible:true,headerStyle:'font-weight: bold; background: #fff;',constructor:function(config){this._initControls(config);this._applyConfig(config);this.title=config.controller.project.name;Tp.controls.kanbanboard.KanbanBoardPanel.superclass.constructor.call(this,config);this.backlog.setRegion(this.layout.west);if(config.collapsed!=null&&!config.collapsed&&this.collapsed){this.expand();}
else{if(!this.collapsed){this.controller.load();}}
this.controller.setKanbanBoardPanel(this);this.addEvents({"reload":true});this.on('expand',this.onExpanded,this);},onRender:function(ct,position){Tp.controls.kanbanboard.KanbanBoardPanel.superclass.onRender.call(this,ct,position);var a=Ext.query('a.x-panel-kanban-header-link',this.el.dom)[0];var div=Ext.fly(a.parentNode).insertFirst({tag:'div',cls:'x-panel-kanban-header'}).appendChild(a);Ext.fly(a).on('click',this.toggleCollapse,this);},afterRender:function(){Tp.controls.kanbanboard.KanbanBoardPanel.superclass.afterRender.call(this);this.on('expand',this.doLayout,this);Ext.EventManager.onWindowResize(this.doLayout,this);},onDestroy:function(){Tp.controls.kanbanboard.KanbanBoardPanel.superclass.onDestroy.call(this);this.un('expand',this.doLayout,this);Ext.EventManager.removeResizeListener(this.doLayout,this);},onExpanded:function(){this.isReloadPossible=false;this.fireEvent("reload");},_initControls:function(config){if(!config.controller){throw new Error('Controller not specified');}
var filter=this.makeDefaultFilter(config.controller.project);this.board=new Tp.controls.kanbanboard.board.Board({controller:config.controller});this.backlogFilter=new Tp.controls.kanbanboard.sections.FilterPanel({controller:config.controller,filter:filter});this.backlog=new Tp.controls.kanbanboard.sections.Backlog({controller:config.controller,filter:filter});},_applyConfig:function(config){Ext.apply(config,{layout:'border',border:false,maximizable:true,headerCfg:{tag:'a',cls:'x-panel-kanban-header-link',href:'javascript:void(0)'},stateId:'KanbanBoard_'+config.controller.project.id,stateEvents:["collapse","expand"],getState:function(){return{collapsed:this.collapsed};},items:[{region:'west',title:'Backlog',stateId:'Backlog_'+config.controller.project.id,stateEvents:["collapse","expand"],getState:function(){return{collapsed:this.collapsed};},items:[this.backlogFilter,this.backlog],collapsible:true,collapseFirst:false,animCollapse:true,width:260,split:true,minSize:140,maxSize:380,tools:this._backlogTools()},{region:'center',title:'Kanban board',items:this.board,layout:'fit',tools:this.mainBoardTools()}]});},mainBoardTools:function(){var mainBoardTools=[];if(Application.user.canEditProject){mainBoardTools.push({id:'gear',qtip:'Customize...',handler:function(event,toolEl,panel){this.beginCustomize();},scope:this});}
mainBoardTools.push({id:'refresh',qtip:'Refresh...',handler:function(event,toolEl,panel){if(this.isReloadPossible){this.isReloadPossible=false;this.fireEvent("reload");}},scope:this});mainBoardTools.push({id:'maximize',qtip:'Maximize',handler:function(event,toolEl,panel){panel.tools.maximize.hide();panel.tools.restore.show();this.addClass("fullScreen");},scope:this});mainBoardTools.push({id:'restore',qtip:'Restore',handler:function(event,toolEl,panel){panel.tools.maximize.show();panel.tools.restore.hide();this.removeClass("fullScreen");},hidden:true,scope:this});return mainBoardTools;},_backlogTools:function(){var backlogTools=[];backlogTools.push({id:'search',qtip:'Filter...',handler:function(event,toolEl,panel){if(this.backlogFilter.hidden){this.backlogFilter.show();this.backlog.getEl().removeClass('kanban-backlog');this.backlog.getEl().addClass('kanban-backlog-filter-on');}
else{this.backlogFilter.hide();this.backlog.getEl().removeClass('kanban-backlog-filter-on');this.backlog.getEl().addClass('kanban-backlog');}},scope:this});return backlogTools;},beginCustomize:function(){if(this.customizing===false){this.customizing=true;this.disable();var customizer=new Tp.controls.kanbanboard.board.Customizer({controller:this.controller});var window=new Ext.Window({title:'Customize',layout:'fit',width:400,autoHeight:true,resizable:false,closeAction:'close',items:customizer,buttons:[{text:'Apply',handler:function(){this.customizing=false;customizer.applyCustomization();window.close();this.controller.savePreferences();},scope:this}]});window.on("close",function(){this.customizing=false;this.enable();},this);window.show();window.center();}},disable:function(){this.controller.disable();this.backlog.disable();this.board.disable();},enable:function(){this.controller.enable();this.backlog.enable();this.board.enable();this.board.refresh();},makeDefaultFilter:function(project){var Filter=Ext.extend(Ext.util.Observable,{keywords:[],tags:[],type:{'feature':true,'userstory':true,'bug':true},sort:'rank',constructor:function(config){Ext.apply(this,config);Filter.superclass.constructor.call(this);this.addEvents('changed');},notifyChanged:function(){this.fireEvent('changed',this);}});return new Filter();}});;
/*UserStoryEntityPopup.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.UserStoryEntityPopup=Ext.extend(Ext.Window,{service:null,panel:null,grid:null,store:null,strategy:null,constructor:function(config){Ext.apply(config,this._createConfig());Tp.controls.kanbanboard.board.UserStoryEntityPopup.superclass.constructor.call(this,config);},_createConfig:function(){this.store=new Ext.data.JsonStore({fields:['id','name','entityStateId','entity_state']});var csPlugin=new Tp.controls.Prioritization.ChangeStateColumnPlugin();var getViewUrl=this.getViewUrl.createDelegate(this);this.grid=new Ext.grid.EditorGridPanel({autoHeight:true,clicksToEdit:1,enableColumnMove:false,enableColumnResize:false,enableHdMenu:false,columns:[{width:50,dataIndex:'id',header:'ID',renderer:function(value){return String.format("<a href='{0}'>{1}</a>",getViewUrl(value),value);}},{width:330,dataIndex:'name',header:'Name',renderer:function(value){return String.format("<div style='white-space:normal'>{0}</div>",value);}},csPlugin],sm:new Ext.grid.RowSelectionModel({singleSelect:true}),store:this.store,plugins:csPlugin,autoHeight:true});this.panel=new Ext.Panel({autoHeight:true,items:this.grid});return{closable:true,closeAction:'hide',items:[this.panel],width:500,autoHeight:true,resizable:false,border:false};},getViewUrl:function(value){return this.strategy.getViewUrl(value);},setStrategy:function(strategy){this.strategy=strategy;},getStrategy:function(){return this.strategy;},loadData:function(data){this.strategy.loadData(data,this.loadAssignables_onSuccess.createDelegate(this),this.loadAssignables_onFailure.createDelegate(this));},loadAssignables_onSuccess:function(bugs){this.grid.store.loadData(bugs);this.show();},loadAssignables_onFailure:function(x){Tp.util.Notifier.error('Error','Loading '+this.getEntityName()+'s failed, please reload this page.\n<hr/>\n'+x.get_message());this.hide();}});;
/*TaskPopupStrategy.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.TaskPopupStrategy=Ext.extend(Object,{constructor:function(config){Ext.apply(this,config);},loadData:function(entity,successDelegate,failureDelegate){this.service.loadTasks(entity.id,successDelegate,failureDelegate);},getViewUrl:function(value){return Application.getViewUrl(value,'Task');},getEntityName:function(){return"task";},updateItem:function(item,count){item.updateTasks(count);}});;
/*BugPopupStrategy.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.BugPopupStrategy=Ext.extend(Object,{constructor:function(config){Ext.apply(this,config);},loadData:function(entity,successDelegate,failureDelegate){this.service.loadBugs(entity.id,successDelegate,failureDelegate);},getViewUrl:function(value){return Application.getViewUrl(value,'Bug');},getEntityName:function(){return"bug";},updateItem:function(item,count){item.updateBugs(count);}});;
/*Item.js*/
Ext.ns('Tp.controls.kanbanboard');Tp.controls.kanbanboard.Item=Ext.extend(Ext.BoxComponent,{cls:'kanban-item',constructor:function(config){if(!config){throw new Error('Config not specified');}
if(!config.entity){throw new Error('Entity not specified');}
if(!config.entity.entityState){throw new Error('Entity state not specified');}
var id='kanban-item-'+config.entity.entityType.name.toLowerCase()+'-'+config.entity.id;Ext.apply(config,{id:id,itemId:id});Tp.controls.kanbanboard.Item.superclass.constructor.call(this,config);this.addEvents("onBugsPopupShow");this.addEvents("onTasksPopupShow");},updateBugs:function(bugsCount){this.entity.bugCount=bugsCount;this.onRenderHandler();},updateTasks:function(tasksCount){this.entity.taskCount=tasksCount;this.onRenderHandler();},onRender:function(ct,position){Tp.controls.kanbanboard.Item.superclass.onRender.call(this,ct,position);this.onRenderHandler();},getEntityName:function(){return this.entity.name;},onRenderHandler:function(){this.addClass('kanban-item-entitytype-'+this.entity.entityType.name.toLowerCase());this.addClass('kanban-item-priority-'+this.entity.priorityImportance);this.addClass('kanban-item-name');var model={id:this.entity.id,name:Ext.util.Format.htmlEncode(this.entity.name),entityTypeId:this.entity.entityType.id,entityTypeName:Ext.util.Format.htmlEncode(this.entity.entityType.name),entityTypeTitle:this.entity.entityType.title,priorityName:Ext.util.Format.htmlEncode(this.entity.priorityName),projectName:Ext.util.Format.htmlEncode(this.entity.projectName),priorityImportance:Ext.util.Format.htmlEncode(this.entity.priorityImportance),viewUrl:Application.getViewUrl(this.entity.id,this.entity.entityType.name),bugCount:this.entity.bugCount,taskCount:this.entity.taskCount};var childStatistics=this.getStatistics();var tpl;if(childStatistics!=''){tpl=new Ext.Template('<div class="kanban-item-id-count"><a style="float:left" href="{viewUrl}">{id}</a>'+childStatistics,'</div>','{name}');}else{tpl=new Ext.Template('<span class="kanban-item-id" ><a href="{viewUrl}">{id}</a></span>','{name}');}
tpl.overwrite(this.el,model);var links=this.getEl().query("a.bugCountLink");Array.forEach(links,function(link){Ext.get(link).on("click",Function.createDelegate(this,this.showBugPopup));},this);var links=this.getEl().query("a.taskCountLink");Array.forEach(links,function(link){Ext.get(link).on("click",Function.createDelegate(this,this.showTaskPopup));},this);this.el.unselectable();this.createToolTip(model);},showBugPopup:function(){this.fireEvent('onBugsPopupShow',this);},showTaskPopup:function(){this.fireEvent('onTasksPopupShow',this);},getStatistics:function(){var bugsCountTemplate='';if(this.entity.bugCount>0){bugsCountTemplate='<a class="bugCountLink" href="javascript:void(0);"><span class="bugCount">{bugCount}</span></a>';}
var taskCountTemplate='';if(this.entity.taskCount>0){taskCountTemplate='<a class="taskCountLink" href="javascript:void(0);"><span class="taskCount">{taskCount}</span></a>';}
return bugsCountTemplate+taskCountTemplate;},getToolTipTemplateStatistics:function(){var taskCountTemplate='';if(this.entity.taskCount>0){taskCountTemplate='Task: {taskCount} ';}
var bugsCountTemplate='';if(this.entity.bugCount>0){bugsCountTemplate='Bug: {bugCount}';}
var template=taskCountTemplate+bugsCountTemplate;if(template!=''){return"<div>"+template+"</div>"}
return'';},createToolTip:function(model){var tpl=this.getTooltipTemplateForCurrentScope();Ext.QuickTips.register({target:this.el,text:tpl.apply(model),width:250,dismissDelay:10000});},getTooltipTemplateForCurrentScope:function(){return new Ext.Template('<div>{entityTypeTitle} <span class="kanban-item-id">#{id}</span>','&nbsp;<span class="kanban-item-name">{name}</span></div>','<div>Priority: {priorityName}</div>',this.getToolTipTemplateStatistics());}});;
/*Container.js*/
Ext.ns('Tp.controls.kanbanboard');Tp.controls.kanbanboard.Container=Ext.extend(Ext.Container,{autoEl:{tag:'div',cls:'kanban-dropzone'},controller:null,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
Tp.controls.kanbanboard.Container.superclass.constructor.call(this,config);this.addEvents({"begindrag":true,"enddrag":true,"enterdrag":true});},highlighDisabled:function(item,entity){},highlightItemsCount:function(){},allowDrop:function(item,entity){return false;},onDrop:function(item,entity){},afterRender:function(){Tp.controls.kanbanboard.Container.superclass.afterRender.call(this);this.el.unselectable();this.initDragAndDrop();},initDragAndDrop:function(){var allowDrop=this.allowDrop.createDelegate(this);var onDrop=this.onDrop.createDelegate(this);var self=this;this.dragZone=new Ext.dd.DragZone(this.getEl(),{ddGroup:'kanbanboard',scroll:false,getDragData:function(e){if(Ext.fly(e.getTarget()).dom.tagName.toUpperCase()=="A"){return;}
var targetEl=e.getTarget('div.kanban-item',10,true);if(targetEl){var itemCmp=Ext.ComponentMgr.get(targetEl.id);return{ddel:itemCmp.el.dom,item:itemCmp,entity:itemCmp.entity};}},onBeforeDrag:function(data,e){if(!self.controller.enabled){return false;}
self.fireEvent("begindrag",self,data.item,data.entity);return true;},onEndDrag:function(data,e){self.fireEvent("enddrag",self,data.item,data.entity);},afterRepair:function(){if(Ext.enableFx){Ext.Element.fly(this.dragData.ddel,this.ddGroup+'_dd_fly').highlight(this.hlColor||"c3daf9");}
this.dragging=false;}});this.dropTarget=new Ext.dd.DropTarget(this.getEl(),{ddGroup:'kanbanboard',overClass:'kanban-itemcontainer-dd-over',notifyEnter:function(dd,e,data){self.fireEvent("enterdrag",self,data.item,data.entity);Ext.dd.DropTarget.prototype.notifyEnter.call(this,dd,e,data);return this.verifyDropEnabled(dd,e,data);},notifyOver:function(dd,e,data){Ext.dd.DropTarget.prototype.notifyOver.call(this,dd,e,data);return this.verifyDropEnabled(dd,e,data);},notifyDrop:function(dd,e,data){self.el.removeClass(this.overClass);if(allowDrop(data.item,data.entity)){self.add(data.item);self.doLayout();onDrop(data.item,data.entity);return true;}
return false;},verifyDropEnabled:function(dd,e,data){if(!self.controller.enabled){return Ext.dd.DropTarget.prototype.dropNotAllowed;}
if(allowDrop(data.item,data.entity)){return Ext.dd.DropTarget.prototype.dropAllowed;}
else{return Ext.dd.DropTarget.prototype.dropNotAllowed;}}});},sort:function(){var comparator=this.comparator.createDelegate(this);this.items.sort('ASC',function(a,b){if(a.entity!=null&&b.entity!=null){return comparator(a.entity,b.entity);}
return 0;});},comparator:function(a,b){throw new Error("Not implemented.");},repaint:function(){var last;this.items.each(function(item){if(last!=null){item.el.insertAfter(last.el);}
last=item;},this);}});;
/*ContainerLayout.js*/
Tp.controls.kanbanboard.ItemContainerLayout=Ext.extend(Ext.layout.ContainerLayout,{runningTask:null,finalCallback:null,getItemHandler:function(target){return(function(item,position){if(item&&(!item.rendered||!this.isValidParent(item,target))){this.renderItem(item,position,target);}}).createDelegate(this);},renderAll:function(ct,target){var items=ct.items.items;if(items.length==0)
{this.finalCallback();return;}
if(this.runningTask!=null){this.runningTask.dispose();}
this.runningTask=new Tp.components.LongRunningTask(items,this.getItemHandler(target),this.finalCallback);this.runningTask.init();}});;
/*SwimlaneHeader.js*/
Ext.ns('Tp.controls.kanbanboard.sections');Tp.controls.kanbanboard.sections.SwimlaneHeader=Ext.extend(Ext.BoxComponent,{autoEl:'span',onRender:function(ct,position){Tp.controls.kanbanboard.sections.SwimlaneHeader.superclass.onRender.call(this,ct,position);this.swimlane.initTitle=new String(this.title);}});;
/*Swimlane.js*/
Ext.ns('Tp.controls.kanbanboard.sections');Tp.controls.kanbanboard.sections.Swimlane=Ext.extend(Tp.controls.kanbanboard.Container,{cls:'kanban-swimlane',controller:null,swimlane:null,initTitle:null,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
if(!config.swimlane){throw new Error('Swimlane not specified');}
Tp.controls.kanbanboard.sections.Swimlane.superclass.constructor.call(this,config);this.controller.addSwimlane(this);this.addEvents("dropaccept");this.on("add",this.onAdd,this);this.on("remove",this.onRemove,this);},highlighDisabled:function(item,entity){if(entity==null){this.removeClass('kanban-swimlane-disabled');}
else{if(!this.allowDrop(item,entity)){this.addClass('kanban-swimlane-disabled');}}},highlightItemsCount:function(){if(this.uxHeader==null){return;}
var uxHeaderFrameEl=this.uxHeader.getEl().parent();if(this.swimlane.limit>0&&this.items.length>this.swimlane.limit){uxHeaderFrameEl.addClass('kanban-swimlane-overlimit');uxHeaderFrameEl.removeClass('kanban-swimlane-limitless');}else if(this.swimlane.limit>0&&this.items.length<this.swimlane.limit){uxHeaderFrameEl.addClass('kanban-swimlane-limitless');uxHeaderFrameEl.removeClass('kanban-swimlane-overlimit');}else{uxHeaderFrameEl.removeClass('kanban-swimlane-limitless');uxHeaderFrameEl.removeClass('kanban-swimlane-overlimit');};this.updateHeader();},updateHeader:function(){if(this.uxHeader==null){return;};var title=this.swimlane.title;if(this.swimlane.limit>0){title=this.swimlane.initTitle+' - '+this.items.length+' (limit '+this.swimlane.limit+')';}else if(this.items.length>0&&this.swimlane.name!='__final__'){title=this.swimlane.initTitle+' - '+this.items.length;}
this.uxHeader.el.update(title);},allowDrop:function(item,entity){return this.swimlane.acceptEntity(entity);},onDrop:function(item,entity){this.fireEvent("dropaccept",this,item,entity,this.swimlane.findEntityState(entity));this.highlightItemsCount();},onAdd:function(ct,item){this.sort();this.highlightItemsCount();},onRemove:function(ct,item){this.highlightItemsCount();}});;
/*ProjectSwimlane.js*/
Ext.ns('Tp.controls.kanbanboard.sections');Tp.controls.kanbanboard.sections.ProjectSwimlane=Ext.extend(Tp.controls.kanbanboard.sections.Swimlane,{comparator:function(a,b){return a.numericPriority-b.numericPriority;}});;
/*Backlog.js*/
Ext.ns('Tp.controls.kanbanboard.sections');Tp.controls.kanbanboard.sections.Backlog=Ext.extend(Tp.controls.kanbanboard.Container,{cls:'kanban-backlog',filter:null,controller:null,swimlane:null,collapsedCls:'backlog-collapsed',loadMoreOption:null,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
if(!config.filter){throw new Error('Filter not specified');}
config.layout=new Tp.controls.kanbanboard.ItemContainerLayout({finalCallback:this.finalLayoutHandler.createDelegate(this)});Tp.controls.kanbanboard.sections.Backlog.superclass.constructor.call(this,config);this.swimlane=this.controller.swimlanes.initialSwimlane;this.filter.on('changed',this.applyFilter,this);this.controller.setBacklog(this);this.addEvents({"backlogFilled":true,"backlogexpand":true});},finalLayoutHandler:function(){this.sort();this.repaint();this.fireEvent("backlogFilled");this.applyFilter();},initComponent:function(){Tp.controls.kanbanboard.sections.Backlog.superclass.initComponent.call(this);this.addEvents("dropaccept");},highlighDisabled:function(item,entity){if(entity==null){this.removeClass('kanban-backlog-disabled');}
else{if(!this.allowDrop(item,entity)){this.addClass('kanban-backlog-disabled');}}},allowDrop:function(item,entity){return this.swimlane.acceptEntity(entity);},onDrop:function(item,entity){this.fireEvent("dropaccept",this,item,entity,this.swimlane.findEntityState(entity));},comparator:function(a,b){switch(this.filter.sort){case'name':return this.nameComparator(a,b);case'rank':return this.rankComparator(a,b);case'priority':return this.priorityComparator(a,b);case'type':return this.typeComparator(a,b);case'effort':return this.effortComparator(a,b);default:return 0;}},nameComparator:function(a,b){if(a.name.toLowerCase()<b.name.toLowerCase()){return-1;}
if(a.name.toLowerCase()>b.name.toLowerCase()){return+1;}
return 0;},rankComparator:function(a,b){return a.numericPriority-b.numericPriority;},priorityComparator:function(a,b){return a.priorityImportance-b.priorityImportance;},typeComparator:function(a,b){return a.entityType.id-b.entityType.id;},effortComparator:function(a,b){return b.effort-a.effort;},applyFilter:function(){this.sort();this.items.each(function(item){var visible=this.filterByType(item)&&this.filterByKeyword(item)&&this.filterByProject(item)&&this.filterByTag(item);if(visible){item.show();}
else{item.hide();}},this);this.repaint();},filterByType:function(item){if(item.entity==null)
return true;if(item.entity.entityType==this.controller.process.featureEntityType){return this.filter.type['feature'];}
if(item.entity.entityType==this.controller.process.userStoryEntityType){return this.filter.type['userstory'];}
if(item.entity.entityType==this.controller.process.bugEntityType){return this.filter.type['bug'];}
return true;},filterByKeyword:function(item){if(item.entity==null){return true;}
if(this.filter.keywords.length){for(var n=0;n<this.filter.keywords.length;n++){var keyword=this.filter.keywords[n];var match=keyword.match(/^#?(\d+)$/);if(match){keyword=match[1];}
if(!isNaN(keyword)&&keyword>0){if(item.entity.id==keyword){return true;}}
else if(item.entity.name.toLowerCase().indexOf(keyword)!=-1){return true;}}
return false;}
return true;},filterByProject:function(item){if(item.entity==null){return true;}
if(this.filter.projectId>0){if(item.entity.project.id==this.filter.projectId)
return true;return false;}
return true;},filterByTag:function(item){if(item.entity==null){return true;}
if(this.filter.tags.length){function containsTag(entity,tag){for(var n=0;n<entity.tags.length;n++){if(entity.tags[n].toLowerCase().indexOf(tag)!=-1){return true;}}
return false;}
for(var n=0;n<this.filter.tags.length;n++){if(!containsTag(item.entity,this.filter.tags[n].toLowerCase())){return false;}}}
return true;},setRegion:function(region){this.region=region;if(!this.region.isCollapsed)
return;this.region.panel.on('expand',this.setExpandListener,this);},getIsCollapsed:function(){return this.region.isCollapsed;},setExpandListener:function(){this.fireEvent('backlogexpand');}});;
/*Filter.js*/
Ext.ns('Tp.controls.kanbanboard.sections');Tp.controls.kanbanboard.sections.FilterPanel=Ext.extend(Ext.Panel,{filter:null,controller:null,projectId:0,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
if(!config.filter){throw new Error('Filter not specified');}
var typeOption=new Tp.controls.kanbanboard.sections.FilterPanel.TypeControl({controller:config.controller,filter:config.filter});var sortOption=new Tp.controls.kanbanboard.sections.FilterPanel.SortControl({controller:config.controller,filter:config.filter});this.projectId=config.controller.project.id;Tp.controls.kanbanboard.sections.FilterPanel.superclass.constructor.call(this,Ext.apply(config,this.createFilterConfig(typeOption,sortOption)));this._init();this.controller.setFilter(this);},_init:function(){function createDeleteHandler(componentId,deleteHandler){return function(){function deleteHandlerWrapper(eventObj,source){if(eventObj.getCharCode()==eventObj.DELETE){deleteHandler(Ext.fly(source),eventObj);}}
var elementId=this.findById(componentId).getEl().id;Ext.EventManager.on(elementId,'keyup',deleteHandlerWrapper,this);};}
var keywordsId=this.getKeywordsId();var keywords=this.findById(keywordsId);keywords.on('render',createDeleteHandler(keywordsId,this.handleKeywordsEvents.createDelegate(this)),this);keywords.addListener('keydown',this.handleKeyDown);var tagsId=this.getTagsId();var tags=this.findById(tagsId);tags.on('render',createDeleteHandler(tagsId,this.handleTagsEvents.createDelegate(this)),this);tags.addListener('keydown',this.handleKeyDown);},createFilterConfig:function(typeOption,sortOption){var items=[{border:false,items:[{border:false,bodyStyle:{'padding-top':'0px','padding-bottom':'0'},items:[{border:false,bodyStyle:{'padding-top':'1px','padding-bottom':'0px'},items:[{id:this.getKeywordsId(),xtype:'textfield',style:{width:'48%',marginRight:'2%'},emptyText:'keywords',fieldLabel:'Keyword',maxLength:30,enableKeyEvents:true,listeners:{keypress:this.handleKeywordsEvents,specialkey:this.handleKeywordsEvents,buffer:300,scope:this}},{id:this.getTagsId(),xtype:'textfield',style:{width:'38%'},emptyText:'tags',fieldLabel:'Tag',maxLength:30,enableKeyEvents:true,listeners:{keypress:this.handleTagsEvents,specialkey:this.handleTagsEvents,buffer:300,scope:this}}]}]},{border:false,bodyStyle:{'padding-top':'3px','padding-bottom':'5px'},items:typeOption},{border:false,bodyStyle:{'padding-top':'5px','padding-bottom':'5px'},items:sortOption}]}];return{hidden:true,border:false,bodyCssClass:'backlog-filter',items:items};},handleKeyDown:function(field,ev){if(ev.getKey()==ev.ENTER){ev.stopEvent();}},handleSelect:function(field,ev){return;},getKeywords:function(field){var x=(field.getValue()||'').trim();if(x.length){return x.toLowerCase().split(/\s+/).sort();}
else{return[];}},handleKeywordsEvents:function(field,ev){var a=this.getKeywords(field);if(a.join(' ')!=this.filter.keywords.join(' ')){this.filter.keywords=a;this.filter.notifyChanged();}},handleTagsEvents:function(field,ev){if(ev.getCharCode()==13)
ev=null;var a=this.getKeywords(field);if(a.join(' ')!=this.filter.tags.join(' ')){this.filter.tags=a;this.filter.notifyChanged();}},getKeywordsId:function(){return'keywords'+this.projectId;},getTagsId:function(){return'tags'+this.projectId;}});;
/*SortOption.js*/
Tp.controls.kanbanboard.sections.FilterPanel.SortControl=Ext.extend(Ext.BoxComponent,{onRender:function(ct,position){Tp.controls.kanbanboard.sections.FilterPanel.SortControl.superclass.onRender.call(this,ct,position);var tpl=new Ext.XTemplate('Sort by','<tpl for=".">',' <a id="{id}" href="javascript:void(0)" name="x-sort" value="{value}">{title}</a>','</tpl>');var items=new Array();var nameItem={id:'x-kanban-sort-name'+this.controller.project.id,value:'name',title:'Name'};var rankItem={id:'x-kanban-sort-rank'+this.controller.project.id,value:'rank',title:'Rank'};var typeItem={id:'x-kanban-sort-type'+this.controller.project.id,value:'type',title:'Type'};var effortItem={id:'x-kanban-sort-effort'+this.controller.project.id,value:'effort',title:'Effort'};var priorityItem={id:'x-kanban-sort-priority'+this.controller.project.id,value:'priority',title:'Priority'};items.push(nameItem);items.push(rankItem);items.push(typeItem);items.push(effortItem);tpl.overwrite(this.el,items);},afterRender:function(){Tp.controls.kanbanboard.sections.FilterPanel.SortControl.superclass.afterRender.call(this);this.items=this.el.select('a[name=x-sort]');this.items.each(function(item){var fly=Ext.fly(item);if(fly.getAttribute('value')==this.filter.sort){fly.addClass('backlog-current-sort');}
Ext.EventManager.on(fly.dom.id,'click',function(ev,el){this.onSortChange(el);},this);},this);},clearCls:function(){this.el.select('a[name=x-sort]').each(function(item){Ext.get(item).removeClass('backlog-current-sort');});},onSortChange:function(el){var key=el.getAttribute('value');if(this.filter.sort!=key){this.clearCls();Ext.fly(el).addClass('backlog-current-sort');this.filter.sort=key;this.filter.notifyChanged();}}});;
/*TypeOption.js*/
Tp.controls.kanbanboard.sections.FilterPanel.TypeControl=Ext.extend(Ext.BoxComponent,{onRender:function(ct,position){Tp.controls.kanbanboard.sections.FilterPanel.TypeControl.superclass.onRender.call(this,ct,position);var tpl=new Ext.XTemplate('Show','<tpl for=".">',' <input id="{id}" type="checkbox" name="{id}" value="{value}"/><label for="{id}">{title}</label>','</tpl>');tpl.overwrite(this.el,[{id:'x-kanban-show-userstories'+this.controller.project.id,value:'userstory',title:'User Stories'},{id:'x-kanban-show-bugs'+this.controller.project.id,value:'bug',title:'Bugs'}]);},afterRender:function(){Tp.controls.kanbanboard.sections.FilterPanel.TypeControl.superclass.afterRender.call(this);this.items=this.el.select('input[type=checkbox]');this.items.each(function(item){var fly=Ext.fly(item);fly.dom.checked=this.filter.type[fly.dom.value];fly.on('click',function(ev,el){this.onTypeChange(el.value,el.checked);},this);},this);},onTypeChange:function(type,show){this.filter.type[type]=show;this.filter.notifyChanged();}});;
/*Board.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.Board=Ext.extend(Ext.BoxComponent,{cls:'kanban-board-wrap',controller:null,uxswimlanes:[],uniqueID:null,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
Tp.controls.kanbanboard.board.Board.superclass.constructor.call(this,config);this.uniqueID=config.controller.project.id;},_initTemplateNoStates:function(){this.clearView();var tpl=new Ext.XTemplate('<table class="kanban-swimlanes-table">','<tr>','<th id="kanban-swimlane-header-planned-wrap{uniqueID}" class="kanban-swimlane-header-wrap"></th>','</tr>','<tr>','<td id="kanban-swimlane-planned-wrap{uniqueID}" class="kanban-swimlane-wrap" height="{height}"></td>','</tr>','<tr>','<th id="kanban-swimlane-header-final-wrap{uniqueID}" class="kanban-swimlane-header-wrap"></th>','</tr>','<tr>','<td id="kanban-swimlane-final-wrap{uniqueID}" class="kanban-swimlane-final-wrap"></td>','</tr>','</table>');tpl.overwrite(this.el,{uniqueID:this.uniqueID,height:Ext.isIE?'70%':'100%'});new Tp.controls.kanbanboard.sections.SwimlaneHeader({renderTo:'kanban-swimlane-header-planned-wrap'+this.uniqueID,controller:this.controller,swimlane:this.controller.swimlanes.plannedSwimlane});var planned=this.createSwimlane({renderTo:'kanban-swimlane-planned-wrap'+this.uniqueID,controller:this.controller,swimlane:this.controller.swimlanes.plannedSwimlane});this.uxswimlanes.push(planned);new Tp.controls.kanbanboard.sections.SwimlaneHeader({renderTo:'kanban-swimlane-header-final-wrap'+this.uniqueID,controller:this.controller,swimlane:this.controller.swimlanes.finalSwimlane});var final=this.createSwimlane({renderTo:'kanban-swimlane-final-wrap'+this.uniqueID,controller:this.controller,swimlane:this.controller.swimlanes.finalSwimlane});this.uxswimlanes.push(final);},_initTemplateNoPlannedState:function(){this.clearView();var tpl=new Ext.XTemplate('<table class="kanban-swimlanes-table">','<tr>','<th colspan="{wipStatesCount}" class="kanban-swimlane-wip-header" >Work in Progress</th>','</tr>','<tr><tpl for="wipStates">','<th id="kanban-swimlane-header-{id}-wrap{parent.uniqueID}" class="kanban-swimlane-header-wrap" width="{parent.width}"></th>','</tpl></tr>','<tr><tpl for="states">','<td id="kanban-swimlane-{id}-wrap{parent.uniqueID}" class="kanban-swimlane-wrap" width="{parent.width}" height="{parent.height}"></td>','</tpl></tr>','<tr>','<th id="kanban-swimlane-header-final-wrap{uniqueID}" class="kanban-swimlane-header-wrap" colspan="{statesCount}"><span id="kanban-swimlane-header-final-wrap-states{uniqueID}"></span> (10 latest)</th>','</tr>','<tr>','<td id="kanban-swimlane-final-wrap{uniqueID}" class="kanban-swimlane-final-wrap" colspan="{statesCount}"></td>','</tr>','</table>');var wipStates=this.controller.swimlanes;var states=this.controller.swimlanes;this._bindTemplateData(tpl,wipStates,states);},_initTemplateAllStates:function(){this.clearView();var tpl=new Ext.XTemplate('<table class="kanban-swimlanes-table">','<tr>','<th id="kanban-swimlane-header-{plannedId}-wrap{uniqueID}" class="kanban-swimlane-header-wrap" rowspan="2" width="{width}"></th>','<th colspan="{wipStatesCount}" class="kanban-swimlane-wip-header" >Work in Progress</th>','</tr>','<tr><tpl for="wipStates">','<th id="kanban-swimlane-header-{id}-wrap{parent.uniqueID}" class="kanban-swimlane-header-wrap" width="{parent.width}"></th>','</tpl></tr>','<tr><tpl for="states">','<td id="kanban-swimlane-{id}-wrap{parent.uniqueID}" class="kanban-swimlane-wrap" width="{parent.width}" height="{parent.height}"></td>','</tpl></tr>','<tr>','<th id="kanban-swimlane-header-final-wrap{uniqueID}" class="kanban-swimlane-header-wrap" colspan="{statesCount}"><span id="kanban-swimlane-header-final-wrap-states{uniqueID}"></span> (10 latest)</th>','</tr>','<tr>','<td id="kanban-swimlane-final-wrap{uniqueID}" class="kanban-swimlane-final-wrap" colspan="{statesCount}"></td>','</tr>','</table>');var wipStates=this.controller.swimlanes;var states=[this.controller.swimlanes.plannedSwimlane].concat(this.controller.swimlanes);this._bindTemplateData(tpl,wipStates,states);},clearView:function(){for(var n=0;n<this.uxswimlanes.length;n++){this.uxswimlanes[n].destroy();}
this.uxswimlanes=[];},_bindTemplateData:function(tpl,wipStates,states){tpl.overwrite(this.el,{uniqueID:this.uniqueID,initialId:this.controller.swimlanes.initialSwimlane.id,finalId:this.controller.swimlanes.finalSwimlane.id,plannedId:this.controller.swimlanes.plannedSwimlane.id,states:states,statesCount:states.length,wipStates:wipStates,wipStatesCount:wipStates.length,width:(100/states.length)+'%',height:Ext.isIE?'70%':'100%'});for(var n=0;n<states.length;n++){var swimlane=this.createSwimlane({renderTo:'kanban-swimlane-'+states[n].id+'-wrap'+this.uniqueID,controller:this.controller,swimlane:states[n],uxHeader:new Tp.controls.kanbanboard.sections.SwimlaneHeader({renderTo:'kanban-swimlane-header-'+states[n].id+'-wrap'+this.uniqueID,controller:this.controller,swimlane:states[n],title:String(states[n].title)})});this.uxswimlanes.push(swimlane);if(swimlane.items!=undefined)
{swimlane.highlightItemsCount();}}
var swimlane=this.createSwimlane({renderTo:'kanban-swimlane-final-wrap'+this.uniqueID,controller:this.controller,swimlane:this.controller.swimlanes.finalSwimlane,uxHeader:new Tp.controls.kanbanboard.sections.SwimlaneHeader({renderTo:'kanban-swimlane-header-final-wrap-states'+this.uniqueID,controller:this.controller,swimlane:this.controller.swimlanes.finalSwimlane,title:String(this.controller.swimlanes.finalSwimlane.title)})});this.uxswimlanes.push(swimlane);if(swimlane.items!=undefined){swimlane.highlightItemsCount();};},createSwimlane:function(config){return new Tp.controls.kanbanboard.sections.ProjectSwimlane(config);},refresh:function(){if(this.controller.swimlanes==0){this._initTemplateNoStates();return;}
if(!this.controller.swimlanes.hasPlannedSwimlane()){this._initTemplateNoPlannedState();return;}
this._initTemplateAllStates();},onRender:function(ct,position){Tp.controls.kanbanboard.board.Board.superclass.onRender.call(this,ct,position);this.refresh();}});;
/*Customizer.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.Customizer=Ext.extend(Ext.Panel,{controller:null,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
this.order=new Tp.controls.kanbanboard.board.Order({controller:config.controller});this.limits=new Tp.controls.kanbanboard.board.Limits({controller:config.controller});Ext.apply(config,{autoHeight:true,border:false,items:new Ext.TabPanel({autoTabs:true,activeTab:0,deferredRender:false,border:false,items:[{autoHeight:true,title:'Order',items:[{border:false,style:{'padding':'10px 10px 0 10px'},html:'Use drag and drop to define columns order.'},this.order]},{autoHeight:true,title:'Limits',items:[{border:false,style:{'padding':'10px 10px 0 10px'},html:'Set limits on states. Limit shows how many items may be in a particular state.'},this.limits]}]})});Tp.controls.kanbanboard.board.Customizer.superclass.constructor.call(this,config);this.on('afterlayout',this.onAfterLayout,this);},onAfterLayout:function(){this.autoHeight=false;this.setHeight(this.getHeight());},applyCustomization:function(){this.order.applyCustomization();this.limits.applyCustomization();}});;
/*Order.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.Order=Ext.extend(Ext.BoxComponent,{cls:'kanban-board-customizer-order',controller:null,sortable:null,constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
Tp.controls.kanbanboard.board.Order.superclass.constructor.call(this,config);},getOrderedKeys:function(){var keys=[];if(this.sortable!=null){var items=this.sortable.serialize();for(var n=0;n<items.length;n++){keys.push(items[n].xkey);}}
return keys;},onRender:function(ct,position){Tp.controls.kanbanboard.board.Order.superclass.onRender.call(this,ct,position);if(this.controller.swimlanes.length==0){var tpl=new Ext.XTemplate('<table width="100%" height="200"><tr><td style="text-align: center;">No states available. You should add states in Admin - Process - Workflow.</td></tr></table>');tpl.overwrite(this.el,{});}
else{var tpl=new Ext.XTemplate('<ul class="kanban-swimlanes-sorter" id="kanban-swimlanes-sorter-{id}">','<tpl for="swimlanes">','<li id="kanban-swimlanes-sorter-item-{parent.id}-{id}" class="kanban-swimlanes-sorter-item" xkey="{id}">{title}</li>','</tpl>','</ul>');tpl.overwrite(this.el,{id:this.id,swimlanes:this.controller.swimlanes});this.sortable=new Ext.ux.Sortable({container:'kanban-swimlanes-sorter-'+this.id,selector:'li.kanban-swimlanes-sorter-item'});var items=this.sortable.serialize();for(var n=0;n<this.controller.swimlanes.length;n++){items[n].xkey=this.controller.swimlanes[n].id;}
this.sortable.on("sorted",function(){},this);}},afterRender:function(){Tp.controls.kanbanboard.board.Order.superclass.afterRender.call(this);this.el.unselectable();},applyCustomization:function(){var keys=this.getOrderedKeys();while(this.controller.swimlanes.length>0){this.controller.swimlanes.pop();}
for(var n=0;n<keys.length;n++){this.controller.swimlanes.push(this.controller.swimlanes[keys[n]]);}}});;
/*Limits.js*/
Ext.ns('Tp.controls.kanbanboard.board');Tp.controls.kanbanboard.board.Limits=Ext.extend(Ext.Panel,{controller:null,fields:[],constructor:function(config){if(!config.controller){throw new Error('Controller not specified');}
var states=config.controller.swimlanes;if(config.controller.swimlanes.hasPlannedSwimlane()){states=[config.controller.swimlanes.plannedSwimlane].concat(states);}
this.fields=[];for(var n=0;n<states.length;n++){if(states[n].name!='Error'){this.fields.push(new Ext.form.NumberField({name:states[n].id,value:states[n].limit==0?null:states[n].limit,fieldLabel:states[n].title,allowBlank:true,allowDecimals:false,allowNegative:false,maxValue:999,maxLength:3}));}}
Ext.apply(config,{border:false,items:new Ext.FormPanel({frame:false,border:false,bodyStyle:'padding: 10px',defaults:{width:32,labelStyle:'font-weight:bold;width:200px'},items:this.fields})});Tp.controls.kanbanboard.board.Limits.superclass.constructor.call(this,config);},applyCustomization:function(){for(var n=0;n<this.fields.length;n++){this.controller.swimlanes.item(this.fields[n].name).limit=this.fields[n].getValue()||0;}}});;
/*ckfinder.js*/
var CKFinder=function(basePath,width,height,selectFunction)
{this.BasePath=basePath||CKFinder.DEFAULT_BASEPATH;this.Width=width||'100%';this.Height=height||400;this.SelectFunction=selectFunction||null;this.SelectFunctionData=null;this.SelectThumbnailFunction=selectFunction||null;this.SelectThumbnailFunctionData=null;this.DisableThumbnailSelection=false;this.ClassName=null||'CKFinderFrame';this.StartupPath=null;this.ResourceType=null;this.StartupFolderExpanded=false;this.RememberLastFolder=true;this.Id=null;this.ConnectorLanguage='aspx';}
CKFinder.DEFAULT_BASEPATH='/ckfinder/';CKFinder.prototype={Create:function()
{document.write(this.CreateHtml());},CreateHtml:function()
{var className=this.ClassName;if(className&&className.length>0)
className=' class="'+className+'"';var id=this.Id;if(id&&id.length>0)
id=' id="'+id+'"';return'<iframe src="'+this._BuildUrl()+'" width="'+this.Width+'" '+'height="'+this.Height+'"'+className+id+' frameborder="0" scrolling="no"></iframe>';},Popup:function(width,height)
{width=width||'80%';height=height||'70%';if(typeof width=='string'&&width.length>1&&width.substr(width.length-1,1)=='%')
width=parseInt(window.screen.width*parseInt(width)/100);if(typeof height=='string'&&height.length>1&&height.substr(height.length-1,1)=='%')
height=parseInt(window.screen.height*parseInt(height)/100);if(width<200)
width=200;if(height<200)
height=200;var top=parseInt((window.screen.height-height)/2);var left=parseInt((window.screen.width-width)/2);var options='location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes'+',width='+width+',height='+height+',top='+top+',left='+left;var popupWindow=window.open('','CKFinderPopup',options,true);if(!popupWindow)
return false;var url=this._BuildUrl().replace(/&amp;/g,'&');try
{popupWindow.moveTo(left,top);popupWindow.resizeTo(width,height);popupWindow.focus();popupWindow.location.href=url;}
catch(e)
{popupWindow=window.open(url,'CKFinderPopup',options,true);}
return true;},_BuildUrl:function(url)
{var url=url||this.BasePath;var qs="";if(!url||url.length==0)
url=CKFinder.DEFAULT_BASEPATH;if(url.substr(url.length-1,1)!='/')
url=url+'/';url+='ckfinder.html';if(this.SelectFunction)
{var functionName=this.SelectFunction;if(typeof functionName=='function')
functionName=functionName.toString().match(/function ([^(]+)/)[1];qs+='?action=js&amp;func='+functionName;}
if(this.SelectFunctionData)
{qs+=qs?'&amp;':'?';qs+='data='+encodeURIComponent(this.SelectFunctionData);}
if(this.ResourceType)
{qs+=qs?'&amp;':'?';qs+='type='+encodeURIComponent(this.ResourceType);}
if(this.DisableThumbnailSelection)
{qs+=qs?"&amp;":"?";qs+='dts=1';}
else if(this.SelectThumbnailFunction||this.SelectFunction)
{var functionName=this.SelectThumbnailFunction||this.SelectFunction;if(typeof functionName=='function')
functionName=functionName.toString().match(/function ([^(]+)/)[1];qs+=qs?"&amp;":"?";qs+='thumbFunc='+functionName;if(this.SelectThumbnailFunctionData)
qs+='&amp;tdata='+encodeURIComponent(this.SelectThumbnailFunctionData);else if(!this.SelectThumbnailFunction&&this.SelectFunctionData)
qs+='&amp;tdata='+encodeURIComponent(this.SelectFunctionData);}
if(this.StartupPath)
{qs+=qs?"&amp;":"?";qs+="start="+encodeURIComponent(this.StartupPath+(this.StartupFolderExpanded?':1':':0'));}
if(!this.RememberLastFolder)
{qs+=qs?"&amp;":"?";qs+="rlf=0";}
if(this.Id)
{qs+=qs?"&amp;":"?";qs+="id="+encodeURIComponent(this.Id);}
return url+qs;}};CKFinder.Create=function(basePath,width,height,selectFunction)
{var ckfinder;if(basePath!=null&&typeof(basePath)=='object')
{ckfinder=new CKFinder();for(var _property in basePath)
ckfinder[_property]=basePath[_property];}
else
ckfinder=new CKFinder(basePath,width,height,selectFunction);ckfinder.Create();}
CKFinder.Popup=function(basePath,width,height,selectFunction)
{var ckfinder;if(basePath!=null&&typeof(basePath)=='object')
{ckfinder=new CKFinder();for(var _property in basePath)
ckfinder[_property]=basePath[_property];}
else
ckfinder=new CKFinder(basePath,width,height,selectFunction);ckfinder.Popup(width,height);}
CKFinder.SetupFCKeditor=function(editorObj,basePath,imageType,flashType)
{var ckfinder;if(basePath!=null&&typeof(basePath)=='object')
{ckfinder=new CKFinder();for(var _property in basePath)
{ckfinder[_property]=basePath[_property];if(_property=='Width')
{var width=ckfinder[_property]||800;if(typeof width=='string'&&width.length>1&&width.substr(width.length-1,1)=='%')
width=parseInt(window.screen.width*parseInt(width)/100);editorObj.Config['LinkBrowserWindowWidth']=width;editorObj.Config['ImageBrowserWindowWidth']=width;editorObj.Config['FlashBrowserWindowWidth']=width;}
else if(_property=='Height')
{var height=ckfinder[_property]||600;if(typeof height=='string'&&height.length>1&&height.substr(height.length-1,1)=='%')
height=parseInt(window.screen.height*parseInt(height)/100);editorObj.Config['LinkBrowserWindowHeight']=height;editorObj.Config['ImageBrowserWindowHeight']=height;editorObj.Config['FlashBrowserWindowHeight']=height;}}}
else
ckfinder=new CKFinder(basePath);var url=ckfinder.BasePath;if((url.substr(0,1)!='/')&&(url.indexOf('://')==-1))
url=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1)+url;url=ckfinder._BuildUrl(url);var qs=(url.indexOf("?")!==-1)?"&amp;":"?";editorObj.Config['LinkBrowserURL']=url;editorObj.Config['ImageBrowserURL']=url+qs+'type='+(imageType||'Images');editorObj.Config['FlashBrowserURL']=url+qs+'type='+(flashType||'Flash');var dir=url.substring(0,1+url.lastIndexOf("/"));editorObj.Config['LinkUploadURL']=dir+"core/connector/"+ckfinder.ConnectorLanguage+"/connector."
+ckfinder.ConnectorLanguage+"?command=QuickUpload&type=Files";editorObj.Config['ImageUploadURL']=dir+"core/connector/"+ckfinder.ConnectorLanguage+"/connector."
+ckfinder.ConnectorLanguage+"?command=QuickUpload&type="+(imageType||'Images');editorObj.Config['FlashUploadURL']=dir+"core/connector/"+ckfinder.ConnectorLanguage+"/connector."
+ckfinder.ConnectorLanguage+"?command=QuickUpload&type="+(flashType||'Flash');}
CKFinder.SetupCKEditor=function(editorObj,basePath,imageType,flashType){if(editorObj===null){for(var editorName in CKEDITOR.instances)
CKFinder.SetupCKEditor(CKEDITOR.instances[editorName],basePath,imageType,flashType);CKEDITOR.on('instanceCreated',function(e){CKFinder.SetupCKEditor(e.editor,basePath,imageType,flashType);});return;}
var ckfinder;if(basePath!=null&&typeof(basePath)=='object'){ckfinder=new CKFinder();for(var _property in basePath){ckfinder[_property]=basePath[_property];if(_property=='Width'){var width=ckfinder[_property]||800;if(typeof width=='string'&&width.length>1&&width.substr(width.length-1,1)=='%')
width=parseInt(window.screen.width*parseInt(width)/100);editorObj.config.filebrowserWindowWidth=width;}
else if(_property=='Height'){var height=ckfinder[_property]||600;if(typeof height=='string'&&height.length>1&&height.substr(height.length-1,1)=='%')
height=parseInt(window.screen.height*parseInt(height)/100);editorObj.config.filebrowserWindowHeight=width;}}}
else
ckfinder=new CKFinder(basePath);var url=ckfinder.BasePath;if((url.substr(0,1)!='/')&&(url.indexOf('://')==-1))
url=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1)+url;url=ckfinder._BuildUrl(url);var qs=(url.indexOf("?")!==-1)?"&amp;":"?";editorObj.config.filebrowserBrowseUrl=url;editorObj.config.filebrowserImageBrowseUrl=url+qs+'type='+(imageType||'Images');editorObj.config.filebrowserFlashBrowseUrl=url+qs+'type='+(flashType||'Flash');var dir=url.substring(0,1+url.lastIndexOf("/"));editorObj.config.filebrowserUploadUrl=dir+"core/connector/"+ckfinder.ConnectorLanguage+"/connector."
+ckfinder.ConnectorLanguage+"?command=QuickUpload&type=Files";editorObj.config.filebrowserImageUploadUrl=dir+"core/connector/"+ckfinder.ConnectorLanguage+"/connector."
+ckfinder.ConnectorLanguage+"?command=QuickUpload&type="+(imageType||'Images');editorObj.config.filebrowserFlashUploadUrl=dir+"core/connector/"+ckfinder.ConnectorLanguage+"/connector."
+ckfinder.ConnectorLanguage+"?command=QuickUpload&type="+(flashType||'Flash');};
/*ItemSelector.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.ItemSelector=Ext.extend(Object,{storage:null,_triggerItem:null,handler:null,_context:null,constructor:function(config){Ext.apply(this,config);},_createMenu:function(items){var menu=new Ext.menu.Menu({shadow:false,enableScrolling:false,cls:'morePanel',items:items,style:{overflow:'visible'}});menu.on("click",this._onClick,this);return menu;},_updateTriggerElement:function(newContext,htmlToRender){this._triggerItem.update(newContext,htmlToRender);},_toggleGroup:function(menu,item){var index=menu.items.indexOf(item);if(index==-1){return;}
for(i=index+1;i<menu.items.getCount();i++){var menuItem=menu.items.get(i);if(menuItem.isGroup){break;}
if(menuItem.hidden){menu.items.get(i).show();}
else{menu.items.get(i).hide();}}
menu.doLayout();},_onClick:function(sender,item,eventObj){if(item.isShowMore){var items=this.storage.getMenuItems(this._context,true);var menu=this._createMenu(items);menu.show(this._triggerItem.element);return;}
if(item.isGroup){this._toggleGroup(sender,item);return;}
sender.getEl().fadeOut({endOpacity:0.2,easing:'easeBoth',duration:1,remove:false,useDisplay:false});this.handler.handle(item.dataItem,this._context,this._updateTriggerElement.createDelegate(this,[item.htmlToRender],true));},show:function(triggerItem,context){this._context=context;this._triggerItem=triggerItem;var items=this.storage.getMenuItems(context);var menu=this._createMenu(items);menu.show(this._triggerItem.element);menu.getEl().fadeIn({endOpacity:1,easing:'easeBoth',duration:0.5,remove:false,useDisplay:false});}});;
/*MenuCustomizer.js*/
Ext.ns('Tp.Menu');var latestDrugMenuItem=null;Tp.Menu.Customizer=Ext.extend(Object,{constructor:function(config){Ext.apply(this,config);},showLinks:function(tab){var extEl=Ext.get(tab);var links=extEl.select('a');links.setVisibilityMode(2);links.show();if(tab.isSelectedTab)
extEl.addClass("selectedTab");if(tab.isDisabledTab){Ext.each(links.elements,function(link){Ext.get(link).addClass("disabledAction");link.setAttribute("disabled","disabled");link.removeAttribute("href");});}
var spans=extEl.select('span');spans.setVisibilityMode(2);spans.hide();},replaceLinks:function(tab){var links=Ext.get(tab).select('a');links.setVisibilityMode(2);links.hide();var spans=Ext.get(tab).select('span');spans.setVisibilityMode(2);spans.show();if(spans.elements.length==0){Ext.each(links.elements,function(link){var label=document.createElement("span");label.innerHTML=link.innerHTML;tab.appendChild(label);});}},getMenuTabs:function(){return Ext.get("menuTabs").select(".tab").elements;},getMenuAdditionalTabs:function(){return this.getTabsBacklog().select(".tabToAdd").elements;},getTabElementForSpan:function(e){if(e.target==null)
return null;var parent=Ext.get(e.target).parent();if(parent==null)
return null;var element=parent.dom;return element;},onMouseOutAdditionalMenu:function(e){var element=this.getTabElementForSpan(e);if(element==null)
return;if(element.dd&&!element.isInMenu){Ext.get(e.target).removeClass("additionalMenuTabCustomize");}},onMouseOverAdditionalMenu:function(e){var element=this.getTabElementForSpan(e);if(element==null)
return;if(element.dd&&!element.isInMenu){Ext.get(e.target).addClass("additionalMenuTabCustomize");}},getPlaceHolders:function(){return Ext.get("menuTable").select(".tabPlace");},initializeItems:function(items,isInMenu){Ext.each(items,function(item){var customizer=new Tp.Menu.Customizer();item.isInMenu=isInMenu;var tab=Ext.get(item);customizer.replaceLinks(tab);tab.select("span").on("mouseover",customizer.onMouseOverAdditionalMenu,customizer);tab.select("span").on("mouseout",customizer.onMouseOutAdditionalMenu,customizer);if(!item.dd){item.dd=new Ext.dd.DD(item,'tabsDDGroup',{isTarget:false});}
else{item.dd.unlock();}
Ext.apply(item.dd,customizer);if(tab.hasClass("disabledTab")||tab.hasClass("disabledTabToAdd")){item.isDisabledTab=true;}
if(tab.getAttribute("disabled")=='disabled'){item.isDisabledTab=true;}
if(tab.hasClass("selectedTab")){item.isSelectedTab=true;tab.removeClass("selectedTab");}});},getTabsBacklog:function(){var backLog=Ext.get("morePanel");backLog.isBackLog=true;return backLog;},initialize:function(){if(!Ext.get("btnStartMenuCustomization"))
return;this.customizeButton=new Ext.Button({text:"Customize Menu",width:100,height:15,renderTo:"btnStartMenuCustomizationHolder"});this.customizeButton.on('click',this.onStartCustomization,this);this.doneButton=new Ext.Button({text:"Done",width:70,height:15,renderTo:"btnDoneCustomizeMenu",hidden:true});this.doneButton.on('click',this.onFinishCustomization,this);},onStartCustomization:function(){stopDropDownPanelHiding=true;var menuTabs=Ext.get("menuTabs");menuTabs.setHeight(menuTabs.getHeight()+5);menuTabs.select(".addMenuItems").hide();menuTabs.select(".addItemsMenu").hide();Ext.get("btnStartMenuCustomization").setVisibilityMode(2);Ext.get("btnStartMenuCustomization").hide();this.doneButton.show();this.initializeDragAndDrop();menuTabs.addClass("paneledit");var dragLabel=Ext.get("dragyour");dragLabel.setVisibilityMode(1);dragLabel.show();Ext.get("morePanel").on("mouseup",this.onMouseUpInBackLog,this);Ext.get("morePanel").setTop('');this.applyOverlay();Ext.EventManager.onWindowResize(this.applyOverlay,this);SetLastAction(null);},applyOverlay:function(){Tp.controls.getOverlay().show();},onFinishCustomization:function(){this.saveMenu();Ext.get("btnStartMenuCustomization").setVisibilityMode(2);Ext.get("btnStartMenuCustomization").show();this.doneButton.hide();this.removeDDForTabs(this.getMenuTabs());this.removeDDForTabs(this.getMenuAdditionalTabs());stopDropDownPanelHiding=false;var menuTabs=Ext.get("menuTabs");menuTabs.setHeight(menuTabs.getHeight()-5);menuTabs.removeClass("paneledit");menuTabs.select(".addMenuItems").removeClass("popupTab");var dragLabel=Ext.get("dragyour");dragLabel.setVisibilityMode(2);dragLabel.hide();var morePanel=Ext.get("morePanel");morePanel.removeListener("mouseup",this.onMouseUpInBackLog,this);morePanel.hide();Tp.controls.getOverlay().hide();Ext.get("actionGroupsViewMenu").removeClass("popupTab");Ext.get("menuTabs").select(".addMenuItems").show();},saveMenu:function(){var tabs=this.getMenuTabs();var menuItems=[];Ext.each(tabs,function(tab){var menu=tab.id.split('-')[1];menuItems.push(menu);});Ext.Ajax.request({url:appHostAndPath+'/PageServices/WebMethods.asmx/SaveMenu',headers:{'Content-Type':'application/json'},success:this.onSaveMenu,failure:this.onSaveFailed,jsonData:{'menuItems':menuItems}});},onSaveMenu:function(){SetLastAction("Menu saved");},onSaveFailed:function(){SetLastWarning("Menu is not saved due errors. Please try to save it again");},removeDDForTabs:function(tabs){var customizer=this;Ext.each(tabs,function(tab){customizer.showLinks(tab);tab.dd.lock();});},onMouseUpInBackLog:function(e){var element=this.getTabElementForSpan(e);if(element.dd!=null)
latestDrugMenuItem=element;if(!latestDrugMenuItem)
return;if(latestDrugMenuItem.isInMenu)
return;latestDrugMenuItem.dd.DDM.handleMouseUp(e);latestDrugMenuItem=null;},initializeDragAndDrop:function(){this.initializeItems(this.getMenuTabs(),true);var additional=this.getMenuAdditionalTabs();this.initializeItems(additional,false);var places=this.getPlaceHolders();var dd=new Ext.dd.DDTarget(this.getTabsBacklog(),'tabsDDGroup');Ext.each(places.elements,function(place){place.isBackLog=false;var dd=new Ext.dd.DDTarget(place,'tabsDDGroup');});},startDrag:function(){var el=this.getEl();latestDrugMenuItem=el;var tab=Ext.get(el);tab.addClass("dragTab");this.markAsPlaceHolder(tab.parent());var menu=Ext.get("menuTabs");menu.removeClass("paneledit");menu.addClass("paneledithover");},onDragEnter:function(evtObj,targetElId){var element=this.getEl();var tab=Ext.get(element);var originalPlace=tab.parent();var targetDropZone=Ext.get(targetElId);if(targetDropZone.isBackLog){if(element.isInMenu)
targetDropZone.addClass("menuBackLogHighlighted");return;}
if(!originalPlace||originalPlace.id==targetElId)
return;var originalX=originalPlace.getX();var left=tab.dom.style.left;var top=tab.dom.style.top;var leftNumber=parseInt(left.replace('px',''));var x=tab.getX();var y=tab.getY();var innerTab=targetDropZone.select(".tab");this.shiftTabs(tab,innerTab.elements[0]);targetDropZone.appendChild(tab);var currentX=targetDropZone.getX();var delta=originalX-currentX;leftNumber=leftNumber+delta;tab.applyStyles({position:'relative',left:leftNumber+"px",top:top});this.deltaSetXY=null;this.markAsPlaceHolder(targetDropZone);this.unmarkAsTabPlaceHolder(originalPlace);},shiftTabs:function(originalTab,targetTab){var tabs=this.getMenuTabs();var originIndex=this.getTabPostionIndex(tabs,originalTab);var targetIndex=this.getTabPostionIndex(tabs,targetTab);var place=null;for(var i=originIndex;i<targetIndex;i++){place=place==null?Ext.get(tabs[i]).parent():place;var tabToMove=tabs[i+1];var newPlace=Ext.get(tabToMove).parent();place.appendChild(tabToMove);place=newPlace;}
for(var i=originIndex;i>targetIndex;i--){place=place==null?Ext.get(tabs[i]).parent():place;var tabToMove=tabs[i-1];var newPlace=Ext.get(tabToMove).parent();place.appendChild(tabToMove);place=newPlace;}},getTabPostionIndex:function(tabs,tab){for(var i=0;i<tabs.length;i++){if(Ext.get(tabs[i]).dom.id==Ext.get(tab).dom.id)
return i;}},onDragOut:function(evtObj,targetElId){var dropZone=Ext.get(targetElId);var element=this.getEl();if(dropZone.isBackLog&&element.isInMenu){dropZone.removeClass("menuBackLogHighlighted");return;}
if(dropZone.isBackLog&&!element.isInMenu){element.isInMenu=true;var place=this.createPlaceHolderInMenu();place.isBackLog=false;var cell=Ext.get(place);var tab=Ext.get(element);tab.removeClass("tabToAdd");tab.addClass("tab");this.changeParentOfDragItem(tab,cell);this.markAsPlaceHolder(cell);place.isBackLog=false;var dd=new Ext.dd.DD(place,'tabsDDGroup');var placeHolderInBackLog=Ext.get(this.getBacklogPlaceholder(element.id));placeHolderInBackLog.setVisibilityMode(2);placeHolderInBackLog.hide();}},changeParentOfDragItem:function(tab,targetParent){var originalPlace=tab.parent();var originalX=originalPlace.getX();var originalY=originalPlace.getY();var left=tab.dom.style.left;var top=tab.dom.style.top;var leftNumber=parseInt(left.replace('px',''));var topNumber=parseInt(top.replace('px',''));targetParent.appendChild(tab);var currentX=targetParent.getX();var currentY=targetParent.getY();var deltaX=currentX-originalX;var deltaY=currentY-originalY;leftNumber=leftNumber-deltaX;topNumber=topNumber-deltaY;tab.applyStyles({position:'relative',left:leftNumber+"px",top:topNumber+"px"});this.deltaSetXY=null;},createPlaceHolderInMenu:function(){var table=Ext.get("menuTable");var td=document.createElement("td");td.className="tabPlace";Ext.get(td).insertBefore(Ext.get("moreMenuHolder"));return td;},getBacklogPlaceholder:function(id){var placeId=id+" Place";var place=Ext.get(placeId);if(place!=null){place.setVisibilityMode(2);place.show();return placeId;}
var parts=id.split("-");var group=parts[0]+" Action Group";var tableGroup=Ext.get(group);if(tableGroup==null)
throw"Group for menu item is not found: "+group;var tableBody=tableGroup.select("tbody").elements[0];var tr=document.createElement("tr");var td=document.createElement("td");td.id=placeId;tr.appendChild(td);tableBody.appendChild(tr);return placeId;},onDragDrop:function(ev,targetElementID){var element=this.getEl();var backLog=this.getTabsBacklog();latestDrugMenuItem=null;if(backLog.id==targetElementID&&element.isInMenu){var placeId=this.getBacklogPlaceholder(element.id);var placeHolder=Ext.get(placeId);if(placeHolder==null)
throw"Place holder for menu is not found: "+placeId;var dragItem=Ext.get(element);var originalPlaceHolder=dragItem.parent();element.isInMenu=false;dragItem.removeClass("tab");dragItem.removeClass("disabledTab");if(element.isDisabled)
dragItem.addClass("disabledTabToAdd");dragItem.addClass("tabToAdd");placeHolder.appendChild(dragItem);this.removePlaceHolderFromMenu(originalPlaceHolder);backLog.removeClass("menuBackLogHighlighted");}},removePlaceHolderFromMenu:function(placeHolder){var parent=placeHolder.parent();parent.dom.removeChild(placeHolder.dom);},endDrag:function(){var element=this.getEl();var el=Ext.get(element);el.clearPositioning();this.unmarkAsTabPlaceHolder(el.parent());el.removeClass("dragTab");if(element.isInMenu){el.select("span").removeClass("additionalMenuTabCustomize");if(element.isDisabledTab){el.addClass("disabledTab");el.removeClass("disabledTabToAdd");}}
else{if(element.isDisabledTab){el.addClass("disabledTabToAdd");}}
var menu=Ext.get("menuTabs");menu.addClass("paneledit");menu.removeClass("paneledithover");},markAsPlaceHolder:function(placeHolder){if(this.getEl().isInMenu)
placeHolder.addClass("tabPlaceHolder");},unmarkAsTabPlaceHolder:function(placeHolder){placeHolder.removeClass("tabPlaceHolder");}});Ext.onReady(function(){var customizer=new Tp.Menu.Customizer();customizer.initialize();FixUpDDM();});function FixUpDDM(){if(Ext.isIE){Ext.EventManager.removeListener(document,'mousemove',Ext.dd.DragDropMgr.handleMouseMove,Ext.dd.DragDropMgr);Ext.EventManager.on(document,"mousemove",handleMouseMoveForMenuOverride,Ext.dd.DragDropMgr,true);}}
function handleMouseMoveForMenuOverride(e){if(!Ext.dd.DragDropMgr.dragCurrent){return true;}
if(!Ext.dd.DragDropMgr.dragThreshMet){var diffX=Math.abs(Ext.dd.DragDropMgr.startX-e.getPageX());var diffY=Math.abs(Ext.dd.DragDropMgr.startY-e.getPageY());if(diffX>Ext.dd.DragDropMgr.clickPixelThresh||diffY>Ext.dd.DragDropMgr.clickPixelThresh){Ext.dd.DragDropMgr.startDrag(Ext.dd.DragDropMgr.startX,Ext.dd.DragDropMgr.startY);}}
if(Ext.dd.DragDropMgr.dragThreshMet){Ext.dd.DragDropMgr.dragCurrent.b4Drag(e);Ext.dd.DragDropMgr.dragCurrent.onDrag(e);if(!Ext.dd.DragDropMgr.dragCurrent.moveOnly){Ext.dd.DragDropMgr.fireEvents(e,false);}}
Ext.dd.DragDropMgr.stopEvent(e);return true;};
/*TriggerItem.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.TriggerItem=Ext.extend(Object,{itemSelector:null,element:null,context:null,constructor:function(config){Tp.util.validateForNulls([config]);Tp.util.validateForNulls([config.itemSelector]);Ext.apply(this,config);this.element=Ext.get(config.id);this.element.on('click',this._onClick,this);},_onClick:function(){this.itemSelector.show(this,this.context);},update:function(newContext,html){this.context=newContext;this.element.update(html);this.element.highlight("ffd700",{attr:"background-color",endColor:"ffffff",easing:'easeIn',duration:2.5});}});;
/*AssignmentCollectorStorage.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.AssignmentCollectorStorage=Ext.extend(Object,{data:null,showWithoutFiltering:false,constructor:function(config){Ext.apply(this,config);},createMenuItem:function(dataItem){var menuItem={clickHideDelay:500,text:dataItem.Text,htmlToRender:dataItem.Html,isGroup:dataItem.IsGroup,isShowMore:dataItem.IsShowMore,clickable:true,dataItem:dataItem,cls:dataItem.Cls,activeClass:''};if(dataItem.ShowIcon){menuItem.iconCls='menu-user-icon';}
if(dataItem.IsGroup){menuItem.hideOnClick=false;}
return menuItem;},findKeys:function(contextFilterKeys,item){var foundKeys=[];if(contextFilterKeys.length==0)
return foundKeys;for(var j=0;j<contextFilterKeys.length;j++){var resultKey;resultKey=Array.findOne(item.FilterKeys,function(key){if(key==contextFilterKeys[j])return true;});if(resultKey){foundKeys.push(resultKey);}}
return foundKeys;},IsAssignableAlreadyAssignedToUserFromContext:function(item,context){return item.Id==context.UserId;},IsSameProject:function(item,context){return item.Projects.indexOf(context.ProjectId)!=-1;},IsProjectIdDefined:function(item){return item.Projects&&item.Projects.length>0;},filterDataForRole:function(roleId,projectId,showAll){var filteredData=[];var allDataWithoutShowMore=[];var countOfItems=0;var showMore=null;var arrayLenght=this.data.length;for(var i=0;i<arrayLenght;i++){var dataItem=this.data[i];if(!dataItem.IsShowMore)
allDataWithoutShowMore.push(dataItem);else
showMore=dataItem;if(showAll)
continue;if(roleId==dataItem.RoleId||dataItem.IsExtra){if(this.checkIsValidGroup(dataItem,i,arrayLenght,projectId)||!dataItem.IsGroup)
{if(!dataItem.IsExtra)
countOfItems++;if(!dataItem.IsShowMore)
filteredData.push(dataItem);}}}
if(countOfItems==0)
return allDataWithoutShowMore;if(showMore!=null)
filteredData.push(showMore);return filteredData;},checkIsValidGroup:function(dataItem,index,arrayLenght,projectId)
{return(dataItem.IsGroup&&index<arrayLenght-1&&this.data[index+1].RoleId==dataItem.RoleId&&this.data[index+1].Projects.contains(projectId));},appendCriteriaKeys:function(context,showAll){var result=[];var contextFilterKeys=context.FilterKeys;var items=this.filterDataForRole(context.ActorId,context.ProjectId,showAll);for(var i=0;i<items.length;i++){var item=items[i];if(item.Id==context.UserId&&!item.IsShowMore){continue;}
if(this.IsProjectIdDefined(item)&&!this.IsSameProject(item,context)){continue;}
if(this.IsAssignableAlreadyAssignedToUserFromContext(item,context)){continue;}
var foundKeys=this.findKeys(contextFilterKeys,item);if(foundKeys.length==0&&contextFilterKeys.length>0&&item.FilterKeys.length>0){continue;}
if(foundKeys.length>0){var clonedItem=Tp.util.clone(item);clonedItem.Text=String.format("{0}({1})",clonedItem.Text,foundKeys.join(", "));result.push(clonedItem);continue;}
if(item.IsGroup&&result.length>0)
if(result[result.length-1].IsGroup)
result.pop();result.push(item);}
if(result.length>0)
if(result[result.length-1].IsGroup)
result.pop();return result;},getMenuItems:function(context,showAll){var arrayWithCriteriaKeys=this.appendCriteriaKeys(context,showAll||this.showWithoutFiltering);var result=[];for(var i=0;i<arrayWithCriteriaKeys.length;i++){var menuItem=arrayWithCriteriaKeys[i];result.push(this.createMenuItem(menuItem));}
return result;}});;
/*TestCaseEditorFormPanel.js*/
Ext.ns('Tp.controls.TestCases');Tp.controls.TestCaseEditorFormPanel=Ext.extend(Ext.form.FormPanel,{constructor:function(){Tp.controls.TestCaseEditorFormPanel.superclass.constructor.call(this,this._createConfig());setTimeout(function(){var txtName=Ext.fly('txtName');if(txtName)txtName.focus();},1000);},_createConfig:function(){return{baseCls:'x-plain',defaultType:'textfield',layout:'table',layoutConfig:{columns:2},items:[{xtype:'hidden',name:'generalID',colspan:2,autoWidth:true},{xtype:'label',text:'Name',colspan:2,autoWidth:true},{id:'txtName',xtype:'textfield',text:'name',name:'name',width:'99.2%',colspan:2},{xtype:'label',text:'Steps',autoWidth:true},{xtype:'label',text:'Success',autoWidth:true},this._createHtmlEditor('steps'),this._createHtmlEditor('success')]};},_createHtmlEditor:function(htmlEditorNameId){return{id:htmlEditorNameId,name:htmlEditorNameId,xtype:'htmleditor',enableColors:false,enableAlignments:false,enableFontSize:false,enableFormat:true,value:'<br/>'}}});;
/*TestCaseEditorWindow.js*/
Ext.ns('Tp.controls.TestCases');Tp.controls.TestCaseEditorWindow=Ext.extend(Ext.Window,{panel:null,constructor:function(config){Ext.apply(config,this._createConfig());Tp.controls.TestCaseEditorWindow.superclass.constructor.call(this,config);this.addEvents("saved")},_createConfig:function(){this.panel=new Tp.controls.TestCaseEditorFormPanel({});return{closeAction:'hide',plain:true,buttonAlign:'center',resizable:false,items:this.panel,width:1033,modal:true,buttons:[{text:'Save',name:'saveButton',scope:this,handler:this.onSaveClick},{text:'Cancel',name:'cancelButton',scope:this,handler:this.onCancelClick}]};},show:function(testCaseId){this.title='Edit Test Case';Tp.controls.TestCaseEditorWindow.superclass.show.apply(this,arguments);var handler=Function.createDelegate(this,this.onCompleteLoadingDetails);Tp.Web.Extensions.ExtJs.TestCaseListService.GetChanges(testCaseId,handler);},onSaveClick:function(){var changes=this.panel.getForm().getValues();Tp.Web.Extensions.ExtJs.TestCaseListService.SetChanges(changes,Function.createDelegate(this,this.onSaved));},onCancelClick:function(){this.hide();this.panel.getForm().reset();},onSaved:function(){this.fireEvent("saved");this.hide();this.panel.getForm().reset();},onCompleteLoadingDetails:function(changes){this.panel.getForm().setValues(changes);}});;
/*TestCaseCreateEditorWindow.js*/
Ext.ns('Tp.controls.TestCases');Tp.controls.TestCaseCreateEditorWindow=Ext.extend(Tp.controls.TestCaseEditorWindow,{onSaveClick:function(){var changes=this.panel.getForm().getValues();if(changes.name==''||changes.steps==''||changes.success==''){Ext.Msg.show({title:'Validation',msg:'Please fill all fields in',buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR});return;}
Tp.Web.Extensions.ExtJs.TestCaseListService.CreateTestCase(changes,this.initialConfig.userStoryId,Function.createDelegate(this,this.onSaved));},show:function(){this.title='Add Test Case';Tp.controls.TestCaseEditorWindow.superclass.show.apply(this,arguments);}});;
/*EditTestCaseOpenByDoubleClick.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.EditTestCaseOpenByDoubleClick=Ext.extend(Object,{_form:null,constructor:function(config){Ext.apply(this,config);},init:function(grid){grid.on("celldblclick",this._onEditTestCase,this);grid.on("expandedareadblclick",this._onExpandedAreaDblClick,this);},_onExpandedAreaDblClick:function(recordId){this.showForm(recordId);},_onEditTestCase:function(grid,rowIndex,columnIndex,eventObj){var targetElement=eventObj.getTarget();if(targetElement.tagName.toLowerCase()=='button'){return;}
var record=grid.store.getAt(rowIndex);this.showForm(record.id);},showForm:function(testCaseId){this._form=new Tp.controls.TestCaseEditorWindow({});this._form.on("saved",this.onSaveCallBack);this._form.show(testCaseId);},_properCellToStartEditClicked:function(grid,columnIndex){return grid.colModel.getColumnAt(columnIndex).id=='Name';}});;
/*Handler.js*/
Ext.ns('Tp.actions');Tp.actions.Handler=Ext.extend(Object,{_onSucessCallback:null,handle:function(onSucessCallback){this._onSucessCallback=onSucessCallback;},_onSaveCallback:function(context){if(this._onSucessCallback!=null){this._onSucessCallback(context);}},_onErrorCallback:function(error){SetLastWarning(error.get_message());}});;
/*PrioritizePlugin.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.PrioritizePlugin=Ext.extend(Ext.util.Observable,{constructor:function(config){this.prioritizationService=config.prioritizationService;Tp.controls.grid.plugins.PrioritizePlugin.superclass.constructor.apply(this,arguments);},init:function(component){component.on('beforerowmove',Tp.controls.grid.Handlers.getReorderHandler(component.id,this.prioritizationService));component.on('onPriorityChanged',this._onPriorityChanged);},_onPriorityChanged:function(callbackParams){var grid=callbackParams.grid;var store=grid.getStore();var record=store.getById(callbackParams.recordId);record.beginEdit();record.set('priority',callbackParams.newPriorityName);record.commit();record.endEdit();if(callbackParams.target){callbackParams.target.unlock();}}});;
/*ChangeStatePlugin.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.ChangeStatePlugin=Ext.extend(Ext.util.Observable,{constructor:function(config){this.testCaseService=config.testCaseService;Tp.controls.grid.plugins.ChangeStatePlugin.superclass.constructor.apply(this,arguments);},init:function(component){component.on("entityStateChanged",this._onEntityStateChanged);},_onEntityStateChanged:function(callbackParams){var grid=callbackParams.grid;var store=grid.getStore();var record=store.getById(callbackParams.recordId);record.beginEdit();record.set('LastRunDate',callbackParams.newLastRunDate);record.set('LastStatus',callbackParams.newLastStatus);record.commit();record.endEdit();}});;
/*ChangeAssignmentHandler.js*/
Ext.ns('Tp.actions');Tp.actions.ChangeAssignmentHandler=Ext.extend(Tp.actions.Handler,{handle:function(item,context,onSucessCallback){Tp.actions.ChangeAssignmentHandler.superclass.handle.call(this,onSucessCallback);WebMethods.ChangeAssignment(item,context,this._onSaveCallback.createDelegate(this),this._onErrorCallback.createDelegate(this));}});;
/*QuicklyAddTestCase.js*/
function QuicklyAddTestCase(gridId,userStoryId){var panel=new Tp.controls.TestCaseCreateEditorWindow({userStoryId:userStoryId});this.gridId=gridId;panel.on("saved",Tp.controls.grid.Handlers.refreshGrid(this.gridId),this),panel.show();};
/*TriggerItem.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.TriggerItem=Ext.extend(Object,{itemSelector:null,element:null,context:null,constructor:function(config){Tp.util.validateForNulls([config]);Tp.util.validateForNulls([config.itemSelector]);Ext.apply(this,config);this.element=Ext.get(config.id);this.element.on('click',this._onClick,this);},_onClick:function(){this.itemSelector.show(this,this.context);},update:function(newContext,html){this.context=newContext;this.element.update(html);this.element.highlight("ffd700",{attr:"background-color",endColor:"ffffff",easing:'easeIn',duration:2.5});}});;
/*BasePopup.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.BasePopup=Ext.extend(Ext.util.Observable,{container:null,triggerElement:null,_checkTriggerElement:function(config){if(!config.triggerElement)
throw"Tp.controls.menu.BasePopup triggerElement was not configure";this.triggerElement=Ext.get(config.triggerElement);if(!this.triggerElement)
throw String.format("Tp.controls.menu.BasePopup triggerElement was not found by {0}",config.triggerElement);},_createContainer:function(config){this.container=new Ext.Element(document.createElement('div'));var brElement=new Ext.Element(document.createElement('br'));this.container.insertAfter(this.triggerElement);brElement.insertAfter(this.triggerElement);if(config.className)
this.container.addClass(config.className);},constructor:function(config){Ext.apply(this,config);this._checkTriggerElement(config);this._createContainer(config);this.addEvents({"beforeshow":true,"aftershow":true,"beforehide":true,"afterhide":true});Tp.controls.menu.BasePopup.superclass.constructor.call(this,config);Application.getMenuBootsrap().registerPopup(this);},_triggerElementClickHandler:function(){this.toggle();},getContainerElement:function(){return this.container;},getTriggerElement:function(){return this.triggerElement;},show:function(){this.fireEvent("beforeshow");this.getContainerElement().show();this.fireEvent("aftershow");},toggle:function(){if(!this.isVisible()){this.show();}
else{this.hide();}},isVisible:function(){return this.getContainerElement().isVisible();},hide:function(){this.fireEvent("beforehide");this.getContainerElement().hide();this.fireEvent("afterhide");},addClass:function(className){this.getContainerElement().addClass(className);}});;
/*SearchPopup.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.SearchPopup=Ext.extend(Tp.controls.menu.BasePopup,{constructor:function(config){Tp.controls.menu.SearchPopup.superclass.constructor.call(this,config);this.alignToElement=Ext.get(this.alignTo);Ext.EventManager.onWindowResize(this.onResize,this);this.on('aftershow',this.onAfterShow,this);this.on('beforehide',this.onBeforeHide,this);var addvancedSearchButton=Ext.get('popupSearchAdvanced');addvancedSearchButton.on('click',this.onSearchClick,this);this.searchDiv=new Ext.get('topSearch');},_createContainer:function(){this.container=Ext.get(this.containerEl);this.container.setVisibilityMode(Ext.Element.DISPLAY);},alignToTrigerElement:function(){this.container.setTop(this.alignToElement.getTop()-8);this.container.setLeft(this.alignToElement.getRight()-this.container.getWidth()+22);},synchronizeElements:function(source,dest){var object={value:source.getValue(),selectionStart:source.dom.selectionStart,selectionEnd:source.dom.selectionEnd};dest.focus();dest.dom.value=source.dom.value;dest.dom.selectionStart=object.selectionStart;dest.dom.selectionEnd=object.selectionEnd;},onAfterShow:function(){this.container.removeClass('dropDownPanel');this.alignToTrigerElement();this.synchronizeElements(Ext.get(this.generalSearchTextBox),Ext.get(this.searchTextBox));this.searchDiv.hide();var observer=searchObserverFactory.getObserverByElement(this.searchTextBox);observer.setSearchButtonVisibility();},onSearchClick:function(){this.hide();},onBeforeHide:function(){this.searchDiv.show();this.synchronizeElements(Ext.get(this.searchTextBox),Ext.get(this.generalSearchTextBox));},onResize:function(){this.alignToTrigerElement();}});Tp.controls.menu.SearchObserver=Ext.extend(Object,{_extElements:null,_searchButtonElement:null,_entityTypesListElement:null,_entityStatesListElement:null,constructor:function(config){Ext.apply(this,config);this._searchButtonElement=Ext.get(this.searchButton);this._attachToControls();this.setSearchButtonVisibility();this._setupEntityStatesEnabling();},_attachToControls:function(){this._extElements=[];for(var i=0;i<this.elements.length;i++){var element=Ext.get(this.elements[i]);this._extElements.push(element);element.on('change',this._onValueChanged,this);element.on('click',this._onValueChanged,this);var keyHandler=function(){window.setTimeout(Function.createDelegate(this,this._onValueChanged),0);};element.on('keydown',keyHandler,this)}
this._entityTypesListElement=Ext.get(this.entityTypesList);this._entityTypesListElement.on('change',this._onEntityTypeChange,this);this._entityStatesListElement=Ext.get(this.entityStateList);},_setupEntityStatesEnabling:function(){var options=this._entityStatesListElement.getAttribute('options');var entityKindId=this._entityTypesListElement.getValue(true);if(isNaN(entityKindId)){for(var i=0;i<options.length;i++){Ext.fly(options[i]).set({disabled:false},false);}}
else{var disabledCount=0;for(var i=1;i<options.length;i++){var itemElement=Ext.fly(options[i]);var disabled=!_entityStateCollection.isStateEvailableForEntity(itemElement.getValue(),entityKindId);itemElement.set({disabled:disabled},false);if(disabled){disabledCount++;}
if(disabled&&this._entityStatesListElement.getValue()==itemElement.getValue()){this._entityStatesListElement.set({value:''},false);}}
Ext.fly(options[0]).set({disabled:disabledCount==options.length-1},false);}},_onEntityTypeChange:function(){return this._setupEntityStatesEnabling();},_onValueChanged:function(){this.setSearchButtonVisibility();},setSearchButtonVisibility:function(){for(var i=0;i<this._extElements.length;i++){if(this._extElements[i].getValue()!=null&&this._extElements[i].getValue()!=''){this._searchButtonElement.dom.disabled=null;return;}}
this._searchButtonElement.set({disabled:true},true);}});Tp.controls.menu.EntityStateContaier=Ext.extend(Object,{_states:null,constructor:function(config){this._states=config;},isStateEvailableForEntity:function(stateName,enityKindId){var stateNames=this._getEntityStateNameForEntity(enityKindId);for(var i=0;i<stateNames.length;i++){if(stateNames[i]==stateName){return true;}}
return false;},_getEntityStateNameForEntity:function(enityKindId){for(var i=0;i<this._states.length;i++){if(this._states[i].EnityKind==enityKindId){return this._states[i].EntityStateName;}}
return[];}});Tp.controls.menu.SearchObserverFactory=Ext.extend(Object,{_cache:null,_nullObserver:null,constructor:function(){this._cache=[];this._nullObserver=Tp.NullObject(Tp.controls.menu.SearchObserver);},create:function(config){var searchObserver=new Tp.controls.menu.SearchObserver(config);var copyOfConfig={};Ext.apply(copyOfConfig,config);copyOfConfig.Contains=function(element){if(this.elements.indexOf(element)!=-1){return true;}
return this.searchButton==element;};this._cache.push({config:copyOfConfig,observer:searchObserver});},getObserverByElement:function(element){for(var i=0;i<this._cache.length;i++){if(this._cache[i].config.Contains(element)){return this._cache[i].observer;}}
return this._nullObserver;}});var searchObserverFactory=new Tp.controls.menu.SearchObserverFactory();;
/*AssignmentCollectorStorage.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.AssignmentCollectorStorage=Ext.extend(Object,{data:null,showWithoutFiltering:false,constructor:function(config){Ext.apply(this,config);},createMenuItem:function(dataItem){var menuItem={clickHideDelay:500,text:dataItem.Text,htmlToRender:dataItem.Html,isGroup:dataItem.IsGroup,isShowMore:dataItem.IsShowMore,clickable:true,dataItem:dataItem,cls:dataItem.Cls,activeClass:''};if(dataItem.ShowIcon){menuItem.iconCls='menu-user-icon';}
if(dataItem.IsGroup){menuItem.hideOnClick=false;}
return menuItem;},findKeys:function(contextFilterKeys,item){var foundKeys=[];if(contextFilterKeys.length==0)
return foundKeys;for(var j=0;j<contextFilterKeys.length;j++){var resultKey;resultKey=Array.findOne(item.FilterKeys,function(key){if(key==contextFilterKeys[j])return true;});if(resultKey){foundKeys.push(resultKey);}}
return foundKeys;},IsAssignableAlreadyAssignedToUserFromContext:function(item,context){return item.Id==context.UserId;},IsSameProject:function(item,context){return item.Projects.indexOf(context.ProjectId)!=-1;},IsProjectIdDefined:function(item){return item.Projects&&item.Projects.length>0;},filterDataForRole:function(roleId,projectId,showAll){var filteredData=[];var allDataWithoutShowMore=[];var countOfItems=0;var showMore=null;var arrayLenght=this.data.length;for(var i=0;i<arrayLenght;i++){var dataItem=this.data[i];if(!dataItem.IsShowMore)
allDataWithoutShowMore.push(dataItem);else
showMore=dataItem;if(showAll)
continue;if(roleId==dataItem.RoleId||dataItem.IsExtra){if(this.checkIsValidGroup(dataItem,i,arrayLenght,projectId)||!dataItem.IsGroup)
{if(!dataItem.IsExtra)
countOfItems++;if(!dataItem.IsShowMore)
filteredData.push(dataItem);}}}
if(countOfItems==0)
return allDataWithoutShowMore;if(showMore!=null)
filteredData.push(showMore);return filteredData;},checkIsValidGroup:function(dataItem,index,arrayLenght,projectId)
{return(dataItem.IsGroup&&index<arrayLenght-1&&this.data[index+1].RoleId==dataItem.RoleId&&this.data[index+1].Projects.contains(projectId));},appendCriteriaKeys:function(context,showAll){var result=[];var contextFilterKeys=context.FilterKeys;var items=this.filterDataForRole(context.ActorId,context.ProjectId,showAll);for(var i=0;i<items.length;i++){var item=items[i];if(item.Id==context.UserId&&!item.IsShowMore){continue;}
if(this.IsProjectIdDefined(item)&&!this.IsSameProject(item,context)){continue;}
if(this.IsAssignableAlreadyAssignedToUserFromContext(item,context)){continue;}
var foundKeys=this.findKeys(contextFilterKeys,item);if(foundKeys.length==0&&contextFilterKeys.length>0&&item.FilterKeys.length>0){continue;}
if(foundKeys.length>0){var clonedItem=Tp.util.clone(item);clonedItem.Text=String.format("{0}({1})",clonedItem.Text,foundKeys.join(", "));result.push(clonedItem);continue;}
if(item.IsGroup&&result.length>0)
if(result[result.length-1].IsGroup)
result.pop();result.push(item);}
if(result.length>0)
if(result[result.length-1].IsGroup)
result.pop();return result;},getMenuItems:function(context,showAll){var arrayWithCriteriaKeys=this.appendCriteriaKeys(context,showAll||this.showWithoutFiltering);var result=[];for(var i=0;i<arrayWithCriteriaKeys.length;i++){var menuItem=arrayWithCriteriaKeys[i];result.push(this.createMenuItem(menuItem));}
return result;}});;
/*ProjectContextService.js*/
Ext.ns('ExtJs.tp.Ajax');ExtJs.tp.Ajax.ProjectContextService=Ext.extend(Ext.util.Observable,{constructor:function(config){config=Ext.apply({},config);ExtJs.tp.Ajax.ProjectContextService.superclass.constructor.call(this,config);},onSetProjectAsCurrentSucceed:function(response){var uri=jsonParse(response.responseText).d.uri;document.location.href=uri;},onAccessServiceFailure:function(response){Ext.MessageBox.show({title:response.statusText,msg:"Failed to access to ProjectContextService:<br>"+response.responseText,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});},setCurrent:function(projectIds){if(projectIds.constructor!=Array){projectIds=[projectIds];}
Ext.Ajax.request({url:appHostAndPath+'/Wcf/ProjectContextService.asmx/SetCurrent',headers:{'Content-Type':'application/json'},success:this.onSetProjectAsCurrentSucceed,failure:Function.createDelegate(this,this.onAccessServiceFailure),jsonData:{'projectIds':projectIds}});},getSerializedProjectContextParameter:function(selectedProjectId,acid,onSucceed){Ext.Ajax.request({url:appHostAndPath+'/Wcf/ProjectContextService.asmx/GetSerializedProjectContextParameter',headers:{'Content-Type':'application/json'},success:onSucceed,failure:Function.createDelegate(this,this.onAccessServiceFailure),jsonData:{'selectedProjectId':selectedProjectId,'acid':acid}});}});var projectContextService=null;Ext.onReady(function(){projectContextService=new ExtJs.tp.Ajax.ProjectContextService();});;
/*TestCaseEditorFormPanel.js*/
Ext.ns('Tp.controls.TestCases');Tp.controls.TestCaseEditorFormPanel=Ext.extend(Ext.form.FormPanel,{constructor:function(){Tp.controls.TestCaseEditorFormPanel.superclass.constructor.call(this,this._createConfig());setTimeout(function(){var txtName=Ext.fly('txtName');if(txtName)txtName.focus();},1000);},_createConfig:function(){return{baseCls:'x-plain',defaultType:'textfield',layout:'table',layoutConfig:{columns:2},items:[{xtype:'hidden',name:'generalID',colspan:2,autoWidth:true},{xtype:'label',text:'Name',colspan:2,autoWidth:true},{id:'txtName',xtype:'textfield',text:'name',name:'name',width:'99.2%',colspan:2},{xtype:'label',text:'Steps',autoWidth:true},{xtype:'label',text:'Success',autoWidth:true},this._createHtmlEditor('steps'),this._createHtmlEditor('success')]};},_createHtmlEditor:function(htmlEditorNameId){return{id:htmlEditorNameId,name:htmlEditorNameId,xtype:'htmleditor',enableColors:false,enableAlignments:false,enableFontSize:false,enableFormat:true,value:'<br/>'}}});;
/*TestCaseEditorWindow.js*/
Ext.ns('Tp.controls.TestCases');Tp.controls.TestCaseEditorWindow=Ext.extend(Ext.Window,{panel:null,constructor:function(config){Ext.apply(config,this._createConfig());Tp.controls.TestCaseEditorWindow.superclass.constructor.call(this,config);this.addEvents("saved")},_createConfig:function(){this.panel=new Tp.controls.TestCaseEditorFormPanel({});return{closeAction:'hide',plain:true,buttonAlign:'center',resizable:false,items:this.panel,width:1033,modal:true,buttons:[{text:'Save',name:'saveButton',scope:this,handler:this.onSaveClick},{text:'Cancel',name:'cancelButton',scope:this,handler:this.onCancelClick}]};},show:function(testCaseId){this.title='Edit Test Case';Tp.controls.TestCaseEditorWindow.superclass.show.apply(this,arguments);var handler=Function.createDelegate(this,this.onCompleteLoadingDetails);Tp.Web.Extensions.ExtJs.TestCaseListService.GetChanges(testCaseId,handler);},onSaveClick:function(){var changes=this.panel.getForm().getValues();Tp.Web.Extensions.ExtJs.TestCaseListService.SetChanges(changes,Function.createDelegate(this,this.onSaved));},onCancelClick:function(){this.hide();this.panel.getForm().reset();},onSaved:function(){this.fireEvent("saved");this.hide();this.panel.getForm().reset();},onCompleteLoadingDetails:function(changes){this.panel.getForm().setValues(changes);}});;
/*TestCaseCreateEditorWindow.js*/
Ext.ns('Tp.controls.TestCases');Tp.controls.TestCaseCreateEditorWindow=Ext.extend(Tp.controls.TestCaseEditorWindow,{onSaveClick:function(){var changes=this.panel.getForm().getValues();if(changes.name==''||changes.steps==''||changes.success==''){Ext.Msg.show({title:'Validation',msg:'Please fill all fields in',buttons:Ext.Msg.OK,icon:Ext.MessageBox.ERROR});return;}
Tp.Web.Extensions.ExtJs.TestCaseListService.CreateTestCase(changes,this.initialConfig.userStoryId,Function.createDelegate(this,this.onSaved));},show:function(){this.title='Add Test Case';Tp.controls.TestCaseEditorWindow.superclass.show.apply(this,arguments);}});;
/*EditTestCaseOpenByDoubleClick.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.EditTestCaseOpenByDoubleClick=Ext.extend(Object,{_form:null,constructor:function(config){Ext.apply(this,config);},init:function(grid){grid.on("celldblclick",this._onEditTestCase,this);grid.on("expandedareadblclick",this._onExpandedAreaDblClick,this);},_onExpandedAreaDblClick:function(recordId){this.showForm(recordId);},_onEditTestCase:function(grid,rowIndex,columnIndex,eventObj){var targetElement=eventObj.getTarget();if(targetElement.tagName.toLowerCase()=='button'){return;}
var record=grid.store.getAt(rowIndex);this.showForm(record.id);},showForm:function(testCaseId){this._form=new Tp.controls.TestCaseEditorWindow({});this._form.on("saved",this.onSaveCallBack);this._form.show(testCaseId);},_properCellToStartEditClicked:function(grid,columnIndex){return grid.colModel.getColumnAt(columnIndex).id=='Name';}});;
/*Handler.js*/
Ext.ns('Tp.actions');Tp.actions.Handler=Ext.extend(Object,{_onSucessCallback:null,handle:function(onSucessCallback){this._onSucessCallback=onSucessCallback;},_onSaveCallback:function(context){if(this._onSucessCallback!=null){this._onSucessCallback(context);}},_onErrorCallback:function(error){SetLastWarning(error.get_message());}});;
/*PrioritizePlugin.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.PrioritizePlugin=Ext.extend(Ext.util.Observable,{constructor:function(config){this.prioritizationService=config.prioritizationService;Tp.controls.grid.plugins.PrioritizePlugin.superclass.constructor.apply(this,arguments);},init:function(component){component.on('beforerowmove',Tp.controls.grid.Handlers.getReorderHandler(component.id,this.prioritizationService));component.on('onPriorityChanged',this._onPriorityChanged);},_onPriorityChanged:function(callbackParams){var grid=callbackParams.grid;var store=grid.getStore();var record=store.getById(callbackParams.recordId);record.beginEdit();record.set('priority',callbackParams.newPriorityName);record.commit();record.endEdit();if(callbackParams.target){callbackParams.target.unlock();}}});;
/*ChangeStatePlugin.js*/
Ext.ns('Tp.controls.grid.plugins');Tp.controls.grid.plugins.ChangeStatePlugin=Ext.extend(Ext.util.Observable,{constructor:function(config){this.testCaseService=config.testCaseService;Tp.controls.grid.plugins.ChangeStatePlugin.superclass.constructor.apply(this,arguments);},init:function(component){component.on("entityStateChanged",this._onEntityStateChanged);},_onEntityStateChanged:function(callbackParams){var grid=callbackParams.grid;var store=grid.getStore();var record=store.getById(callbackParams.recordId);record.beginEdit();record.set('LastRunDate',callbackParams.newLastRunDate);record.set('LastStatus',callbackParams.newLastStatus);record.commit();record.endEdit();}});;
/*ChangeAssignmentHandler.js*/
Ext.ns('Tp.actions');Tp.actions.ChangeAssignmentHandler=Ext.extend(Tp.actions.Handler,{handle:function(item,context,onSucessCallback){Tp.actions.ChangeAssignmentHandler.superclass.handle.call(this,onSucessCallback);WebMethods.ChangeAssignment(item,context,this._onSaveCallback.createDelegate(this),this._onErrorCallback.createDelegate(this));}});;
/*QuicklyAddTestCase.js*/
function QuicklyAddTestCase(gridId,userStoryId){var panel=new Tp.controls.TestCaseCreateEditorWindow({userStoryId:userStoryId});this.gridId=gridId;panel.on("saved",Tp.controls.grid.Handlers.refreshGrid(this.gridId),this),panel.show();};
/*ProjectSelector.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.ProjectSelector=Ext.extend(Object,{projectContext:null,projectsData:null,checkBoxes:[],inProcessing:false,popupContainer:null,projectSelectionLink:null,showAllButton:null,constructor:function(config){Ext.apply(this,config);this.projectContext=config.projectContext;this.projectsData=config.projectsData;},init:function(){this.setChildProjectsForProgram();var projectSelectionMenu=Ext.select("div.projectMenu").first();this.getContentTemplate().overwrite(projectSelectionMenu,{projects:this.projectsData,selectedProjects:this.projectContext});var checkBoxContainers=Ext.select("input.projectSelectorCheckBox");Array.forEach(checkBoxContainers.elements,this.initRadio,this);var selectProjectsButtonHolderDiv=Ext.get('selectProjectsButtonHolderDiv');if(!Ext.isEmpty(selectProjectsButtonHolderDiv)){this.showAllButton=new Ext.Button({renderTo:'selectProjectsButtonHolderDiv',text:'Show',width:120,height:10,disabled:this.getSelectedProjectIds().length==0});this.showAllButton.on("click",Function.createDelegate(this,this.onShowClicked));}
this.checkProjectsInContext();this.popupContainer=Ext.select("div.projectSelection").first();this.popupContainer.setVisibilityMode(Ext.Element.DISPLAY);this.projectSelectionLink=Ext.select("a.projectSelectionLink").first();this.projectSelectionLink.on("click",Function.createDelegate(this,this.onProjectMenuClicked));var moreLink=Ext.select("a.moreLinkPPS");moreLink.on("click",Function.createDelegate(this,this.onMoreClicked));var lessLink=Ext.select("a.lessLinkPPS");lessLink.on("click",Function.createDelegate(this,this.onLessClicked));Ext.EventManager.onWindowResize(Function.createDelegate(this,this.onResize));Ext.getBody().on("mouseup",Function.createDelegate(this,this.onBodyClick));},setChildProjectsForProgram:function(){Array.forEach(this.projectsData,function(project){var childProjectIds=new Array();if(project.type=='Program'){Array.forEach(this.projectsData,function(childProject){if(childProject.programId==project.id){childProjectIds.push(childProject.id);}});}
project.childProjectIds=childProjectIds;},this);},onBodyClick:function(args,htmlElement){if(this.popupContainer.contains(htmlElement))
return;this.popupContainer.hide();},onResize:function(){var browserHeight=Ext.lib.Dom.getViewHeight();var popupHeight=this.popupContainer.getHeight();var usedHeight=popupHeight+this.popupContainer.getTop();var container=Ext.select("div.projectSelectionScrolling").first();var height=browserHeight-this.popupContainer.getTop()-50;if(usedHeight>browserHeight){if(height>0)
container.setHeight(height);}
else{var renewHeight=container.dom.scrollHeight;container.setHeight(height>renewHeight?renewHeight:height);}
this.doPosition();},initRadio:function(container){var projectId=container.id.replace('psc_','');var checkBox=new Ext.ux.form.XCheckbox({applyTo:container});checkBox.on("check",Function.createDelegate(this,this.onProjectSelectionChange));this.checkBoxes.push(checkBox);checkBox.project=this.getProjectById(projectId);checkBox.disabled=checkBox.project.type=='Program'&&checkBox.project.childProjectIds.length==0;},onMoreClicked:function(){this.switchVisibilityLessLink(true);},switchVisibilityLessLink:function(showLess){var moreLink=Ext.select("a.moreLinkPPS");moreLink.setVisibilityMode(Ext.Element.DISPLAY);moreLink.setVisible(!showLess);var lessLink=Ext.select("a.lessLinkPPS");lessLink.setVisibilityMode(Ext.Element.DISPLAY);lessLink.setVisible(showLess);var moreProjectsSpan=Ext.select('#moreProjectsSpan');moreProjectsSpan.setVisibilityMode(Ext.Element.DISPLAY);moreProjectsSpan.setVisible(showLess);},onLessClicked:function(){this.switchVisibilityLessLink(false);},doPosition:function(){var targetElement=Ext.select('a.projectSelectionLink').first();var xOffset=targetElement.getX();var yOffset=targetElement.getY();yOffset=yOffset+targetElement.getHeight()-4;this.popupContainer.setLeft(xOffset);this.popupContainer.setTop(yOffset);},onProjectMenuClicked:function(){this.doPosition();this.popupContainer.show();this.onResize();},getSelectedProjectIds:function(){var selectedProjectIds=[];Array.forEach(this.checkBoxes,function(checkBox){var project=checkBox.project;if(project.type!='Program'&&checkBox.getValue())
selectedProjectIds.push(project.id);},this);return selectedProjectIds;},onShowClicked:function(){projectContextService.setCurrent(this.getSelectedProjectIds());},checkProjectsInContext:function(){Array.forEach(this.projectContext,function(projectInContext){Array.forEach(this.checkBoxes,function(checkBox){if(checkBox.project.id==projectInContext.id)
checkBox.setValue(true);});},this);},getProjectById:function(projectId){var foundProject=null;Array.forEach(this.projectsData,function(project){if(projectId==project.id)
foundProject=project;},this);return foundProject;},getChildCheckBoxes:function(project){var childCheckBoxes=[];Array.forEach(this.checkBoxes,function(checkBox){if(checkBox.project.programId==project.id)
childCheckBoxes.push(checkBox);},this);return childCheckBoxes;},getCheckBoxForProject:function(project){var foundCheckBox=null;Array.forEach(this.checkBoxes,function(checkBox){if(checkBox.project.id==project.id)
foundCheckBox=checkBox;},this);return foundCheckBox;},onProjectSelectionChange:function(checkBox,checked){if(this.inProcessing)
return;this.inProcessing=true;var project=checkBox.project;var childCheckBoxes=this.getChildCheckBoxes(project);Array.forEach(childCheckBoxes,function(checkBox){checkBox.setValue(checked);},this);var program=this.getProjectById(project.programId);if(program){childCheckBoxes=this.getChildCheckBoxes(program);var allChecked=true;Array.forEach(childCheckBoxes,function(checkBox){if(!checkBox.getValue())
allChecked=false;},this);var programCheckBox=this.getCheckBoxForProject(program);if(programCheckBox)
programCheckBox.setValue(allChecked);}
this.inProcessing=false;this.setShowButtonEnabled(this.getSelectedProjectIds().length>0);},setShowButtonEnabled:function(enabled){this.showAllButton.setDisabled(!enabled);},getCheckBoxMarkup:function(){return'<input type="checkbox" id="psc_{id}" class="projectSelectorCheckBox"/>';},getContentTemplate:function(){return new Ext.XTemplate('<span class="topTitle">Projects&nbsp;</span>','<a href="javascript:void(0)" class="projectSelectionLink">','<tpl for="selectedProjects">','<tpl if="xindex &lt; 3">{name}</tpl>','<tpl if="xindex == 1 && xcount &gt; 1">,&nbsp;</tpl>','</tpl>','<tpl if="selectedProjects.length == 0">','select ...','</tpl>','<span id="moreProjectsSpan" style="display:none;">','<tpl for="selectedProjects">','<tpl if="xindex &gt; 2">,&nbsp;</tpl>','<tpl if="xindex &gt; 2">{name}</tpl>','</tpl>','</span>','&nbsp;<img class="icon" alt="Select Project" src="'+appHostAndPath+'/img/icons/expand.gif"></img>','</a>','<tpl if="selectedProjects.length &gt; 2">','<a class="moreLinkPPS">+{[values.selectedProjects.length - 2]} more</a>','<a class="lessLinkPPS" style="display:none">less</a>','</tpl>','<div class="projectSelection" style="display:none">','<div class="projectSelectionScrolling"><table>','<tpl for="projects">','<tpl if="type==\'Program\'">','<tr class="Program">','<td','<tpl if="childProjectIds.length == 0">',' style="opacity:0.6; filter: alpha(opacity = 60);"','</tpl>','>',this.getCheckBoxMarkup(),'<img src="{[this.getProgramIcon()]}" alt=""/>','</tpl>','<tpl if="type==\'Project\'">','<tr class="Project">','<td','<tpl if="programId &gt; 0">',' class="projectInProgram"','</tpl>','>',this.getCheckBoxMarkup(),'<img src="{[this.getProjectIcon()]}" alt=""/>','</tpl>','<tpl if="type==\'Project\'">','<tpl if="abbreviation != &quot;&quot;"><span style="color: #999; vertical-align: middle;">{abbreviation}&nbsp;</tpl></span><a onclick=\'projectContextService.setCurrent({id})\'>{name}</a></td>','</tpl>','<tpl if="type==\'Program\'">','<tpl if="childProjectIds.length == 0">','<span style="color:#28428B; vertical-align:middle;">{name}</span>','</tpl>','<tpl if="childProjectIds.length &gt; 0">','<a onclick=\'projectContextService.setCurrent([{childProjectIds}])\'>{name}</a>','</tpl>','</td>','</tpl>','</tr>','</tpl>','<tpl if="projects.length &lt; 1">','<tr><td>There are no projects added</td></tr>','</tpl>','</table></div>','<tpl if="projects.length &gt; 0">','<div id="selectProjectsButtonHolderDiv" class="selectProjectsButtonHolder"></div>','</tpl>','</div>',{getProjectIcon:function(){return this.getIcon("Project");},getIcon:function(type){return appHostAndPath+"/img/"+type+".gif";},getProgramIcon:function(){return this.getIcon("Program");}});}});Ext.onReady(function(){var projectSelector=new Tp.controls.menu.ProjectSelector({projectsData:projects,projectContext:_projectContext});projectSelector.init();});;
/*BasePopup.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.BasePopup=Ext.extend(Ext.util.Observable,{container:null,triggerElement:null,_checkTriggerElement:function(config){if(!config.triggerElement)
throw"Tp.controls.menu.BasePopup triggerElement was not configure";this.triggerElement=Ext.get(config.triggerElement);if(!this.triggerElement)
throw String.format("Tp.controls.menu.BasePopup triggerElement was not found by {0}",config.triggerElement);},_createContainer:function(config){this.container=new Ext.Element(document.createElement('div'));var brElement=new Ext.Element(document.createElement('br'));this.container.insertAfter(this.triggerElement);brElement.insertAfter(this.triggerElement);if(config.className)
this.container.addClass(config.className);},constructor:function(config){Ext.apply(this,config);this._checkTriggerElement(config);this._createContainer(config);this.addEvents({"beforeshow":true,"aftershow":true,"beforehide":true,"afterhide":true});Tp.controls.menu.BasePopup.superclass.constructor.call(this,config);Application.getMenuBootsrap().registerPopup(this);},_triggerElementClickHandler:function(){this.toggle();},getContainerElement:function(){return this.container;},getTriggerElement:function(){return this.triggerElement;},show:function(){this.fireEvent("beforeshow");this.getContainerElement().show();this.fireEvent("aftershow");},toggle:function(){if(!this.isVisible()){this.show();}
else{this.hide();}},isVisible:function(){return this.getContainerElement().isVisible();},hide:function(){this.fireEvent("beforehide");this.getContainerElement().hide();this.fireEvent("afterhide");},addClass:function(className){this.getContainerElement().addClass(className);}});;
/*QuickAddPopup.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.QuickAddPopup=Ext.extend(Tp.controls.menu.BasePopup,{quickAddMenuContainer:null,popupTabClassName:'popupTab',projectIdContainer:null,constructor:function(config){if(!config.className)
config.className="quickAddPopupMenu";Tp.controls.menu.QuickAddPopup.superclass.constructor.call(this,config);this.projectIdContainer=new Tp.controls.project.ProjectIdContainer();this.init();this.on("aftershow",this.onShowHandler,this);this.on("afterhide",this.onHideHandler,this);},onShowHandler:function(){this.getTriggerElement().parent().addClass(this.popupTabClassName);},onHideHandler:function(){this.getTriggerElement().parent().removeClass(this.popupTabClassName);},init:function(){var style;if(this.projectsData.length>1){style='margin-top: 25px;'}
else if(this.projectsData.length==1){style='padding:10px 0px !important;';}
this._clearProjectsIfUserHaveNoActions();this._restoreSelectedProjectFromCookie();this.getContentTemplate().overwrite(this.getContainerElement(),{projects:this.projectsData,actionList:this.actionList,selectedProjectId:this.selectedProjectId,nonProjectActionList:this.nonProjectActionList,actionListStyle:style});this._attachHandlersToControls();this._adjustActionsForCurrentProject();},_removeProjectIdsWhichNotHaveItemsToAdd:function(){for(var i=this.projectsData.length;i--;i>=0){if(this._userHaveNoPermissionsToAddAnyItemsToProject(this.projectsData[i].projectId)){this.projectsData.splice(i,1);}}},_clearProjectsIfUserHaveNoActions:function(){if(this.actionList.length==0){this.projectsData=[];}},_userHaveNoPermissionsToAddAnyItemsToProject:function(projectId){for(var i=0;i<this.actionList.length;i++){var action=this.actionList[i];if(action.evailableProjectIds.indexOf(projectId)!=-1){return false;}}
return true;},_attachRadioButtonsHandlers:function(){var radioContainers=Ext.select("input.quickAddRadio");Array.forEach(radioContainers.elements,this.initRadio,this);},_attachHandlersToControls:function(){this._attachRadioButtonsHandlers();},initRadio:function(checkbox){var checkboxElement=Ext.fly(checkbox);var checked=parseInt(checkboxElement.getAttribute("value"))==this._getCurrentProjectId();var radio=new Ext.form.Radio({applyTo:checkbox,checked:false,name:'rb_quickadd',id:checkboxElement.getAttribute("id"),boxLabel:checkboxElement.getAttribute("projectName"),inputValue:checkboxElement.getAttribute("value"),checked:checked});radio.on("check",this.onProjectSelectionChange,this);if(checked){radio.getEl().parent().addClass('selectedProject');}},onProjectSelectionChange:function(radio,checked){if(checked){radio.el.parent().addClass('selectedProject');this._setCurrentProjectId(parseInt(radio.getRawValue()));this._adjustActionsForCurrentProject();}
else{radio.getEl().parent().removeClass('selectedProject');}},getContentTemplate:function(){var halfCountOfActions=Math.ceil(this.actionList.length/2);var tpl=new Ext.XTemplate('<tpl if="projects.length == 0 && nonProjectActionList == 0"  >','<div style="padding:10px">','You don\'t have permissions to add items.','</div>','</tpl>','<tpl if="projects.length &gt; 0">','<tpl if="projects.length &gt; 1">','<div class="projectList">','<p>Select Project</p>','<tpl for="projects">','<input type="radio" value="{projectId}" class="quickAddRadio" id="checkBox_{projectId}" name="rb_quickadd" projectName="{name}">','</tpl>','</div>','</tpl>','<div class="actionList" style="{actionListStyle}>">','<div class="firstColumn">','<tpl for="actionList">','<tpl if="xindex &lt;= '+halfCountOfActions+'">','<p><a navigateUrl="{url}" href="{url}" class="actionLink" entityTypeId="{entityTypeId}" >{title}</a></p>','</tpl>','</tpl>','</div>','<div class="secondColumn">','<tpl for="actionList">','<tpl if="xindex &gt; '+halfCountOfActions+'">','<p><a navigateUrl="{url}" href="{url}" class="actionLink" entityTypeId="{entityTypeId}">{title}</a></p>','</tpl>','</tpl>','</div>','</div>','</tpl>','<tpl if="nonProjectActionList.length &gt; 0">','<div style="clear: both"></div>','<div class="basicLinks"','<tpl if="projects.length == 0">',' style="border-top:none !important;" ','</tpl>','>','<tpl for="nonProjectActionList">','<p><a href="{url}">{title}</a></p>','</tpl>','</div>','</tpl>');return tpl;},onActivate:function(){this._adjustActionsForCurrentProject();},_getAcid:function(){var projectData=_projectsData.getProjectData(this._getCurrentProjectId());return projectData.acid;},_setupLinksHrefForCurrentProject:function(){var actionLinks=Ext.select('div.actionList a.actionLink');Array.forEach(actionLinks.elements,this._addProjectContextParameter,this);},_insertParam:function(key,value,queryString)
{if(!/\.aspx/i.test(queryString)){return queryString;}
var keyValuePair=key+"="+value;var r=new RegExp("(&|\\?)"+key+"=[^\&]*");queryString=queryString.replace(r,"$1"+keyValuePair);if(!RegExp.$1){var symbol=queryString.indexOf('?')<0?'?':'&';queryString+=symbol+keyValuePair;};return queryString;},_addProjectContextParameter:function(link){var linkElement=Ext.fly(link);var href=linkElement.getAttribute('href');var hrefWithParameter=this._insertParam(this.appContextKey,this._getAcid(),href);linkElement.set({href:hrefWithParameter});},_saveSelectedProjectToCookie:function(){this.projectIdContainer.set(this._getCurrentProjectId());},_restoreSelectedProjectFromCookie:function(){var currentUrl=new Tp.URL(document.location.href);if(!currentUrl.getPath().endsWith('View.aspx')&&!currentUrl.getPath().endsWith('Edit.aspx')){var projectId=this.projectIdContainer.get();if(projectId){for(var i=0;i<this.projectsData.length;i++){if(this.projectsData[i].projectId==projectId){this._setCurrentProjectId(projectId);return;}}}}},_getCurrentProjectId:function(){return this.selectedProjectId;},_getCurrentProcessId:function(){var processId;var projectId=this._getCurrentProjectId();Ext.each(this.projectProcess,function(pp){if(pp.projectId==projectId){processId=pp.processId;}},this);return processId;},_setCurrentProjectId:function(value){this.selectedProjectId=value;},getProjectData:function(projectId){for(var i=0;i<this.projectsData.length;i++){if(this.projectsData[i].projectId==projectId){return this.projectsData[i];}}},getActionByEntityTypeId:function(entityTypeId){for(var i=0;i<this.actionList.length;i++){if(this.actionList[i].entityTypeId==entityTypeId){return this.actionList[i];}}},_isEntityEnabledForProject:function(entityTypeId,projectId){var action=this.getActionByEntityTypeId(entityTypeId);if(action){for(var i=0;i<action.evailableProjectIds.length;i++){if(action.evailableProjectIds[i]==projectId)
return true;}}
return false;},_adjustActionsForCurrentProject:function(){this._setupLinkAvailabilityForCurrentProject();this._setupLinksHrefForCurrentProject();},_setupLinkAvailabilityForCurrentProject:function(){Ext.select('div.actionList a.actionLink').each(function(element){var projectId=this._getCurrentProjectId();if(this._isEntityEnabledForProject(parseInt(element.getAttribute('entityTypeId')),projectId)){this._enableLink(element);}
else{this._disableLink(element);}
this._replaceWithTerm(element);},this);},_disableLink:function(link){var extLink=Ext.fly(link);extLink.addClass('disabledAction');extLink.set({href:'javascript:void(0);',disabled:'disabled'},true);},_enableLink:function(link){var extLink=Ext.fly(link);extLink.removeClass('disabledAction');extLink.set({href:extLink.getAttribute('navigateUrl')},true);extLink.dom.removeAttribute('disabled');},_replaceWithTerm:function(link){var extLink=Ext.fly(link);if(!extLink.getAttribute('defaultTerm')){extLink.set({'defaultTerm':extLink.dom.innerHTML});}
var name=extLink.getAttribute('defaultTerm');Ext.each(this.terms,function(term){if(term.defaultTerm==name){var processId=this._getCurrentProcessId();Ext.each(term.processTerms,function(processTerm){if(processTerm.processId==processId){name=processTerm.term;}},this);}},this);extLink.dom.innerHTML=name;}});Ext.onReady(function(){var triggerElement=Ext.get("quickAddLink");if(triggerElement){quickAddMenuData.triggerElement=triggerElement;new Tp.controls.menu.QuickAddPopup(quickAddMenuData);}});;
/*PopupMenu.js*/
Ext.ns('Tp.controls.menu');Tp.controls.menu.PopupMenu=Ext.extend(Tp.controls.menu.BasePopup,{popupTabClassName:'popupTab',constructor:function(config){Tp.controls.menu.PopupMenu.superclass.constructor.call(this,config);this.on("aftershow",this.onShowHandler,this);this.on("afterhide",this.onHideHandler,this);},_createContainer:function(config){},getContainerElement:function(){return Ext.get(this.containerElement);},onShowHandler:function(){this.getTriggerElement().parent().addClass(this.popupTabClassName);},onHideHandler:function(){if(!this.getTriggerElement().hasClass("selectedTab"))
this.getTriggerElement().parent().removeClass(this.popupTabClassName);},init:function(){}});;
/*MorePopup.js*/
Ext.ns('Tp.controls.menu');Ext.onReady(function(){new Tp.controls.menu.PopupMenu({triggerElement:"morePopupTrigger",containerElement:'morePanel'});});;
/*ProjectIdContainer.js*/
Ext.ns('Tp.controls.project');Tp.controls.project.ProjectIdContainer=Ext.extend(Object,{_SELECTED_PROJECT_COOKIE_KEY:"previousSelectedProject",set:function(projectId){Ext.util.Cookies.set(this._SELECTED_PROJECT_COOKIE_KEY,projectId,new Date().add(Date.YEAR,1));},get:function(){return Ext.util.Cookies.get(this._SELECTED_PROJECT_COOKIE_KEY);}});;
/*ProjectDataContainer.js*/
Ext.ns('Tp.controls.project');Tp.controls.project.ProjectDataContainer=Ext.extend(Object,{hashTable:{},constructor:function(config){Ext.apply(this,config);for(var i=0;i<config.length;i++){this.hashTable[config[i].projectId]=config[i];}},getProjectData:function(projectId){return this.hashTable[projectId];}});;
/*ProjectContextPopup.js*/
Ext.ns('Tp.controls.menu');var projectContextPopupCount=0;function genProjectContextPopupId()
{return"pcp_"+(projectContextPopupCount++);}
Tp.controls.menu.ProjectContextPopup=Ext.extend(Tp.controls.menu.BasePopup,{popupTabClassName:'popupTab',projectIdContainer:null,constructor:function(config){Tp.controls.menu.ProjectContextPopup.superclass.constructor.call(this,config);this.projectIdContainer=new Tp.controls.project.ProjectIdContainer();this.on("aftershow",this.onShowHandler,this);},_createContainer:function(config){this.containerId=genProjectContextPopupId();var link=this.getTriggerElement();var tpl=new Ext.XTemplate('<div id="{projectListId}"><tpl for="."><a href="',link.getAttribute('href')||"#",'?ProjectID={id}" projectId="{id}">{name}</a><br></tpl></div>');link.set({href:"javascript:void(0);"});this.container=new Ext.Element(Ext.DomHelper.createDom({tag:'div',cls:'morePanel',style:'padding: 5px'},Ext.getBody()));tpl.overwrite(this.container,Ext.apply(this._projectContext,{projectListId:this.containerId}));Ext.each(Ext.query('[@id='+this.containerId+'] a'),function(element){Ext.get(element).on('click',this._onLinkClick,this);},this)},_onLinkClick:function(element){var el=Ext.fly(element.target);var projectId=el.getAttribute('projectId');this.projectIdContainer.set(projectId);var url=new Tp.URL(el.getAttribute('href'));url.setArgumentValue(this.acidKey,_projectsData.getProjectData(projectId).acid);el.set({href:url.toString()});},onShowHandler:function(){this.showPopup(this.getTriggerElement(),this.container);},showPopup:function(link,panel){var extPanel=Ext.get(panel);extPanel.alignTo(link,"?").show();Ext.get(document).on({'keyup':function(e){if(e.getKey()==e.ESC){extPanel.hide();}},single:true});},init:function(){}});;
/*url.js*/
Ext.ns('Tp');Tp.UrlParameterCollection=Ext.extend(Object,{query:null,_parameters:null,constructor:function(query){this.query=query;var a=[];var b=this.query.split('&');var c='';if(b.length<1)return a;for(i=0;i<b.length;i++){c=b[i].split('=');if(c[0].length>0){a[i]=[c[0],((c.length==1)?c[0]:c[1])];}}
this._parameters=a;},get:function(key){var parameter=this._findParameter(key);if(parameter){return parameter[1];}},_findParameter:function(key){for(var i=0;i<this._parameters.length;i++){if(this._parameters[i][0]==key){return this._parameters[i];}}},set:function(key,value){var parameter=this._findParameter(key);if(parameter){parameter[1]=value;return;}
this._parameters.push([key,value]);},remove:function(key){for(var i=0;i<this._parameters.length;i++){if(this._parameters[i][0]==key){this._parameters.splice(i,1);}}},toString:function(){if(this._parameters.length==0){return'';}
var query='?';for(var i=0;i<this._parameters.length;i++){if(i>0)
query+='&';query+=this._parameters[i][0]+'='+this._parameters[i][1];}
return query;}});Tp.URL=Ext.extend(Object,{constructor:function(url){if(url.length==0)eval('throw "Invalid URL ['+url+'];');this.url=url;this.port=-1;this.query=(this.url.indexOf('?')>=0)?this.url.substring(this.url.indexOf('?')+1):'';if(this.query.indexOf('#')>=0)this.query=this.query.substring(0,this.query.indexOf('#'));this.protocol='';this.host='';this.protocolSep='';this.portSep='';var protocolSepIndex=this.url.indexOf('://');if(protocolSepIndex>=0){this.protocolSep='://';this.protocol=this.url.substring(0,protocolSepIndex).toLowerCase();this.host=this.url.substring(protocolSepIndex+3);if(this.host.indexOf('/')>=0)this.host=this.host.substring(0,this.host.indexOf('/'));var atIndex=this.host.indexOf('@');if(atIndex>=0){var credentials=this.host.substring(0,atIndex);var colonIndex=credentials.indexOf(':');if(colonIndex>=0){this.username=credentials.substring(0,colonIndex);this.password=credentials.substring(colonIndex);}else{this.username=credentials;}
this.host=this.host.substring(atIndex+1);}
var portColonIndex=this.host.indexOf(':');if(portColonIndex>=0){this.portSep=':';this.port=this.host.substring(portColonIndex);this.host=this.host.substring(0,portColonIndex);}
this.file=this.url.substring(protocolSepIndex+3);this.file=this.file.substring(this.file.indexOf('/'));}else{this.file=this.url;}
if(this.file.indexOf('?')>=0)this.file=this.file.substring(0,this.file.indexOf('?'));var refSepIndex=url.indexOf('#');if(refSepIndex>=0){this.file=this.file.substring(0,refSepIndex);this.reference=this.url.substring(this.url.indexOf('#'));}else{this.reference='';}
this.path=this.file;if(this.query.length>0)this.file+='?'+this.query;if(this.reference.length>0)this.file+='#'+this.reference;this._parameters=new Tp.UrlParameterCollection(this.query);},getPort:function(){return this.port;},getQuery:function(){return this._parameters.toString();},getProtocol:function(){return this.protocol;},getHost:function(){return this.host;},getUserName:function(){return this.username;},getPassword:function(){return this.password;},getFile:function(){return this.file;},getReference:function(){return this.reference;},getPath:function(){return this.path;},getAcid:function(){return this.getArgumentValue('acid');},setAcid:function(value){this.setArgumentValue('acid',value);},setArgumentValue:function(key,value){this._parameters.set(key,value);},removeArgument:function(key){this._parameters.remove(key);},getArgumentValue:function(key){return this._parameters.get(key);},toString:function(){var segments=[this.getProtocol(),this.protocolSep,this.getHost(),this.getPort(),this.getPath(),this.getQuery()];var _url='';Ext.each(segments,function(){if(this&&this!=-1)_url+=this;});return _url;}});Tp.WebServiceURL=Ext.extend(Tp.URL,{constructor:function(url){Tp.WebServiceURL.superclass.constructor.call(this,appHostAndPath+url);},toString:function(){var acid=new Tp.URL(document.location.href).getAcid();this.setAcid(acid);return Tp.WebServiceURL.superclass.toString.call(this);}});;
/*ReleaseIterationStatelessFilter.js*/
Ext.ns('Tp.controls.Filter');Tp.controls.Filter.ReleaseIterationStatelessFilter=Ext.extend(Ext.Container,{placeHolderElement:null,selectElementId:null,releaseIterationFilterData:null,releaseIterationFilterTitle:null,releaseIterationFilterPopup:null,xTemplate:null,releasesTerm:null,iterationsTerm:null,hiddenFieldDataList:null,selectedPlannableFilterData:null,hideIterations:null,constructor:function(config){this.hiddenFieldDataList=null;this.selectedPlannableFilterData=null;this.releaseIterationFilterData=null;this.hideIterations=null;Ext.apply(this,config);this.selectElementId=Ext.id();this.initSelectedPlannableFilterData(config.selectedReleaseIterationData);Ext.apply(config,{data:this.getData(),tpl:this.getTemplate()});Tp.controls.Filter.ReleaseIterationStatelessFilter.superclass.constructor.call(this,config);this.attachToEvents();},initSelectedPlannableFilterData:function(selectedReleaseIterationData){this.selectedPlannableFilterData=[];Array.forEach(selectedReleaseIterationData,function(projectFilter){this.selectedPlannableFilterData.push(new Tp.controls.Prioritization.PlannableFilterData(projectFilter));},this);},attachToEvents:function(){Ext.get(this.selectElementId).on('click',this.onSelectClick,this);},getTemplate:function(){return this.xTemplate==''?new Ext.XTemplate('<tpl for="filterData">','<tpl if="releaseNames.length &gt; 0 || iterationNames.length &gt; 0">','<div style="padding-bottom: 3px;"><strong>{projectName}</strong>','<tpl if="releaseNames.length &gt; 0">','<div style="white-space: normal; padding: 2px 0px 2px 10px;">','<tpl if="'+!this.hideIterations+'">','<dd style="color:#666; font-size: 11px">'+this.releasesTerm+': </dd>','</tpl>','<dd><tpl for="releaseNames">','{.}'+'<tpl if="xindex == xcount">.</tpl>'+'<tpl if="xindex < xcount">,</tpl> ','</tpl></dd>','</div>','</tpl>','<tpl if="iterationNames.length &gt; 0">','<div style="white-space: normal; padding: 2px 0px 2px 10px;">','<dd style="color:#666; font-size: 11px">{parent.iterationsTerm}: </dd>','<dd><tpl for="iterationNames">','{.}'+'<tpl if="xindex == xcount">.</tpl>'+'<tpl if="xindex < xcount">,</tpl> ','</tpl></dd>','</div>','</tpl>','</div></tpl>','</tpl>','<a href="javascript:void(0)" id="{selectElementId}">Select</a>'):new Ext.XTemplate(this.xTemplate);},getData:function(){var selectElementId=this.selectElementId;var projectsFilter=this.selectedPlannableFilterData;if(!Ext.isEmpty(projectsFilter)){Array.forEach(projectsFilter,function(projectFilter){projectFilter.releaseNames=projectFilter.getReleaseNames(this.releaseIterationFilterData);projectFilter.iterationNames=projectFilter.getIterationNames(this.releaseIterationFilterData);},this);}
var projectFilterSliced=[];Array.forEach(projectsFilter,function(projectFilter){if(projectFilter.releaseNames.length>0||projectFilter.iterationNames.length>0){projectFilterSliced.push(projectFilter);}},this);var filterItems=[];Array.forEach(projectFilterSliced,function(projectFilter){var projectAdded=false;if(projectFilter.releaseNames.length>0){for(var n=0;n<projectFilter.releaseNames.length;n++){filterItems.push({project:projectAdded?'':projectFilter.projectName,item:projectFilter.releaseNames[n],type:'release',beginGroup:n==0,endGroup:n==projectFilter.releaseNames.length-1});projectAdded=true;}}
if(projectFilter.iterationNames.length>0){for(var n=0;n<projectFilter.iterationNames.length;n++){filterItems.push({project:projectAdded?'':projectFilter.projectName,item:projectFilter.iterationNames[n],type:'iteration',beginGroup:n==0,endGroup:n==projectFilter.iterationNames.length-1});projectAdded=true;}}},this);return{selectElementId:selectElementId,filterData:projectFilterSliced,releasesTerm:this.releasesTerm,iterationsTerm:this.iterationsTerm,filterItems:filterItems};},onSelectClick:function(){if(!Ext.isEmpty(this.releaseIterationFilterPopup)&&this.releaseIterationFilterPopup.isVisible())
return;this.show();},show:function(){if(Ext.isEmpty(this.releaseIterationFilterPopup)){this.releaseIterationFilterPopup=new Tp.controls.Filter.ReleaseIterationFilterPopup({releaseIterationFilterData:this.releaseIterationFilterData,releaseIterationFilterTitle:this.releaseIterationFilterTitle});this.releaseIterationFilterPopup.on('filterSelected',this.onFilterSelected,this);this.releaseIterationFilterPopup.render(Ext.getBody());}
this.releaseIterationFilterPopup.restoreFilterValuesFromHidden(Tp.controls.Prioritization.PlannableFilterData.GetFilterDataFromHidden(this.hiddenFieldDataList));this.releaseIterationFilterPopup.show();},saveFilterValuesToHidden:function(hiddenFieldList,filter){Array.forEach(hiddenFieldList,function(hiddenFieldData){var releaseHiddenField=Ext.get(hiddenFieldData.releasesHiddenId);var iterationHiddenField=Ext.get(hiddenFieldData.iterationsHiddenId);var filterProjectDataFound=Array.findOne(filter,function(filterProjectData){return filterProjectData.projectId==hiddenFieldData.projectId;});if(!Ext.isEmpty(filterProjectDataFound)){releaseHiddenField.dom.value=filterProjectDataFound.releaseIds.join(',');iterationHiddenField.dom.value=filterProjectDataFound.iterationIds.join(',');}});},onFilterSelected:function(filter){this.selectedPlannableFilterData=filter;this.update(this.getData());this.attachToEvents();this.fireEvent("filterChanged",filter);this.saveFilterValuesToHidden(this.hiddenFieldDataList,filter);if(this.onFilterChangedScript){this.onFilterChangedScript.call();}}});;
/*ReleaseIterationFilter.js*/
Ext.ns('Tp.controls.Filter');Tp.controls.Filter.ReleaseIterationFilter=Ext.extend(Tp.controls.Filter.ReleaseIterationStatelessFilter,{stateId:'ReleaseIterationFilter',stateEvents:["filterChanged"],constructor:function(config){Ext.apply(this,config);Tp.controls.Filter.ReleaseIterationFilter.superclass.constructor.call(this,config);this.update(this.getData());this.attachToEvents();if(this.onFilterChangedScript){this.onFilterChangedScript.call();}},getState:function(){return{filterData:this.selectedPlannableFilterData};},applyState:function(state){this.applySavedFilterToSelectedPlannableFilterData(state.filterData);this.saveFilterValuesToHidden(this.hiddenFieldDataList,this.selectedPlannableFilterData);},applySavedFilterToSelectedPlannableFilterData:function(stateFilterData){Array.forEach(stateFilterData,function(stateProjectFilter){for(var i=0;i<this.selectedPlannableFilterData.length;i++){if(this.selectedPlannableFilterData[i].projectId==stateProjectFilter.projectId){this.selectedPlannableFilterData[i]=new Tp.controls.Prioritization.PlannableFilterData(stateProjectFilter);}}},this);}});;
/*ReleaseIterationFilterPopup.js*/
Ext.ns('Tp.controls.Filter');Tp.controls.Filter.ReleaseIterationFilterPopup=Ext.extend(Ext.Window,{releaseIterationFilterData:null,releaseIterationFilterTitle:null,selectButton:null,closeButton:null,plannableFilter:null,constructor:function(config){Ext.apply(this,config);this.selectButton=new Ext.Button({text:'Select'});this.selectButton.on("click",this.onSelectButtonClick,this);this.closeButton=new Ext.Button({text:'Close'});this.closeButton.on("click",function(){this.hide();},this);this.plannableFilter=new Tp.controls.Prioritization.PlannableFilter({data:this.releaseIterationFilterData,border:false});config=Ext.apply({layout:'fit',modal:true,width:400,autoHeight:true,resizable:true,closeAction:'hide',items:this.plannableFilter,buttons:[this.selectButton,this.closeButton],title:this.releaseIterationFilterTitle},config);Tp.controls.Filter.ReleaseIterationFilterPopup.superclass.constructor.call(this,config);},onSelectButtonClick:function(){var filterValues=this.plannableFilter.getFilterValues();this.fireEvent('filterSelected',filterValues.filter);this.hide();},restoreFilterValuesFromHidden:function(filterData){this.plannableFilter.restoreFilterValues(filterData,true);}});;
/*PlannableFilter.js*/
Ext.ns('Tp.controls.Prioritization');Tp.controls.Prioritization.PlannableFilter=Ext.extend(Ext.Panel,{constructor:function(config){this.treeArray=[];config=Ext.apply({style:{borderBottom:"1px solid #EEEEEE"},autoHeight:true,cls:'planable-filter',items:[]},config);for(var i=0;i<config.data.length;i++){var releaseTreePanel=new Tp.controls.Prioritization.ReleaseTreePanel({data:config.data[i]});this.treeArray.push(releaseTreePanel);}
var treePanel=new Ext.Panel({items:this.treeArray,autoScroll:true,height:245});config.items.push(treePanel);Tp.controls.Prioritization.PlannableFilter.superclass.constructor.call(this,config);},getFilterValues:function(){return Tp.controls.Prioritization.PlannableFilterData.GetFilterDataFromTree(this.treeArray);},restoreFilterValues:function(filterArray,skipRestoringSavedFilter){Array.forEach(this.treeArray,function(tree){var treeFilter=Array.findOne(filterArray,function(treeFilter){return treeFilter.projectId==tree.projectId;});skipRestoringSavedFilter?tree.restoreValuesFrom(treeFilter):tree.restoreFilterValues(treeFilter);});},setFilterDefaultValues:function(){Array.forEach(this.treeArray,function(tree){tree.setFilterDefaultValues();});}});;
/*PrioritizationPlannableFilter.js*/
Ext.ns('Tp.controls.Prioritization');Tp.controls.Prioritization.PrioritizationPlannableFilter=Ext.extend(Tp.controls.Prioritization.PlannableFilter,{constructor:function(config){config=Ext.apply({items:[new Ext.Panel({bodyCssClass:"x-panel-body-blue filter-panel-area-margin",items:[{xtype:'label',cls:"filter-panel-margin",text:config.selectTitle}]})]},config);Tp.controls.Prioritization.PrioritizationPlannableFilter.superclass.constructor.call(this,config);}});Ext.reg('tpplannablefilter',Tp.controls.Prioritization.PrioritizationPlannableFilter);;
/*PlannableFilterData.js*/
Ext.ns('Tp.controls.Prioritization');Tp.controls.Prioritization.PlannableFilterData=Ext.extend(Object,{releaseIds:[],iterationIds:[],projectId:null,projectName:null,constructor:function(projectFilter){this.releaseIds=[];this.iterationIds=[];this.projectId=null;this.projectName=null;Ext.apply(this,projectFilter);Tp.controls.Prioritization.PlannableFilterData.superclass.constructor.call(this);},setProjectId:function(projectId)
{this.projectId=projectId;},setProjectName:function(projectName)
{this.projectName=projectName;},addIterationId:function(iterationId)
{this.iterationIds.push(iterationId);},addReleaseId:function(releaseId)
{this.releaseIds.push(releaseId);},getReleaseNames:function(releaseIterationFilterData)
{return this.getEntityNames(this.releaseIds,Function.createDelegate(this,this.getReleaseName),releaseIterationFilterData);},getIterationNames:function(releaseIterationFilterData)
{return this.getEntityNames(this.iterationIds,Function.createDelegate(this,this.getIterationName),releaseIterationFilterData);},getReleaseName:function(entityId,releaseIterationFilterData){var entityName=null;Array.forEach(releaseIterationFilterData,function(projectFilterData){var matchedRelease=Array.findOne(projectFilterData.Releases,function(release){return(release.id==entityId);});if(matchedRelease){entityName=matchedRelease.text;}},this);return entityName;},getEntityNames:function(entityIds,getEntityNameFunction,releaseIterationFilterData)
{var entityNames=new Array();Array.forEach(entityIds,function(entityId){var name=getEntityNameFunction(entityId,releaseIterationFilterData);if(!Ext.isEmpty(name))
entityNames.push(name);},this);return entityNames;},getIterationName:function(iterationId,releaseIterationFilterData){var iterationName=null;Array.forEach(releaseIterationFilterData,function(projectFilterData){var matchedRelease=Array.findOne(projectFilterData.Releases,function(release){var matchedIteration=Array.findOne(release.children,function(iteration){return iteration.id==iterationId;});if(!Ext.isEmpty(matchedIteration)){iterationName=matchedIteration.text;return true;}});if(!Ext.isEmpty(matchedRelease))
return;},this);return iterationName;}});Tp.controls.Prioritization.PlannableFilterData.GetFilterDataFromTree=function(treeArray)
{var filterValues={filter:[]};Array.forEach(treeArray,function(tree){var result=new Tp.controls.Prioritization.PlannableFilterData();result.setProjectId(tree.projectId);result.setProjectName(tree.projectName);Array.forEach(tree.getChecked(),function(item){if(!item.disabled){item.attributes.isIteration?result.addIterationId(item.id):result.addReleaseId(item.id);}},this);filterValues.filter.push(result);});return filterValues;};Tp.controls.Prioritization.PlannableFilterData.GetFilterDataFromHidden=function(hiddenFieldDataList)
{var result=[];Array.forEach(hiddenFieldDataList,function(hiddenFieldData){var plannableFilterData=new Tp.controls.Prioritization.PlannableFilterData();plannableFilterData.projectId=hiddenFieldData.projectId;var releaseHiddenField=Ext.get(hiddenFieldData.releasesHiddenId);plannableFilterData.releaseIds=releaseHiddenField.dom.value==''?[]:releaseHiddenField.dom.value.split(',');var iterationHiddenField=Ext.get(hiddenFieldData.iterationsHiddenId);plannableFilterData.iterationIds=iterationHiddenField.dom.value==''?[]:iterationHiddenField.dom.value.split(',');result.push(plannableFilterData);});return result;};
/*ReleaseTreePanel.js*/
Ext.ns('Tp.controls.Prioritization');Tp.controls.Prioritization.ReleaseTreePanel=Ext.extend(Ext.tree.TreePanel,{savedFilterState:null,projectId:null,projectName:null,constructor:function(config){this.projectId=config.data.ProjectId;this.projectName=config.data.ProjectName;Ext.apply(config,{forecolor:'#FF0000',autoScroll:false,animate:false,enableDD:false,containerScroll:false,rootVisible:false,border:false,lines:false,selModel:new Ext.tree.MultiSelectionModel({}),collapsible:false,title:config.data.ProjectName,headerStyle:{color:'#333'},header:true,listeners:{afterrender:function(treepanel){this.expandAll();this.restoreFilterValues(this.savedFilterState);var sm=this.getSelectionModel();Array.forEach(this.getChecked(),function(item){sm.select(item,null,true)},this);this.fireEvent('releaseTreeLoaded',null);},click:function(node,ev){node.getUI().toggleCheck(!node.attributes.checked);return false;},checkchange:function(node,checked){var sm=this.getSelectionModel();node.eachChild(function(currentNode){currentNode.getUI().toggleCheck(checked);checked?currentNode.disable():currentNode.enable();checked?sm.select(currentNode,null,true):sm.unselect(currentNode);});checked?sm.select(node,null,true):sm.unselect(node);},beforecollapsenode:function(node,deep,anim){return false;},beforedblclick:function(node,ev){return false;},beforechildrenrendered:function(node){node.setText(Ext.util.Format.htmlEncode(node.text));},scope:this},root:new Ext.tree.AsyncTreeNode({draggable:false,id:'plannables',children:config.data.Releases})});Tp.controls.Prioritization.ReleaseTreePanel.superclass.constructor.call(this,config);},restoreFilterValues:function(filter){if(!filter)
return;if(this.savedFilterState==null){this.savedFilterState=filter;return}
filter=this.savedFilterState;this.restoreValuesFrom(filter);},setFilterDefaultValues:function(){Array.forEach(this.getChecked(),function(item){item.getUI().toggleCheck(false);},this);var sm=this.getSelectionModel();var backLogNode=this.root.findChild('Backlog');backLogNode.getUI().toggleCheck(true);sm.select(backLogNode,null,true);},restoreValuesFrom:function(filter){Array.forEach(this.getChecked(),function(item){item.getUI().toggleCheck(false);},this);var sm=this.getSelectionModel();var backLogNode=this.root.findChild('Backlog');if(backLogNode!=null){backLogNode.getUI().toggleCheck(false);sm.unselect(backLogNode,null,true);}
Array.forEach(filter.releaseIds,function(releaseId){var node=this.getRootNode().findChild('id',releaseId);if(!Ext.isEmpty(node)&&!node.getUI().isChecked()){node.getUI().toggleCheck(true);sm.select(node,null,true);}},this);Array.forEach(filter.iterationIds,function(iterationId){var node=this.findIterationNode(this.getRootNode(),iterationId);if(!Ext.isEmpty(node)&&!node.getUI().isChecked()){node.getUI().toggleCheck(true);sm.select(node,null,true);}},this);},findIterationNode:function(rootNode,iterationId){var foundIterationNode;rootNode.eachChild(function(node){var iterationNode=node.findChild('id',iterationId);if(iterationNode!=null)
foundIterationNode=iterationNode;},this);return foundIterationNode;}});;
/*AlertView.js*/
Tp.controls.menu.AlertView=Ext.extend(Ext.util.Observable,{_containerId:null,_hideMessageButtonId:null,constructor:function(config){Ext.apply(this,config);},show:function(){Tp.controls.getOverlay().show();this._containerId=Ext.id();this._hideMessageButtonId=Ext.id();var t=new Ext.XTemplate('<div id="{containerId}" class="notificationPopup">','<span>','<tpl for="alertCollection" >','{Message}<br />','</tpl>','<div class="btnBlock"><input type="button" value="Close" id="{hideMessageButtonId}"/></div>','</span>','</div>');t.compile();t.append(Ext.getBody(),{containerId:this._containerId,hideMessageButtonId:this._hideMessageButtonId,alertCollection:this.alertCollection});Ext.get(this._hideMessageButtonId).on('click',this._onHideClick,this)},_onHideClick:function(){this.close();},markMessagesAsRead:function(){var messageIds=[];Ext.each(this.alertCollection,function(alertMessage){messageIds.push(alertMessage.ID);});Ext.Ajax.request({url:appHostAndPath+'/PageServices/WebMethods.asmx/MarkMessagesAsRead',headers:{'Content-Type':'application/json'},success:this.onMarkSuccess,failure:this.onMarkFailed,jsonData:{'messageIds':messageIds},scope:this});},onMarkSuccess:function(){},onMarkFailed:function(){},close:function(){this.markMessagesAsRead();Tp.controls.getOverlay().hide();Ext.get(this._containerId).hide();}});;
/*AddInsPopup.js*/
Tp.controls.menu.AddInsPopup=Ext.extend(Ext.util.Observable,{_containerId:null,_hideMessageButtonId:null,constructor:function(config){Ext.apply(this,config);},show:function(){Tp.controls.getOverlay().show();this._containerId=Ext.id();this._hideMessageButtonId=Ext.id();var t=new Ext.XTemplate('<div id="{containerId}" class="add-insPopup">','<div class="titleBlock"><div class="titleBlockInner"><h1>Download Add-ins</h1><p>Useful TargetProcess Add-ins.</p><a href="javascript:void(0)" id="{hideMessageButtonId}" class="close-popup-btn"></a></div></div>','<table class="pb-20">','<tpl for="addInsCollection">','<tr>','<td class="addinsLogo pt-20"><div class="{Logo}" /></div>','<td class="pt-20" style="width: 340px"><h2>{Name}</h2>','<span class="desc">{Description}</span></td>','<td class="downAddins pt-20">','<tpl if="Href.length &gt; 0">','<a class="downloadButton" href="{Href}"><div style="float: left">Download</div><div class="downloadIcon"></div></a>','</tpl>','<tpl if="Href.length == 0">','<div class="disabledLink"><div style="float: left">Download</div><div class="downloadIcon"></div></div>','</tpl>','</td>','</tpl>','</table>','</div>');t.compile();t.append(Ext.getBody(),{containerId:this._containerId,hideMessageButtonId:this._hideMessageButtonId,addInsCollection:this.addInsCollection});Ext.get(this._hideMessageButtonId).on('click',this._onHideClick,this)},_onHideClick:function(){this.close();},close:function(){Tp.controls.getOverlay().hide();Ext.get(this._containerId).hide();}});;
/*Overlay.js*/
Tp.controls.Overlay=Ext.extend(Object,{constructor:function(){},show:function(){var overlay=Ext.get("overlay");overlay.addClass("overlay");var bodyHeight=Ext.getBody().getHeight();if(document.documentElement&&document.documentElement.clientHeight&&document.documentElement.clientHeight>bodyHeight)
{bodyHeight=document.documentElement.clientHeight;}
if(window.innerHeight&&window.innerHeight>bodyHeight)
bodyHeight=window.innerHeight;if(overlay.getHeight()<bodyHeight)
overlay.setHeight(bodyHeight);Ext.EventManager.onWindowResize(this.show,this)},hide:function(){var overlay=Ext.get("overlay");overlay.removeClass("overlay");overlay.setHeight(0);Ext.EventManager.removeResizeListener(this.show,this);}});Tp.controls.getOverlay=function(){return overlayControl;}
var overlayControl=new Tp.controls.Overlay();;
/*TpStateFilterChecker.js*/
function RegisterTpCheckBoxList(controlID,checkBoxListID){var checkBoxes=GetCheckBoxes(checkBoxListID);for(var i=0;i<checkBoxes.length;i++){var checkBox=Ext.get(checkBoxes[i].id);checkBox.on('click',CheckSelection.createCallback(controlID,checkBoxListID));}
CheckSelection(controlID,checkBoxListID);}
function CheckSelection(controlID,checkBoxListID)
{var checkedCount=0;var uncheckedCount=0;var disabledCount=0;var checkBoxes=GetCheckBoxes(checkBoxListID);for(var i=0;i<checkBoxes.length;i++)
{var checkBox=checkBoxes[i];if(checkBox.style.display=='none')
{continue;}
if(checkBox.checked)
{checkedCount++;}
else
{uncheckedCount++;}
if(checkBox.disabled)
{disabledCount++;}}
if(disabledCount==checkBoxes.length)
{DisableLinks(controlID);}
else
{SetEnablingToLinks(controlID,uncheckedCount>0,checkedCount>0);}}
function SetFilterStatuses(controlID,checkBoxListID,isChecked)
{var checkBoxes=GetCheckBoxes(checkBoxListID);for(var i=0;i<checkBoxes.length;i++){if(checkBoxes[i].style.display=='none')
{continue;}
checkBoxes[i].checked=isChecked;}
SetEnablingToLinks(controlID,!isChecked,isChecked);}
function DisableLinks(controlID)
{GetCheckLink(controlID).dom.style.display='none';GetUnCheckLink(controlID).dom.style.display='none';GetCheckSpan(controlID).dom.style.display='';GetUnCheckSpan(controlID).dom.style.display='';}
function SetEnablingToLinks(controlID,checkEnabling,uncheckEnabling)
{GetCheckLink(controlID).dom.style.display=checkEnabling?'':'none';GetUnCheckLink(controlID).dom.style.display=uncheckEnabling?'':'none';GetCheckSpan(controlID).dom.style.display=!checkEnabling?'':'none';GetUnCheckSpan(controlID).dom.style.display=!uncheckEnabling?'':'none';}
function GetCheckBoxes(checkBoxListID)
{var chbList=document.getElementById(checkBoxListID);return chbList.getElementsByTagName('input');}
function GetCheckLink(controlID)
{return Ext.get('checkA'+controlID);}
function GetUnCheckLink(controlID)
{return Ext.get('uncheckA'+controlID);}
function GetCheckSpan(controlID)
{return Ext.get('checkSpan'+controlID);}
function GetUnCheckSpan(controlID)
{return Ext.get('uncheckSpan'+controlID);};
