//////////////////////////////////////////////////////////
// Multi-Repositories main window element template
//////////////////////////////////////////////////////////

/*
Usage URL sample:
http://MyServer/wa/bmc-ctd-wa-cgi.exe?0=LoginWindow&3=multirep.htm&4=multirep.txt
*/

Begin Component RepositoryArray
	Begin Counter FirstDomain
		Value = 1
	End

	ForEach(domain in $Domains)
	{
		if(exists([domain].ID))
		{
			if(eq(Counter.FirstDomain(), 1))
			{
				Begin Counter FirstDomain
					Value = 0
				End
			}
			else
			{
				Begin Label
					label = ","
					EscapeType = None
				End
			}

			Begin Label
				label = "['"
				EscapeType = None
			End

			Begin Label
				label = [domain].Name
				EscapeType = JS
			End

			Begin Label
				label = "','"
				EscapeType = None
			End

			Begin Label
				label = [domain].ID
				EscapeType = JS
			End

			Begin Label
				label = "','','']" // by default, fill empty strings for user naem and password/
				EscapeType = None
			End
		}
	}
End

Begin Component EncryptPassword
	Begin Request
		RequestType = Base
		ElemTemplate = "multirephelper.txt"
		StrTemplate = "multirephelper.htm"
		ErrorFlowElem = "multirephelper.txt"
		ErrorFlowStr = "multirephelper.htm"
		Lang = $Params.Lang

		Begin VariableAttribute u
			Password = (*) Action("szLoginPassword")
			NewPassword = (*) Action("szLoginNewPassword")
		End
	End
End

Begin Component LoginToRepository
	////////////////////////////////////////////////////
	// Base request is used to validate that
	// previous session didn't timeout.
	// Then, in multirephelper.txt, Logout and login
	// is done using RequestData elements
	////////////////////////////////////////////////////
	Begin Request
		RequestType = Base
		ElemTemplate = "multirephelper.txt"
		StrTemplate = "multirephelper.htm"
		ErrorFlowElem = "multirephelper.txt"
		ErrorFlowStr = "multirephelper.htm"
		Lang = $Params.Lang
		SID = (*) Action("gszCurrentSID")

		Begin VariableAttribute u
			User = (*) Action("szLoginUser")
			EncryptedPassword = (*) Action("szLoginEncryptedPassword")
			NewEncryptedPassword = (*) Action("szLoginNewEncryptedPassword")
			Domain = (*) Action("szLoginRepositoryID")
		End
	End
End

Begin Component ChangePassword
	Begin Request
		RequestType = Base
		ElemTemplate = "multirephelper.txt"
		StrTemplate = "multirephelper.htm"
		ErrorFlowElem = "multirephelper.txt"
		ErrorFlowStr = "multirephelper.htm"
		Lang = $Params.Lang

		Begin VariableAttribute u
			User = (*) Action("gszUserName")
			EncryptedPassword = (*) Action("gszEncryptedPassword")
			NewEncryptedPassword = (*) Action("gszNewEncryptedPassword")
			Domain = (*) Action("szLoginRepositoryID")
			OnlyChangePassword = true
		End
	End
End

Begin Component OpenRepository
	Begin Request
		RequestType = ReportListWindow
		ElemTemplate = "folderscreenparts.txt"
		Lang = $Params.Lang
		Mode = NONE
		SID = (*) Action("szLoginSessionID")
		FID = (*) Action("getLastVisitedFolder()")
		Filter = (*) Action("szCurrentFilter")
		Sort = (*) Action("szCurrentSort")
		when(eq(%User.ApplicationFeatures.ReportListComputeNumberOfReportsFeature.ischecked,1))
		{
			gettotalcount =  Plus(1,Mult(%User.ReportList.MaxSize,%User.ApplicationFeatures.ReportListComputeNumberOfReportsLimit.value))

		}

		Begin VariableAttribute STD
			NoDscnt = 1
			MR = 1 // Multi-Repository
			when(eq(%User.ApplicationFeatures.ReportListComputeNumberOfReportsFeature.ischecked,1))
			{
									gtc = Plus(1,Mult(%User.ReportList.MaxSize,%User.ApplicationFeatures.ReportListComputeNumberOfReportsLimit.value))
			}
		End
	End
