
// specific toolbars handler
var remote = null;
var WINDOW_SMALL = "width=270,height=200,resizable=0,status=0,menubar=0,scrollbars=0,left="+((window.screen.width / 2) - 135)+",top="+((window.screen.height / 2) - 100);
var WINDOW_PRINT = "width=600,height=450,resizable=1,status=1,menubar=1,scrollbars=1,left="+((window.screen.width / 2) - 300)+",top="+((window.screen.height / 2) - 250);
var WINDOW_SEARCH = "width=580,height=500,resizable=1,status=0,menubar=0,scrollbars=1,left="+((window.screen.width / 2) - 250)+",top="+((window.screen.height / 2) - 250);
var bUseSapiOnLogout = false;
var szUrlBackend = "";

function HomePageHandler()
{
	var szUrl = objContextData.Get(CONTEXT_TOKEN)
	var szHome = GetSessionDataValue ("HomePage");
	if (szHome.length)
		szUrl += szHome;
	else
		szUrl += objContextData.Get(CONTEXT_ALIAS);
	szUrl += "/default.aspx";
	
	top.location.href = szUrl;
}

function BackHandler()
{
	var szUrl = "";
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	
	if (window.location.href.indexOf ("id=") != -1 || window.location.href.indexOf ("xbox=") != -1)
		szUrl = "./default.aspx";
	else {
		if (window.location.href.indexOf (szAlias + "/default.aspx") == -1)
			szUrl = "../default.aspx";
		else
			szUrl = "./default.aspx";
	}
	window.location.href = szUrl;
}


function QuickEditHandler()
{
	if (window.location.href.indexOf ("r2b_edit") != -1) {
		top.Exit();
		return;
	}
	if (!bIsNetscape) {
		var szUrl = objContextData.Get(CONTEXT_TOKEN) + "/psixtheme/_Templates/Wysiwyg/QuickEdit.htm?" 
										+ objContextData.Get(CONTEXT_TOKEN) + "|" 
										+ objContextData.Get(CONTEXT_ALIAS) + "|" 
										+ objContextData.Get(CONTEXT_PARTIAL_PATH) + "|" 
										+ objContextData.Get(CONTEXT_CONTAINER_ID)+ "|" 
										+ objContextData.Get(CONTEXT_PARENT_CONTAINER_ID)+ "|"
										+ window.location.search.substr(1);
		top.location.href = szUrl;
	}
	else
		alert(szMsgNoNetscape);
}


var bPlayExit = false;
function LogoutHandler()
{
	if (bUseSapiOnLogout && !bPlayExit) {
		if (GetApplicationData ().length) {
			SetApplicationData ("");
		}
		PlayText (szSAPILogout);
		bPlayExit = true;
		window.setTimeout ("LogoutHandler();", 1500);
		return;
	}
	bPlayExit = false;
	LogoutToHomeHandler();
	/*
	var szDocId = objContextData.Get(CONTEXT_DOCUMENT_ID);
	var szUrl = objContextData.Get(CONTEXT_TOKEN) + "/psix/quintetto.aspx?Operation=Logout";
	szUrl += "&Return=" + objContextData.Get(CONTEXT_ALIAS) + objContextData.Get(CONTEXT_PARTIAL_PATH) + "default.aspx";
	if (szDocId)
		szUrl += "?id=" + szDocId;
	var oRemote = window.open("", "BACKEND");
	oRemote.close();
	window.location.href = szUrl;
	*/
}

function PrintHandler()
{
	var szUrl = objContextData.Get(CONTEXT_TOKEN) + 
				objContextData.Get(CONTEXT_ALIAS) +  
				objContextData.Get(CONTEXT_PARTIAL_PATH) + 
				"default.aspx?id=" +
				objContextData.Get(CONTEXT_DOCUMENT_ID) +
				"&vistaraw=yes";
				"&print=yes";
	window.open (szUrl, "print_page", WINDOW_PRINT); 
}

