/*
<WebFramework>
	<FilePath>/Scripts/User.js</FilePath>
	<Description>This Script file is used to perform security tasks.</Description>
	<Version Major="5.2" Minor="0" Revision="4" Date="1/3/2007">
		<Revision Date="8/17/2004" Name="Sean Pardue" Major="5" Minor="0" Revision="0">Creation</Revision>
		<Revision Date="8/25/2004" Name="Sean Pardue" Major="5" Minor="0" Revision="1">
			Changed DoError() to show Login screen after incorrect login.
		</Revision>
		<Revision Date="9/27/2004" Name="Sean Pardue" Major="5" Minor="0" Revision="2">
			Changed EnableConfig() to clear background on Configuration toggle button.
		</Revision>
		<Revision Date="1/11/2005" Major="5.0" Minor="0" Revision="2">Initial Release</Revision>
		<Revision Date="2/4/2005" Major="5.0" Minor="1" Revision="2" Name="Version Utility">
			Fixed Asset Configuration for setting image path
			Fixed resizing on Help dialog
			Fixed links in Reporting Services documentation
		</Revision>
		<Revision Date="2/14/2005" Major="5.0" Minor="2" Revision="2" Name="Version Utility">
			Fixed problem with deleting Assets
		</Revision>
		<Revision Date="5/2/2005" Major="5.0" Minor="2" Revision="3" Name="Sean Pardue">
			Added EnableOptions function.
		</Revision>
		<Revision Date="5/24/2005" Major="5.0" Minor="3" Revision="3" Name="Version Utility">Major and Minor revisions automatically set by utility.</Revision>
		<Revision Date="8/4/2005" Major="5.1" Minor="0" Revision="3" Name="Version Utility">Major and Minor revisions automatically set by utility.</Revision>
		<Revision Date="4/28/2006" Major="5.1" Minor="0" Revision="4" Name="Sean Pardue">
			Added Custom Security Feature to allow using external dll for authentication.
		</Revision>
		<Revision Date="1/3/2007" Major="5.2" Minor="0" Revision="4" Name="Version Utility">Major and Minor revisions automatically set by utility.</Revision>
	</Version>
</WebFramework>
*/
var gSecMask = 1;
var moPopup = window.createPopup();

function userInit() {			
	var bUseNT = UseNT.value;
	var bUseCustomSecurity = UseCustomSecurity.value;
	
	if (bUseCustomSecurity.toLowerCase() == 'true'){
		tdUser.attachEvent('onclick',ShowLogin);
		trDomain.style.display = "none";		
		if (tdUser.innerText == "None") {
			trLogout.style.display = "none";
			trChangePassword.style.display = "none";
		} else {
			trLogout.style.display = "inline";
			trChangePassword.style.display = "none";
		}
	}else	if (bUseNT.toLowerCase() == 'false') {					
		tdUser.attachEvent('onclick',ShowLogin);
		
		trDomain.style.display = "none";		
		if (tdUser.innerText == "None") {
			trLogout.style.display = "none";
			trChangePassword.style.display = "none";
		} else {
			trLogout.style.display = "inline";
			trChangePassword.style.display = "inline";
		}
	} else {		
		tdUser.style.cursor='default';
		tdUser.style.textDecoration='none';
		trLogout.style.display = "none";
		trChangePassword.style.display = "none";
		trDomain.style.display = "block";
	}
	
	gSecMask = parseInt(txtSecMask.value);	
	EnableConfig();
	EnableOptions();
	Refresh();		
}

function DoError(sError) {
	alert(sError);
	
	var bUseNT = UseNT.value;
	
	if (bUseNT.toLowerCase() == 'false') {
		ShowLogin();
	}
}

function GetConfigEnabled(){
	var bRet = false;
	
	var aItems=(new VBArray(top.fraTopic.dicTopics.Items())).toArray();
	
	for (var i=0;i<aItems.length;i++){
		var oItem = aItems[i];
		if (oItem.ConfigFlag){				
			var aActionItems=(new VBArray(oItem.dicActions.Items())).toArray();
			for (var j=0;j<aActionItems.length;j++){
				if (gSecMask & aActionItems[j].SecurityMask){
					bRet = true;
					break;
				}
			}
		}
	}
	return bRet;
}

function EnableConfig(){
	var e;
	
	//try{		
		var iSiteAdmin = (gSecMask & 2);
		
		if (iSiteAdmin > 0 || GetConfigEnabled()){
			spanConfig.style.visibility='visible';
			mbSiteConfig = false;
			mbConfig = false;
			//imgConfig.src=imgConfig.getAttribute("DISABLEDIMAGE");
			spanConfig.parentElement.style.backgroundColor = '';
			imgConfig.disabled=true;
			//spanConfig.disabled=true;
		}else{
			mbSiteConfig = false;
			mbConfig = false;
			spanConfig.style.visibility='hidden';
			spanConfig.parentElement.style.backgroundColor = '';
		}
	//}catch(e){}
}

function ShowOther() {
	var bUseCustomSecurity = UseCustomSecurity.value;
	
	if (tdUser.innerText == "None") {
		trLogout.style.display = "none";
		trChangePassword.style.display = "none";
	} else {				
		trLogout.style.display = "inline";
		if (bUseCustomSecurity.toLowerCase() == 'true'){
			trChangePassword.style.display = "none";
		}else{
			trChangePassword.style.display = "inline";
		}
			
	}
	
	EnableConfig();	
	EnableOptions();
}

function ShowLogin(){		
	var bUseCustomSecurity = UseCustomSecurity.value;
		
	if (bUseCustomSecurity.toLowerCase() == 'true'){
		var ret=window.showModalDialog("ASP/CustomSecurityLogin.asp",frmLogin.txtUser,"dialogHeight:140px;dialogWidth:240px;Status:no;help:no" );				
	}else{
		var ret=window.showModalDialog("ASP/Login.asp",frmLogin.txtUser,"dialogHeight:135px;dialogWidth:240px;Status:no;help:no" );						
	}	
	
	frmLogin.txtUser.value="";
	frmLogin.txtPasswd.value="";
	frmLogin.txtAction.value="";
	
	if (ret != null){			
		frmLogin.txtUser.value=ret[0];
		frmLogin.txtPasswd.value=ret[1];
		frmLogin.submit();
	} 		
}
	
function Logout(){
	frmLogin.txtUser.value="";
	frmLogin.txtPasswd.value="";
	frmLogin.txtAction.value="Logout";
	frmLogin.submit();
}	

function ChangePassword(){		
	
	var ret=window.showModalDialog("HTML/Password.htm",tdUser.innerText,"dialogHeight:160px;dialogWidth:240px;Status:no;help:no" );			
	
	if (ret != null){
		frmLogin.txtUser.value=ret[0];
		frmLogin.txtPasswd.value=ret[1];					
		frmLogin.txtAction.value="PASSWORD";
		frmLogin.submit();
	}		
}		
	
function Refresh() {	
	if (top.fraAsset.document.readyState=="complete"){		
		var iAsset = top.fraAsset.miSelected;
		if (iAsset != null){		
			if (top.fraAsset.dicAssets.Exists(iAsset.toString()) ){
				var oAssetItem = top.fraAsset.dicAssets(iAsset.toString());
				top.fraTopic.RefreshTopic(oAssetItem);			
			}
		}
	}
}

function EnableOptions(){
	if (!(isNaN(HideFW)) && HideFW != 0){
		if (gSecMask&2){
			trHideAssetTree.style.display='block';
			trHideTopic.style.display='block';
		}else{
			trHideAssetTree.style.display='none';
			trHideTopic.style.display='none';
		}
	}
}
