function FormEventParameter()
{
	this.ContextCode = null;
	this.SourceID = null;
	this.FormID = null;
	this.CategoryID = null;
	this.RequestID = null;
	this.TaskID = null;
	this.IdCampaignAction = null;
	this.ReadOnly = null;
	this.Mode = null;
	this.Display = null;
	this.Cmd = null;
}

function RegisterCRMEvents()
{
	RegisterEvent('www.activportal.mc:CRMForm','ExecuteForm', ExecuteForm);
	RegisterEvent("www.activportal.mc:CRMForm","ExecuteTask", ExecuteTask);
	RegisterEvent("www.activportal.mc:CRMForm","ExecuteRequest", ExecuteRequest);

	//Demo
	RegisterEvent("www.activportal.mc:CRMContact","ExecuteTask", ExecuteTask);
	RegisterEvent("www.activportal.mc:CRMContact","ExecuteRequest", ExecuteRequest);
	
}

function UnRegisterCRMEvents()
{
	UnRegisterEvent('www.activportal.mc:CRMForm','ExecuteForm', ExecuteForm);
	UnRegisterEvent("www.activportal.mc:CRMForm","ExecuteTask", ExecuteTask);
	UnRegisterEvent("www.activportal.mc:CRMForm","ExecuteRequest", ExecuteRequest);

	//Demo
	UnRegisterEvent("www.activportal.mc:CRMContact","ExecuteTask", ExecuteTask);
	UnRegisterEvent("www.activportal.mc:CRMContact","ExecuteRequest", ExecuteRequest);
	
}

function ExecuteTask(oParam)
{
	if (oParam.TaskID == undefined)
	{
		// Demo
		if (!isNaN(oParam))
		{
			if( SetLockTask(oParam,true) )
			{
				fnWindowOpen(ActivPortalRootURL + "CRMFormManager.asp?ContextCode=&IDTask=" + oParam + "&IDRequest=&SourceID=","",550,700,true,true);
			}
		}
	}
	else 
	{
		//alert(oParam.SourceID);
		/*
		var IdRequest=-1;
		// var currentContactId = document.getElementById("IFOperation").contentWindow.gCurrentIDContact;
		var oRequest = loadXML(ActivPortalRootURL + "CRMProvider.asp?cmd=requestbytask&idtask=" + oParam.TaskID);
		if( oRequest != null )
		{
			IdRequest = GetProps(oRequest.documentElement,"@ID");
			if( SetLockTask(oParam.TaskID,true) )
			{
				fnWindowOpen(ActivPortalRootURL + "CRMFormManager.asp?ContextCode=" + oParam.ContextCode + "&IDTask=" + oParam.TaskID + "&IDRequest=" + oParam.RequestID + "&SourceID=" + oParam.SourceID  ,"",550,700,true,true);
			}
		}		
		*/	
		if( SetLockTask(oParam.TaskID,true) )
		{
			fnWindowOpen(ActivPortalRootURL + "CRMFormManager.asp?ContextCode=" + oParam.ContextCode + "&IDTask=" + oParam.TaskID + "&IDRequest=" + oParam.RequestID + "&SourceID=" + oParam.SourceID  ,"",550,700,true,true);
		}
	}
}

function ExecuteRequest(oParam)
{
		fnWindowOpen(ActivPortalRootURL + "CRMFormManager.asp?ContextCode=" + oParam.ContextCode + "&idrequest=" + oParam.RequestID + "&SourceID=" + oParam.SourceID  ,"",550,700,true,true);
}
	


function SetLockTask(id, bState) {
		
		var bret = true;
		if(!bState)
		{
			sendXML(ActivPortalRootURL + 'CRMProvider.asp?cmd=unlocktask&idtask=' + id);
		}
		else
		{
			var oLock = loadXML(ActivPortalRootURL + 'CRMProvider.asp?cmd=locktask&idtask=' + id);
			if( oLock != null && GetProps(oLock.documentElement,"@ID") != 0 )
			{
				alert( L_TASKLOCKMESSAGE_TEXT + GetProps(oLock.documentElement,"@User"));
				bret = false;
			}
			return bret;
		}
	}

function UnlockTask(idTask) {
		setLockTask(idTask, false);
	}	

function ExecuteForm(oFormEventParameter) 
{
	var sPath = document.location.href.substr(0, document.location.href.indexOf("/dashboard.asp") + 1 );
	//var param = "ContextCode=" + URLEncode(oFormEventParameter.ContextCode) + "&SourceID=" + oFormEventParameter.SourceID;
	var sUrl
	if (typeof(oFormEventParameter.Display) != 'undefined' && oFormEventParameter.Display && oFormEventParameter.Display == 'light')
		sUrl = "CRMFormNew.asp"
	else
		sUrl = "CRMFormManager.asp"
	sUrl = sPath + sUrl;
	sUrl += "?ContextCode=" + oFormEventParameter.ContextCode + "&SourceID=" + oFormEventParameter.SourceID;

	if (oFormEventParameter.TaskID != undefined && oFormEventParameter.TaskID != null)
		sUrl = sUrl + "&IDTask=" + oFormEventParameter.TaskID;
	if (oFormEventParameter.RequestID != undefined && oFormEventParameter.RequestID != null)
		sUrl = sUrl + "&IDRequest=" + oFormEventParameter.RequestID;
	if (oFormEventParameter.FormID != undefined && oFormEventParameter.FormID != null)
		sUrl = sUrl + "&IDForm=" + oFormEventParameter.FormID;
	if (oFormEventParameter.CategoryID != undefined && oFormEventParameter.CategoryID != null)
		sUrl = sUrl + "&IDFormCategory=" + oFormEventParameter.CategoryID;
	if (oFormEventParameter.IdCampaignAction != undefined && oFormEventParameter.IdCampaignAction != null)
		sUrl = sUrl + "&IdCampaignAction=" + oFormEventParameter.IdCampaignAction;
	if (oFormEventParameter.ReadOnly != undefined && oFormEventParameter.ReadOnly != null)
		sUrl = sUrl + "&ReadOnly=" + oFormEventParameter.ReadOnly;
	if (oFormEventParameter.Mode != undefined && oFormEventParameter.Mode != null)
		sUrl = sUrl + "&Mode=" + oFormEventParameter.Mode;
	if (oFormEventParameter.Cmd != undefined && oFormEventParameter.Cmd != null)
		sUrl = sUrl + "&cmd=" + oFormEventParameter.Cmd;

	window.open(sUrl,'Form','menubar=yes,width=600,height=700,scrollbars=yes,resizable=yes,toolbars=yes').focus();
}

try
{
	RegisterEvent('www.activportal.mc:Browser','onload', RegisterCRMEvents);
}
catch(e)
{
	}

try
{
	RegisterEvent('www.activportal.mc:Browser','onunload', UnRegisterCRMEvents);
}
catch(e)
{
}