function LogoutToHomeHandler()
{
	var szReturn = "";
	var szHome = GetSessionDataValue ("HomePage");
	if (szHome.length)
		szReturn += szHome;
	else
		szReturn += objContextData.Get(CONTEXT_ALIAS);
	szReturn += "/default.aspx";
	
	var szUrl = objContextData.Get(CONTEXT_TOKEN) + "/psix/quintetto.aspx?Operation=Logout";
	szUrl += "&Return=" + szReturn;
	
	window.location.href = szUrl;
	var oRemote = window.open("", "BACKEND");
	oRemote.close();
}

function PersonalHandler()
{
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	if (szAlias != "/psixrepository")
		SetSessionData ("HomePage", objContextData.Get(CONTEXT_ALIAS), "add");
	top.location.href = objContextData.Get(CONTEXT_TOKEN) + "/psix/FindURL.aspx?mid=1&type=2&id=" + objContextData.Get(CONTEXT_USER_FOLDER_ID);
}

function LoginHandler ()
{	
	var szReturn = objContextData.Get(CONTEXT_ALIAS) + objContextData.Get(CONTEXT_PARTIAL_PATH) + "default.aspx";
	if (objContextData.Get(CONTEXT_DOCUMENT_ID).length)
		szReturn += "?id=" + objContextData.Get(CONTEXT_DOCUMENT_ID);
	var szLang = objContextData.Get(CONTEXT_LANGUAGE);
		
	var szUrl;
	if (objContextData.Get(CONTEXT_LOGON) != "")
		szUrl = objContextData.Get(CONTEXT_LOGON) + "?return=" + szReturn + "&language=" + szLang;
	else 
		szUrl = "/psix/logon.aspx";
	szUrl += "?return=" + szReturn + "&language=" + szLang;
	window.location.href = szUrl;
}

function DirectLoginHandler()
{
	var ThisForm = document.LoginForm;
	if (!ThisForm.userid.value.length) {
		if (!ThisForm.password.value.length) {
			alert(szMsgInsertUsernamePassword);
			return;
		}
		alert(szMsgInsertUsername);
		return;
	}
	if (!ThisForm.password.value.length) {
		alert(szMsgInsertPassword);
		return;
	}
	var szDocId = objContextData.Get(CONTEXT_DOCUMENT_ID);
	var szReturn =objContextData.Get(CONTEXT_ALIAS) + objContextData.Get(CONTEXT_PARTIAL_PATH)  + "default.aspx";
	if (szDocId)
		szReturn += "?id=" + szDocId;
	ThisForm.Return.value = szReturn;
	ThisForm.submit();
}

function RegistrationHandler()
{
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
	var szDocId = objContextData.Get(CONTEXT_DOCUMENT_ID);
	var szLang = objContextData.Get(CONTEXT_LANGUAGE);
		
	var szUrl = "/psix/quintetto.aspx?Operation=Transform";
	szUrl += "&XSL=/psixtheme/_Templates/" + szLang + "/Membership/Registration.xsl";
	szUrl += "&AD_XML=/psixrepository/_Data/Countries.xml";
	szUrl += "&r2b_path=" + szPath;
	szUrl += "&r2b_alias=" + szAlias;
	if (szDocId)
		szUrl += "&r2b_docid=" + szDocId;
	szUrl += "&Return=HTML";

	top.location.href = szUrl;
}

function UserProfileHandler()
{
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
	var szDocId = objContextData.Get(CONTEXT_DOCUMENT_ID);
	var szToken = objContextData.Get(CONTEXT_TOKEN);
	var szLang = objContextData.Get(CONTEXT_LANGUAGE);

	var szUrl = szToken + "/psix/quintetto.aspx?Operation=Transform";
	szUrl += "&XSL=/psixtheme/_Templates/" + szLang + "/Membership/Registration.xsl";
	szUrl += "&RCD_XML=_descriptor.xml";
	szUrl += "&AD_XML=/psixrepository/_Data/Countries.xml";
	szUrl += "&r2b_path=" + szPath;
	szUrl += "&r2b_alias=" + szAlias;
	if (szDocId)
		szUrl += "&r2b_docid=" + szDocId;
	szUrl += "&Return=HTML";
	top.location.href = szUrl;
}