End

Begin Component OpenRepositoryFilter
	Begin Request
		RequestType = FilterWindow
		ElemTemplate = "filterscreenparts.txt"
		StrTemplate = "wascreenparts.htm"
		Lang = $Params.Lang
		SID = (*) Action("szLoginSessionID")
		FID = (*) Action("getLastVisitedFolder()")
		Filter = (*) Action("szCurrentFilter")

		Begin VariableAttribute u
			Sort = (*) Action("szCurrentSort")
		End

		Begin VariableAttribute STD
			NoDscnt = 1
			MR = 1 // Multi-Repository
			when(eq(%User.ApplicationFeatures.ReportListComputeNumberOfReportsFeature.ischecked,1))
			{
									gtc = Plus(1,Mult(%User.ReportList.MaxSize,%User.ApplicationFeatures.ReportListComputeNumberOfReportsLimit.value))
			}
		End
	End
End

Begin Component Logout
	Begin Request
		RequestType = Logout
		ElemTemplate = "multirephelper.txt"
		StrTemplate = "multirephelper.htm"
		ErrorFlowElem = "multirephelper.txt"
		ErrorFlowStr = "multirephelper.htm"
		Lang = $Params.Lang
		SID = (*) Action("gszCurrentSID")
	End
End

if(exists($UserData.User))
{
	Begin Component DefaultUser
		Begin Label
			label = $UserData.User
			EscapeType = JS
		End
	End
}

if(eq($Params.FID, "CookieCruncher"))
{
	Begin Component CookieCruncher
		Begin Label
			Label = "GotoCookieCruncher();"
			EscapeType = None
		End
	End
}

Begin Component RequestLang
	Begin Label
		Label = $Params.lang
	End
End

Begin Component SupportedLanguages
	if(exists(%User.Languages))
	{
		ForEach(language in %User.Languages)
		{
			Begin StrVariable SupportedLanguages
				append = " " + [language]
			End
		}

		Begin Label
			label = StrVariable.SupportedLanguages()
		End
	}
End

if( eq(%User.Applicationfeatures.ChangeUILanguage.ischecked, 1) &&
		exists(%User.Languages) && gt(VarChildsCount(%User.Languages), 1))
{
	Begin Component LanguagesArray
		Begin Counter FirstLanguage
			value = true
		End

		ForEach(language in %User.Languages)
		{
			if(eq(Counter.FirstLanguage(), true))
			{
				Begin Counter FirstLanguage
					value = false
				End
			}
			else
			{
				Begin Label
					Label =  ","
					EscapeType = NONE
				End
			}

			Begin Label
				Label =  "['" + Replace([language].display, "&&", ";") + "','" + [language] + "',"
				EscapeType = NONE
			End


			Begin Label
				when(eq([language], CurrentLanguage()))
				{
					Label = "true]"
				}
				else
				{
					Label = "false]"
				}

				EscapeType = NONE
			End
		}
	End
}

Begin Component DefaultLanguage
	Begin Label
		label = %User.GeneralSettings.language
	End
End

Begin Component NoLanguageUrl
	Begin Request
		RequestType = $Params.RequestType
		StrTemplate	= $Params.StrTemplate
		ElemTemplate= $Params.ElemTemplate

		/* pass all user data */
		Begin VariableAttribute u
			if(exists($UserData))
			{
				ForEach(attr in $UserData)
				{
					if(noteq(VarName([attr]), User))
					{
						Begin Attribute
							name = VarName([attr])
							value = [attr]
						End
					}
				}
			}

			Begin Attribute
				name = User
				value = (*)Action("frames[0].document.forms[0].User")
			End
		End
	End
End

Begin Component ShowFilter
	Begin Label
		when(ExistsAndEqual($std.ShowFilter, "0") || ExistsAndEqual($UserData.ShowFilter, "0"))
		{
			label = "false"
		}
		else
		{
			label = "true"
		}

		EscapeType = None
	End
End

Begin Component StartFilter
	Begin Label
		when(ExistsAndEqual($UserData.StartFilter, "1"))
		{
			label = "true"
		}
		else
		{
			label = "false"
		}

		EscapeType = None
	End
End

Begin Component ApplyDefaultFilter
	Begin Label
		label = %User.ApplicationFeatures.ApplyFilterFeature.value
		EscapeType = NONE
	End
End

Begin Component ApplyDefaultSort
	Begin Label
		label = %User.ApplicationFeatures.ApplySortFeature.value
		EscapeType = NONE
	End
End

Begin Component InitialFilter
	Begin Label
		label = WhenExists($UserData.Filter)
		EscapeType = JS
	End
End

Begin Component  HideHelp
	if(eq(%User.Applicationfeatures.Helpfeature.ischecked , 0) )
	{
		Begin Label
			label = "HideHelpUI();"
		End
	}
End
#include "login_background.txt"


#include "generaltemplate.txt"
//used for parse default index
Begin Component GlobalTreeIndex
	Begin Label
		when(eq($Info.IsSupported.GlobalTreeIndex, true) && eq($Info.IsSupported.HostPrint, true))
		{
			Label = "true"
		}
		else
		{
			Label = "false"
		}
	End
End

Begin Component AdminFilter
	if(eq(%User.ApplicationFeatures.ApplyFilterFeature.value, "1"))
	{
		Begin StrVariable FunctionName
					value = "AdminFilter"
		End

		DoTemplate (StartFunction)
		//report params
		DoTemplate (StrParam on %User.Applicationfeatures.FilterApprovalNameFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterReportNameFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterJobNameFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterRemarkFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterCategoryFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterIndexNameFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterIndexValueFeatureDefaultValue.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterRecipientFeatureDefaultValue.value as Param)
		if(eq($Info.IsSupported.Generations, true))
		{
			DoTemplate (StrParam on %User.Applicationfeatures.FilterGenerationFeatureDefaultValue.value as Param)
		}
		else
		{
			DoTemplate (NullParam)
		}
		if(eq($Info.IsSupported.Versions, true))
		{
			DoTemplate (StrParam on %User.Applicationfeatures.FilterVersionFeatureDefaultValue.value as Param)
		}
		else
		{
			DoTemplate (NullParam)
		}
		if(eq($Info.IsSupported.FullTextSearch, true))
		{
			DoTemplate (StrParam on %User.Applicationfeatures.FilterFullSearchFeatureDefaultValue.value as Param)
		}
		else
		{
			DoTemplate (NullParam)
		}
		//report status:
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportStatusActiveFeatureDefaultSelected.value as Param)
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportStatusHistoryFeatureDefaultSelected.value as Param)
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportStatusMigratedFeatureDefaultSelected.value as Param)
		
		//date&time
		DoTemplate (IntParam on %User.Applicationfeatures.FilterDateTypeDefaultValueFeature.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterDateFromDefaultValueFeature.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterDateToDefaultValueFeature.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterTimeFromDefaultValueFeature.value as Param)
		DoTemplate (StrParam on %User.Applicationfeatures.FilterTimeToDefaultValueFeature.value as Param)
		
		//report type
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportTypeTextFeaturedefaultselected.value as Param)
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportTypeAFPFeatureDefaultSelected.value as Param)
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportTypeXeroxFeaturedefaultselected.value as Param)
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportTypePDFFeaturedefaultselected.value as Param)
		DoTemplate (IntParam on %User.Applicationfeatures.FilterReportTypeOtherFeaturedefaultselected.value as Param)
		
		DoTemplate (EndFunction)
	}
	else
	{
		Begin Label
			Label = "null"
			EscapeType = None
		End
	}
End



Begin Component Version
	Begin Label
		label = {!WA Lang.ConcatFunction}("{!WA Common.Version}", " ", $Params.Version)
		EscapeType = JS
	End
End

Begin Component LoginProhibitClassicUi
	Begin Label
		Label =  %User.Applicationfeatures.LoginProhibitClassicUi.ischecked
	End
End