function OpenBackend () 
{
	remote = window.open (szUrlBackend, "BACKEND");
	remote.returnValue = szSessionId;
	szUrlBackend = "";
}

function BackendHandler ()
{
	var szAliasToken = objContextData.Get(CONTEXT_TOKEN);
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
	var idDoc = objContextData.Get(CONTEXT_DOCUMENT_ID);
	var szUrl =  szAliasToken + "/psix/quintetto.aspx?XSL=FramePage.xsl";
	var szNavigator = objContextData.Get(CONTEXT_NAVIGATOR);
	szUrl += "&RCD_XML=_descriptor.xml?id=0";
	szUrl += "&r2b_path=" + szPath;
	szUrl += "&r2b_alias=" + szAlias;
	if (idDoc != '')
		szUrl += "&r2b_idtoselect=" + idDoc;
	szUrl += "&Return=HTML";
	
	szUrlBackend = szUrl;
	
	if (bIsNetscape && window.opener) {
		window.opener.location.href = szUrl;
		window.opener.focus();
		return;
	}
	
	try {
		//Safari does not work using setTimeout
		if ((remote && remote.name == "BACKEND" && remote.returnValue == szSessionId) || szNavigator.indexOf ("Safari") != -1 || szNavigator.indexOf ("Opera") != -1)  {
			remote = window.open (szUrlBackend, "BACKEND");
			remote.returnValue = szSessionId;
			remote.focus();
		}
		else {
			//The backend window has not been opened by this instance then close it and re-open it for SessionId checks
			var oRemote = window.open("", "BACKEND");
			oRemote.close();
			window.setTimeout ("OpenBackend();", 200);
		}
	}
	catch (e) {
		var oRemote = window.open("", "BACKEND");
		oRemote.close();
		window.setTimeout ("OpenBackend();", 200);
	}
/*	
	//The backend window has not been opened by this instance. 
	//However it could be been opened by another instance: then close it and re-open a new window for sessionid checks
	var oRemote = window.open("", "BACKEND");
	oRemote.close();
	window.setTimeout ("OpenBackend();", 200);
*/
/*
	if (!remote) {
		//The backend window has not been opened by this instance. 
		//However it could be been opened by another instance: then close it and re-open a new window for sessionid checks
		var oRemote = window.open("", "BACKEND");
		oRemote.close();
		window.setTimeout ("OpenBackend();", 200);
	}
	else
		remote = window.open (szUrl, "BACKEND");
*/
//	if (remote) {
//		No perche' se il backend e' gia aperto compare una popup con un messaggio di alert	
//		//Maximize the window
//		remote.moveTo (0, 0);
//		remote.resizeTo (screen.availWidth, screen.availHeight);
//		remote.focus();
//	}
}	

function BPAHandler ()
{
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
	var szToken = objContextData.Get(CONTEXT_TOKEN);
	var szLang = objContextData.Get(CONTEXT_LANGUAGE);
	var szUrl = szToken + "/psix/quintetto.aspx?Operation=Transform";
	szUrl += "&RCD_XML=_descriptor.xml";
	szUrl += "&XSL=/psixtheme/_Templates/" + szLang + "/BusinessDriven/BPALayout.xsl";
	szUrl += "&AD_XML=/psixrepository/_Data/" + szLang + "/BusinessProcessAutomation.xml";
	szUrl += "&r2b_path=" + szPath;
	szUrl += "&r2b_alias=" + szAlias;
	szUrl += "&r2b_token=" + szToken.substr(1);
	szUrl += "&r2b_mainhref=" + window.location.href;
	szUrl += "&Return=HTML";
	top.location.href = szUrl;
}

function FavoriteHandler()
{
	var szCid = objContextData.Get(CONTEXT_USER_FOLDER_ID);
	var szToken = objContextData.Get(CONTEXT_TOKEN);
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
	
	var szUrl = szToken + "/psix/quintetto.aspx?Operation=CreateLocator";
	szUrl += "&RCD_XML=_descriptor.xml?id=0";
	szUrl += "&r2b_path=" + szPath;
	szUrl += "&r2b_alias=" + szAlias;
	szUrl += "&r2b_token=" + szToken.substr(1);
	if (objContextData.Get(CONTEXT_DOCUMENT_ID) != '') {
		szUrl += "&type=1&mid=12&cid=" + szCid;
		szUrl += "&url=" + objContextData.Get(CONTEXT_DOCUMENT_ID);
		szUrl += "&title=" + objContextData.Get(CONTEXT_DOCUMENT_TITLE);
	}
	else {
		szUrl += "&type=2&mid=12&cid=" + szCid;
		szUrl += "&url=" + objContextData.Get(CONTEXT_CONTAINER_ID);
		szUrl += "&title=" + objContextData.Get(CONTEXT_CONTAINER_TITLE);
	}
	szUrl += "&Return=" + escape(window.location.href);
	
	window.location.replace (szUrl);
}

function UserPreferredSearch()
{
	var remote = window.open("", "crmwindow", WINDOW_SEARCH);
	var szLang = objContextData.Get(CONTEXT_LANGUAGE);

	var szUrl = objContextData.Get(CONTEXT_TOKEN) + "/psix/quintetto.aspx?Operation=Transform";
	szUrl += "&XSL=/psixtheme/_templates/" + szLang + "/Advanced/PreferredSearch.xsl";
	szUrl += "&RCD_XML=_descriptor.xml?id=0";
	szUrl += "&r2b_userfolderid=" + objContextData.Get(CONTEXT_USER_FOLDER_ID);
	szUrl += "&r2b_path=" + objContextData.Get(CONTEXT_PARTIAL_PATH);
	szUrl += "&r2b_alias=" + objContextData.Get(CONTEXT_ALIAS);
	szUrl += "&r2b_token=" + objContextData.Get(CONTEXT_TOKEN).substr(1);
	szUrl += "&Return=HTML";
	remote.location.href = szUrl;
	remote.focus();
}

function MailNotificationHandler()
{
	if (!objContextData.Get(CONTEXT_USER_EMAIL).length) {
		alert (szMsgUserNoMail);
		return;
	}
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szMessage = szMsgAssetNotification;
	var szId = objContextData.Get(CONTEXT_DOCUMENT_ID);
	if (!szId.length) {
		szId = objContextData.Get(CONTEXT_CONTAINER_ID);
		szMessage = szMsgContainerNotification;
	}
	if (confirm(szMessage)) {
		var szToken = objContextData.Get(CONTEXT_TOKEN);
		var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
		var szUrl = szToken + "/psix/quintetto.aspx?Operation=ManageNotify";
		szUrl += "&RCD_XML=_descriptor.xml?id=0";
		szUrl += "&add_id=" + szId;
		szUrl += "&r2b_path=" + szPath;
		szUrl += "&r2b_alias=" + szAlias;
		szUrl += "&r2b_token=" + szToken.substr(1);
		szUrl += "&Return=" + escape(window.location.href);
		window.location.replace (szUrl);
	}
}

function SendAssetViaMail()
{
	if (!objContextData.Get(CONTEXT_USER_EMAIL).length) {
		alert (szMsgUserNoMail);
		return;
	}
	try {
		if (szAssetFsname) {
			var remote = window.open("", "crmwindow", WINDOW_SEARCH);
			var szLang = objContextData.Get(CONTEXT_LANGUAGE);

			var szUrl = objContextData.Get(CONTEXT_TOKEN) + "/psix/quintetto.aspx?Operation=Transform";
			szUrl += "&XSL=/psixtheme/_Templates/" + szLang + "/Advanced/SendTo.xsl";
			szUrl += "&RCD_XML=_descriptor.xml?id=0";
			szUrl += "&r2b_files=" + szAssetFsname + szConversionFile + szAssetAttachments;
			szUrl += "&r2b_path=" + objContextData.Get(CONTEXT_PARTIAL_PATH);
			szUrl += "&r2b_alias=" + objContextData.Get(CONTEXT_ALIAS);
			szUrl += "&r2b_token=" + objContextData.Get(CONTEXT_TOKEN).substr(1);
			szUrl += "&Return=HTML";
			remote.location.href = szUrl;
			remote.focus();
		}
	}
	catch (e) {
		alert (szMsgTypeNotValidForSend);
	};
}

function PrintToHandler()
{
	try {
		if (szAssetFsname) {
			var remote = window.open("", "printwindow", WINDOW_SEARCH);
			var szLang = objContextData.Get(CONTEXT_LANGUAGE);

			var szUrl = objContextData.Get(CONTEXT_TOKEN) + "/psix/quintetto.aspx?Operation=Transform";
			szUrl += "&XSL=/psixtheme/_Templates/" + szLang + "/Advanced/PrintTo.xsl";
			szUrl += "&RCD_XML=_descriptor.xml?id=0";
			szUrl += "&r2b_files=" + szAssetFsname + szConversionFile + szAssetAttachments;
			szUrl += "&r2b_path=" + objContextData.Get(CONTEXT_PARTIAL_PATH);
			szUrl += "&r2b_alias=" + objContextData.Get(CONTEXT_ALIAS);
			szUrl += "&r2b_token=" + objContextData.Get(CONTEXT_TOKEN).substr(1);
			szUrl += "&Return=HTML";
			remote.location.href = szUrl;
			remote.focus();
		}
	}
	catch (e) {
		alert (szMsgTypeNotValidForPrint);
	};
}

function FileSearch (szFileUrl, idVista)
{
	var szAlias = objContextData.Get(CONTEXT_ALIAS);
	var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
	var szToken = objContextData.Get(CONTEXT_TOKEN);
	var szUrl = szToken + "/psix/quintetto.aspx?Operation=search&XMLFileInput=" + szFileUrl;
	szUrl += "&RCD=descriptor.xml?id=0";
	szUrl += "&XSL=/psixtheme/_Framework/searchredirect.xsl";
	szUrl += "&r2b_searchvista=" + idVista;
	szUrl += "&r2b_path=" + szPath;
	szUrl += "&r2b_alias=" + szAlias;
	szUrl += "&r2b_token=" + szToken;
	szUrl += "&Return=HTML";
	top.location.href = szUrl;

}

// Need search.js to work
function PendingTaskHandler ()
{
	var szUserId = objContextData.Get (CONTEXT_USERID);
	var szQuery = '<search><objects><object name="asset" /></objects><condition><predicate at="bpa.bpaid" op="not qual">0</predicate><predicate at="bpa.haspendingtasks" op="equal">' + szUserId + '</predicate><predicate at="bpa.hastaskscompleted" op="equal">' + szUserId + '</predicate><logic operator="or" /><logic operator="and" /><order by="title" sort="ascending" /></condition></search>';
	SearchQuery (2, null, szQuery, ST_XML, true, "Pending tasks")		
}

function DoLogin()
{
	var szUserLoggedOn = objContextData.Get(CONTEXT_USER_FOLDER_ID);
	if (!szUserLoggedOn.length) {
		var szAlias = objContextData.Get(CONTEXT_ALIAS);
		var szPath = objContextData.Get(CONTEXT_PARTIAL_PATH);
		var szDocId = objContextData.Get(CONTEXT_DOCUMENT_ID);
		var szLang = objContextData.Get(CONTEXT_LANGUAGE);
		
		var szUrl =  "/psix/quintetto.aspx?Operation=Transform"
			szUrl += "&XSL=/psixtheme/_Templates/" + szLang + "/Membership/login.xsl";
			szUrl += "&RCD_XML=_descriptor.xml?id=0";
			szUrl += "&r2b_path=" + szPath;
			szUrl += "&r2b_alias=" + szAlias;
			szUrl += "&r2b_token=";
			if (szDocId)
				szUrl += "&r2b_docid=" + szDocId;
			szUrl += "&Return=HTML";
			
			remote = window.open (szUrl, "LoginWindow", WINDOW_SMALL);
			remote.focus();	
	}
}
