var applicationTop=true; admin=false, isClient=false;
var InNotAllowed = true, AllowedDealsDate, GLTodayDB='', GLAllowEditDelTrade3=false, GLAutoFocusTB=false, GLWeekend=true;
var ArrBank = new Array(), ArrBankA = new Array(), ArrBankQ = new Array(), arrTRHouses = new Array(new Array(),new Array());
var ArrBankC = new Array(), ArrBankTR = new Array(new Array(),new Array()), arrMainHouse=new Array(new Array(),new Array());
var userID, traderID, contraAccount, userSecurity, GLClientCode=0, GLCompanyName='', isTR=false, GLClientTimeShift=0;
var showBanks=true, viewClientsList=false, showCanBeSeenList=false; canInputBusiness=false, canUseB2B=false;
var showClientsColumn=false, showSettled=false, canChangeRates=false, showAllClients=false, userIsBroker=false, userIsAG=false;
var sessionKey='', GLSpreadOption=0, GLSpreadForward=0, GLSpreadSpot=0, GLExposureType=3, GLClientProfile=0,GLCompanyName='' ;
var GLSP_BanksType=0, GLReport_Type=0, GLListType='user', GLB2BLoadDefaults=0, GLBrokerGroupStatus=0, GLCFTypeDefault=0;
var arrJS = new Array(), arrMargins = new Array(), arrGLComSrc = new Array(), arrGLAllComSrc = new Array(), arrAGGroup=new Array();
var arrFutExchanges=new Array(), arrFutTypes=new Array(), arrFutSymbols=new Array(), arrFutSymbolsEFPS=new Array(), arrFutRates=new Array(), arrFutInfo=new Array();
var arrEFPClients=new Array(), arrEFPClearersA=new Array(), arrEFPClearersN=new Array(), arrEFPContrasA=new Array(), arrEFPContrasN=new Array();
var arrCashUsers=new Array(), arrGLUsers=new Array(), isGLShowContra=false, isGLCanDeferred=false,GLHedgedCcy=0;
var TradingPermissionsArray = new Array(),TradingAmountSteps = new Array();
var UseAmountSteps=0, GLDefaultTradeType=0,GLFarPrecent=0,GLOptionsDeskMain=0, GLAGCanDoTran=false	;
var ClientTradeButtonConfirm=false,SameDayPips=false,GLCLDealTicket=false,OrdersExcerciseRatesType=0,CustomTradeWinDeal=0, GLDefaultAtToLine=1, GLDefaultPremType=0;
var arrCcyHolidays=new Array(), arrSpotdateExceptions=new Array(), arrCcyPairs=new Array(), arrInfBusiness=new Array() ;
var SubsidiariesWin, NoDataTime=10, WaitingForApprovalSeconds=5, AccPosChecksVisible=0,ApplyDefaultSpread=0,OrdersClientMarketRateVisible=0,Default_Trade_Amount="1000000", Ratio_Logic=0, AccPostionAutoClose=0,RolloverNetCloseDeal=0,step_amounts="1000000",ExerciseRateMethod=0,autoExerciseService=0,GLConnectivityMethod='3';
var CPDealerNameType=0, CPDealerNameEnabled=0, arrCPDealerName = new Array(new Array(),new Array()), arrCuts=new Array();
var strTradeArray="",GLInvestorCTA=0, GLRateDeviationAlertLimit='1', GLUseConfirmedSpot=0, GLEndOfDayGMT=22;
var tries=0;
var isError=false;
var GLvarparm=''
var lastIntVolUpdate=0;
var GLtrPremissions="222";//General,Risk,Tradining

//------------------------------------------------------------------------------------------------------------------
function DEBUGprompt(title,content)
{
	myAspxDebugState=false;
	try {myAspxDebugState=top.AspxDebugState} catch(e) {}
	if(myAspxDebugState)
		prompt("!"+title,content)
	else
		alert("There was a disconnection period from server if this message repeat, please try logut and login again.")
}

function GetDataFromServer(strFile, strParameters, asynch, strReturnPath)
{

	var appletObj, reg;
	if (asynch+''=='undefined' || asynch==null) asynch=false;
	originalstrFile = strFile;

	if (strFile.indexOf("aspx")!=-1) strFile = pathActionASPX + strFile;
	else if (strFile.indexOf("asmx")==-1) strFile = pathActionDLL + strFile;

	if (!isTVon) return '';
	
	
	var strR='Error';
	
	
	if (top.GLFromwhere) 
		strParameters+='&Fromwhere='+top.GLFromwhere;
	else
		strParameters+='&Fromwhere=PRM';

	if ((top.GLFromwhere) && (top.GLFromwhere=='MFM'))
	{
		appletObj=frames.menu.logoFr;
	}
	else
		appletObj=frames.FRTV;

	//strFile=strFile.toUpperCase()
	
	if (strFile.toLowerCase().indexOf("action_new.dll")>-1)
	{
		strFile=pathDLL
		if (strParameters.indexOf(";")>-1 )
			strFile=pathSite+"/actionnet/action_new.aspx"			
	}

	if (strFile.toLowerCase().indexOf("exe.dll")>-1)// ||(strFile.indexOf("QUERYEXECUTE.DLL")>-1 && strParameters.indexOf("ETable=511")>-1)
	{
		strFile=strFile.replace(".dll",".aspx")
		strFile=strFile.replace("/Action/","/ActionNet/")
		strFile=strFile.replace("/action/","/ActionNet/")
		strParameters+="&Psevdo=0"
	}
	//----------------lena 12/08/2004
	if (strFile.toLowerCase().indexOf("exoticexecute.aspx")>-1)
	{
		strFile=pathSite+"/actionnet/exoticexecute.aspx"
	}
	


	if (asynch)
		try { appletObj.document.applets[0].JGetParam(strFile,strParameters,'false',strReturnPath); } catch(e){alert("error:"+e.message)}
	else
		try
		{
	    	//prompt("GetDataFromServer",strFile+"?"+strParameters+"   strReturnPath="+strReturnPath)
			var strReturnValue="";
			strReturnValue+= appletObj.document.applets[0].JGetParam(strFile,strParameters,'true',''); 
			if (strReturnValue.indexOf("<!DOCTYPE")>-1)
			{
				if (strReturnValue.toUpperCase().indexOf("<TITLE>")>-1){DocTITLE=strReturnValue.toUpperCase().split("TITLE>")[1];DocTITLE=DocTITLE.split("</")[0]}
				strReturnValue=strReturnValue.split(String.fromCharCode(13,10)+"<!DOCTYPE")[0]
				//while (strReturnValue.indexOf('"')>-1 && DocTITLE!="EXE") strReturnValue=strReturnValue.replace('"',"");
				//while (strReturnValue.indexOf(String.fromCharCode(10))>-1) strReturnValue=strReturnValue.replace(String.fromCharCode(10)," ");
				//while (strReturnValue.indexOf(String.fromCharCode(13))>-1) strReturnValue=strReturnValue.replace(String.fromCharCode(13)," ");
				//while (strReturnValue.indexOf("'")>-1 && DocTITLE!="EXE") strReturnValue=strReturnValue.replace("'","");
				if (DocTITLE!="EXE") { reg = new RegExp('"','gi'); strReturnValue = strReturnValue.replace(reg,''); }
				reg = new RegExp(String.fromCharCode(10),'gi'); strReturnValue = strReturnValue.replace(reg,' ');
				reg = new RegExp(String.fromCharCode(13),'gi'); strReturnValue = strReturnValue.replace(reg,' ');
				if (DocTITLE!="EXE") { reg = new RegExp("'",""); strReturnValue = strReturnValue.replace(reg,''); }

			}
			if (strReturnValue=="Error")
			{
				DEBUGprompt('Error','the error trapped in non-asynch call; strParameters='+strParameters)
				strR="";
				isError = true;
			}
			else
				strR=strReturnValue;				
		} 
		catch(e){}
		
		


	if (strR.length>0 && strR.charAt(0)=='!') strR=strR.substr(1,strR.length) //-- error alert case

	if (strR.indexOf('Error:')==0 && !asynch)
	{
		DEBUGprompt('Error',strR.substr(7, strR.length))
		isError = true;
		try {appletObj.JOutError();} catch(e){}
		if (strFile.indexOf('Action_new')!=-1) return '-1;connection error';
		else return '';
	}

	if (strR=='Error' && asynch) 
	           return    ((strReturnPath.toLowerCase().indexOf("forspreadgroup")>-1)?strR:"")
	        
	if (strR.indexOf('Error:')==0 && asynch)
	{
		DEBUGprompt('Error', strR.substr(7, strR.length));
		return ''; 
	}
	if(strR.indexOf("cannot be opened. It is in the middle of a restore")>0)
	{
		strR=strR.replace("cannot be opened. It is in the middle of a restore","cannot be opened it is in the middle of a restore. Screen refresh failed, please try refresh later.")
		strR=strR.replace("prmwarehousev3","Temp")
		strR+="try{var r=DealsArray.length;Writetable()}catch(e) {}"//prompt("","if(DealsArray.length>3) Writetable() else NoTable()")
	}
	return strR;
}


function SetRates(x)
{
	eval(x)
	try {frames.FRTiker.yyy();} catch(e){}
}

function GetRates()
{
	GetDataFromServer ('exe.aspx', 'id=6',true,'top.SetRates("' );
	GetInterestAndVol();
	//if (GLFromwhere=='PRM') GetFutureRates();
}

function GetFutureRates()
{ 	GetDataFromServer ('exe.aspx', 'id=46',true,'top.SetValue("' );} 

function GetUserList(param)
{ GetDataFromServer ('ExoticExecute.aspx', param,true,'top.SetValue("' ); }

function SetValue(x)
{
	while(x.indexOf("*")>-1) x=x.replace("*","'");
	
	if (!(x.indexOf('Timeout expired')>0&&x.indexOf('pr_DllExe')>0&&x.indexOf('id=27')>0))
	{
		//--------Lena
		if(x.indexOf("alert")>-1 && x.indexOf(":")>-1 && x.indexOf(");")>-1)
		{
			//while(x.indexOf("'")>-1) x=x.replace("'","");
			x=x.replace("alert(","alert('");
			x=x.replace(");","');");
		}
		eval (x)
	}
}


function GetInterestAndVol()
{
	var period = 60*60*1000;//- 1hour
	var d=new Date();
	var timenow = d.getTime();
	if (lastIntVolUpdate==0)
		lastIntVolUpdate = timenow
	else
		if (lastIntVolUpdate+period>timenow)
			return;

	GetDataFromServer ('exe.aspx', 'id=21',true,'top.SetValue("' );
	GetDataFromServer ('exe.aspx', 'id=22',true,'top.SetValue("' );
}


function GetAppArray()
{
	eval(GetDataFromServer ('exe.aspx', 'id=105',false));
	try { if (!FRTiker.isTickerRunning) FRTiker.yyy(); } catch(e){}

	GetDataFromServer ('exe.aspx', 'id=1',true,'top.SetValue("' );
	if (top.GLFromwhere=='PRM')
	{
		//GetDataFromServer ('exe.aspx','id=29',true,'top.SetValue("' );
		GetDepositValues();
	}
}


var ipr=0
function GetProfile() { 	GetDataFromServer ('exe.aspx', 'id=3', true, 'top.SetProfile("' ); }
function SetProfile(x)
{
	eval (x);
	if (ProfileArray[0]=='0')
		if ((ipr++)<3)
			GetProfile();
	else
		ipr=0;
	if (strBGtemp!='')
		setBrokerGroup(strBGtemp)
	if (top.GLFromwhere!='TOL')
	{ 	try {frames.MainWin.bodyframe.FrExposureTotal.window_onload();} catch(e){} }
	else
		try
		{
			var pathSiteTolString = pathSiteTol+'/mdiframe/CwinMod.htm';
			if (MainWin.frames.bodyframe.location.href.toLowerCase()!=(pathSiteTolString.toLowerCase())) MainWin.frames.bodyframe.location.replace('../mdiframe/CwinMod.htm') //tol
		}
		catch(e){}
}


function GetNetworth() {
GetDataFromServer ('exe.aspx', 'id=2',true,'top.SetNetworth("' ); }
function SetNetworth(x)
{
	eval (x);
	try {frames.MainWin.AccountPosition.GetValues();} catch(e){}
	try {frames.MainWin.bodyframe.FrExposureTotal.RunSetValues();} catch(e){}
	try {frames.MainWin.bodyframe.SetValues();} catch(e){}
}


function GetNetworthProfile() { GetDataFromServer ('exe.aspx', 'id=49&banksType='+GLSP_BanksType,true,'top.SetNetworthProfile("' ); }
function SetNetworthProfile(x)
{
	eval (x);
	if (ProfileArray[0]=='0')
		if ((ipr++)<3)
			GetProfile();
	else
		ipr=0;
	try {frames.MainWin.AccountPosition.SetValues();} catch(e){}
	try {frames.MainWin.bodyframe.FrExposureTotal.RunSetValues();} catch(e){}
	try {frames.MainWin.bodyframe.SetValues();} catch(e){}
	try {FRtrader.LoadDefaultBodyframe();} catch(e){}
	if (strBGtemp!='')
		setBrokerGroup(strBGtemp)
	try 
	{
		if (top.GLFromwhere == "TOL")
		{	
			//prompt(top.FRtrader.theListBox.value,top.FRtrader.theListBox.options[top.FRtrader.theListBox.selectedIndex].text);
			var brokerList,brokerNameList;
			if (!userIsBroker)
			{
				brokerList = OLTarrBrokerGroupString[0];
				brokerNameList = OLTarrBrokerGroupString[1];
				top.MainWin.bodyframe.ChangeActiveClientTradeBlotter(top.FRtrader.theListBox.value,top.FRtrader.theListBox.options[top.FRtrader.theListBox.selectedIndex].text,brokerList,brokerNameList,ProfileArray[12],canUseB2B);
			} 
		}
	} catch(e){}
}


var isTLloaded=false;
function GetTraderList()
{
	if (isTLloaded) return;
	isTLloaded=true;
	top.GetDataFromServer ('getTraderList.aspx?FromWhere='+top.GLFromwhere, '',true,'top.SetValue("' );
}


function GetFuturesData()
{
	var res=GetDataFromServer ('exe.aspx', 'id=43')
 	eval(res);
}


function GetDataOnChangeClient(newUserID)
{
	var x;
	x=FRterminal.JGetPrmMessage('03',newUserID)
	try { eval(x) } catch(e) {alert("failure: Profile")}
	x=FRterminal.JGetPrmMessage('10',newUserID)
	try { eval(x) } catch(e) {alert("failure: Banks")}
}

function GetEFPValues(tt, isEdit)
{
	MainWin.msgIFR.Show(2);
	GetDataFromServer ('exe.aspx', 'id=52',true,'top.SetEFPValues('+tt+','+isEdit+',"' );
}

function SetEFPValues(tt, isEdit, x)
{
	MainWin.msgIFR.Hide();
	eval(x)
	if (isEdit) try { MainWin.fxnewwin.winEdit.bodyframe.OnChangeTTypeDo(tt); } catch(e){}
	else try { MainWin.bodyframe.OnChangeTTypeDo(tt); } catch(e){}
}


function GetDepositValues()
{
	if (!isLoanGLInUse) return;
	GetDataFromServer ('exe.aspx', 'id=55',true,'top.SetValue("' );
}

function GetCcyHolidays() { GetDataFromServer ('exe.aspx', 'id=77',true,'top.SetCcyHolidays("' ); }

function SetCcyHolidays(x)
{

    if(x.slice(x.length-1)==",") x=x.slice(0,x.length-1);
	
	var arr = eval('new Array('+x+')');
	for (var i=1; i<GLCcyValues.length ;i++)
		arrCcyHolidays[GLCcyValues[i]] = new Array()
	
	for (var i=0; i<arr.length ;i+=2)
		if (arrCcyHolidays[arr[i]]!=null)
			arrCcyHolidays[arr[i]][arr[i+1]] = 1;

	//GetSpotdateExceptions()
}

function GetSpotdateExceptions() { GetDataFromServer ('exe.aspx', 'id=79',true,'top.SetSpotdateExceptions("' ); }

function SetSpotdateExceptions(x)
{
	var arr = eval('new Array('+x+')');
	for (var i=0; i<arr.length ;i+=4)
		arrSpotdateExceptions[i/4] = eval ('new Array("'+arr[i]+'","'+arr[i+1]+'","'+arr[i+2]+'","'+arr[i+3]+'")')
}


function GetRates4MrM() { GetDataFromServer ('exe.aspx', 'id=67&Fromwhere='+GLApp,true,'top.SetRates4MrM("' ); }
function SetRates4MrM(x)
{
	var arrW = MainWin.arrWinMRM
	for (var i=0; i<arrW.length; i++)
	{
		try { if (arrW[i].frQueryDet.isWaiting4Rates) arrW[i].frQueryDet.setRates(x); }
		catch(e){}
	}
}

function GetIBList4MrM() { GetDataFromServer ('exe.aspx', 'id=68&Fromwhere='+GLApp,true,'top.SetIBList4MrM("' ); }
function SetIBList4MrM(x)
{
	var arrW = MainWin.arrWinMRM
	for (var i=0; i<arrW.length; i++)
	{
		try { if (arrW[i].frQueryDet.isWaitingIBList) arrW[i].frQueryDet.setIBList(x); }
		catch(e){}
	}
}

function GetGroups4MrM() { GetDataFromServer ('exe.aspx', 'id=69&Fromwhere='+GLApp,true,'top.SetGroups4MrM("' ); }
function SetGroups4MrM(x)
{
	var arrW = MainWin.arrWinMRM
	for (var i=0; i<arrW.length; i++)
	{
		try { if (arrW[i].frQueryDet.isWaiting4Groups) arrW[i].frQueryDet.setGroups(x); }
		catch(e){}
	}
}

function GetInfBusiness(isEdit)
{
	MainWin.msgIFR.Show(8);
	GetDataFromServer ('exe.aspx', 'id=84',true,'top.SetInfBusiness('+isEdit+',"' ); 
}
function SetInfBusiness(isEdit, x)
{
	var arr = eval('new Array('+x+')');
	var fid, len;
	for (var i=0; 3*i<arr.length; i++)
	{
		fid = parseInt(arr[3*i])
		if (typeof(arrInfBusiness[fid])=='undefined') { arrInfBusiness[fid] = new Array(); arrInfBusiness[fid][0] = new Array(); arrInfBusiness[fid][1] = new Array(); }
		len = arrInfBusiness[fid][0].length;
		arrInfBusiness[fid][0][len] = arr[3*i+1]
		arrInfBusiness[fid][1][len] = arr[3*i+2]
	}
	MainWin.msgIFR.Hide();

	if (isEdit) try { MainWin.fxnewwin.winEdit.bodyframe.setFieldsData(); } catch(e){}
	else try { MainWin.bodyframe.setFieldsData(); } catch(e){}
}

var winEditDeal
function GetEditDealData(win, num, ttype)		{ 	winEditDeal=win; GetDataFromServer ('exe.aspx', "id=85&params="+num+"','"+ttype, true,'top.SetEditDealData("' ); }
function SetEditDealData(x)	{	try { winEditDeal.setDealData(x); } catch(e){} }

var winExtraInfo
function GetExtraInfo4WinOpt(win, num)	{ 	winExtraInfo=win; GetDataFromServer ('exe.aspx', 'id=86&params='+num, true,'top.SetExtraInfo4WinOpt("' ); }
function SetExtraInfo4WinOpt(x)	{	try { winExtraInfo.setDataWinOpt(x); } catch(e){} }

var winFName
function GetFullNameRepAcc(win)	{ 	winFName=win; GetDataFromServer ('exe.aspx', 'id=92', true,'top.SetFullNameRepAcc("' ); }
function SetFullNameRepAcc(x)	{	try { winFName.setFullName(x); } catch(e){} }

var winBanks4User
function GetBanks4User(win, acc)	{ 	winBanks4User=win; GetDataFromServer ('exe.aspx', 'id=95&params='+acc, true,'top.SetBanks4User("' ); }
function SetBanks4User(x)	{	try { winBanks4User.setBanks4User(x); } catch(e){} }

var strBGtemp='';
function getBrokerGroup(invCTA) {GetDataFromServer ('exe.aspx', 'id=104&params='+invCTA, true,'top.setBrokerGroup("' );}
function setBrokerGroup(x)
{
	if (ProfileArray[0]=='0') { strBGtemp=x; return;}
	strBGtemp = ''
	var arrBG = arrBrokerGroup;
	arrBG[0].length=0; arrBG[1].length=0; arrBG[2].length=0;
	//alert(ProfileArray)
	arrBG[0][0] = userID; arrBG[1][0] = ProfileArray[0]; arrBG[2][0] = 0;

	if (x=="''") x="";
	var arr = eval("new Array("+x+")");
	for (var i=0; i<arr.length; i++)
		arrBG[i%3][1+Math.floor(i/3)] = arr[i];
			
	buildBrokerGroupString();
	if (arrBG[0].length<2) alert('The broker has no group defined!');
	
	if (top.GLListType=='trader')
	{
		FRtrader.arrCanBeSeen = arrBG;
		FRtrader.ShowCanBeSeenList();
	}

	FRtrader.arrUserDetails[8] = arrBrokerGroup[1];
	FRtrader.arrUserDetails[9] = arrBG[0];

	if (top.GLFromwhere == "TOL")
	{
		if (userIsBroker)
		{
			brokerList = arrBrokerGroupString[0];
			brokerNameList = arrBrokerGroupString[1];
			top.MainWin.bodyframe.ChangeActiveClientTradeBlotter(top.FRtrader.theListBox.value,top.FRtrader.theListBox.options[top.FRtrader.theListBox.selectedIndex].text,brokerList,brokerNameList,ProfileArray[12],canUseB2B);
		}            
	}
}

function getAGClients() {GetDataFromServer ('exe.aspx', 'id=106', true,'top.setAGClients("' );}
function setAGClients(x)
{
	var arrAG = new Array(new Array(),new Array());
	arrAG[0][0] = userID; arrAG[1][0] = ProfileArray[0];

	if (x=="''") x="";
	var arr = eval("new Array("+x+")");
	for (var i=0; i<arr.length; i++)
		arrAG[i%2][1+Math.floor(i/2)] = arr[i];

	FRtrader.arrCanBeSeen = arrAG;
	FRtrader.ShowCanBeSeenList();
}


function getMainRate() {GetDataFromServer ('exe.aspx', 'id=108&params='+GLMainCurrency, true,'top.setMainRate("' );}
function setMainRate(x)
{
	GLMainRate = toFloat(x)
	AfterMainRateIsSet();
	var arrW = MainWin.arrWinMRM
	for (var i=0; i<arrW.length; i++)
	{
		try { arrW[i].frShowDet.GetDataDo(); }
		catch(e){}
	}
}

//============================================================================================//

function GetTOLArrayInfo()
{
	var res=GetDataFromServer ('exe.aspx', 'id=47')
 	eval(res);
 	top.FRterminal.document.applets[0].JapplySpread(res,'1');
 	GetInterestAndVol();
	GetCcyHolidays();
 	//GetDataFromServer ('exe.aspx','id=29',true,'top.SetValue("' );
 	//GetTradingSpreadData();
}

function GetMainSysParam()
{
	var t=GetDataFromServer ('exe.aspx', 'id=1',false);
	eval(t)
}

function GetDefaultClientPosition(TrasdeButtonsDefault)
{
var params='id=109'
if(TrasdeButtonsDefault!=undefined)params=params+'&TrasdeButtonsDefault='+TrasdeButtonsDefault
	var t=GetDataFromServer ('exe.aspx', params);
	return t;
}

function GetSelectedCurr2(SelectedCurr)
{
var params='id=110&SelectedCurr='+SelectedCurr
	var t=GetDataFromServer ('exe.aspx', params);
	return t;
}

function GetTradingSpreadData(withoutSpotwin)
{
	try{
		var res=GetDataFromServer ('exe.aspx', 'id=44')
 		eval(res);
	}catch(e){}
	
	var res2=GetDataFromServer ('exe.aspx', 'id=47')
 	eval(res2);
 	if(withoutSpotwin!=undefined && withoutSpotwin==1)
 	    top.FRterminal.document.applets[0].JapplySpread(res,'0');//without refresh spotcomposite
 	else
 	    {
 	    top.FRterminal.document.applets[0].JapplySpread(res,'1');
 	    top.FRterminal.document.applets[0].JApplySpread0();
 	    }
 	refreshJSwin();
}


function SetMessageText(flag, actionType,strActionName, myDealNum)
{
	actionType=actionType.toLowerCase();
	var actionTxt, resultTxt, typeTxt='';

	if (actionType.indexOf('insert')!=-1)
		actionTxt = 'Insert new';
	else if (actionType.indexOf('update')!=-1)
		actionTxt = 'Update';
	else if (actionType.indexOf('delete')!=-1)
		actionTxt = 'Delete deal';
	else if (actionType.indexOf('connect')!=-1)
		actionTxt = 'Connect deals';
	else
		actionTxt = '';
	if (actionType=='insertsimulation')
		strActionName+= '-simulation';
		
	//prompt("SetMessageText",actionType.toLowerCase()+"  strActionName="+strActionName)	
//------get for print
	if(actionType.toLowerCase()=="insertloan" || (actionType.toLowerCase()=="web_all"  && (strActionName.toLowerCase()=="swap" || strActionName.toLowerCase()=="strategy")))
	{
		var t= top.GetDataFromServer("ExoticExecute.aspx", "inputResult=&TranType=198&Fromwhere=PRM");
		//alert(t)
		eval(t);
	}

	switch (strActionName)
	{
		case 'FX':			typeTxt =' FX transaction'; break;
		case 'Swap':		typeTxt ='Insert new swap transaction'; break;
		case 'VanillaOption':	typeTxt =' vanilla option'; break;
		case 'Strategy':	typeTxt ='Insert new strategy trasaction'; break;
		case 'Seagull':		typeTxt ='Insert new strategy trasaction'; break;
		case 'Exotics':		typeTxt =' exotic option'; break;
		case 'Order':		typeTxt =' order'; break;
		case 'Future':		typeTxt =' future'; break;
		case 'Loan':			typeTxt =' loan/deposit'; break;
		case 'LoanFwd':	typeTxt =' forward loan'; break;
		case 'CurrAlert':	typeTxt =' alert'; break;
		case 'CurrAlertEdit':	typeTxt =' alert'; break;
		case 'CurrAlertDelete': typeTxt =' alert'; break;
		case 'Alert':			typeTxt =' alert'; break;
		case 'AlertEdit':	typeTxt =' alert'; break;
		case 'AlertDelete':	typeTxt =' alert'; break;
		case 'Rollover':		typeTxt ='Rollover deal'; break;
		case 'Exercise':		typeTxt ='Exercise option'; break;
		case 'ExerciseNDF':	typeTxt ='Exercise NDF'; break;
		case 'ReopenDeal':	typeTxt ='reopen deal'; break;
		case 'Cash':			typeTxt =' cash deposit'; break;
		case 'FX-simulation':	typeTxt =' FX-simulation'; strActionName='FX' ; break;
		case 'VanillaOption-simulation':	typeTxt =' vanilla option-simulation'; strActionName='VanillaOption' ; break;
		case 'Exotics-simulation':typeTxt =' exotic option-simulation'; strActionName='Exotics' ; break;
		case 'CashFlow':		typeTxt =' business'; break;
		case 'CloseFuture':		typeTxt =' close future'; break;
		case 'UpdatePassword':	typeTxt ='Update password'; break;
	}

	var isSuccess = false;
	if (flag=='1' || ((flag=='-2')&&(top.GLFromwhere!='TOL')) || flag=='2' || flag=='4')
	{
		try{ MainWin.flagPrint = true; }catch(e){}
		resultTxt =" - <span style='color:#0000DD'>succeeded</span>";
		isSuccess = true;
	}
	else
	{
		try{ MainWin.flagPrint = false; }catch(e){}
		resultTxt =" - <span style='color:#DD0000'>failed</span>";
	}

	var showDealNum = ( (actionType=='insertdeal' && isSuccess) || actionType=='updatedeal' || actionType=='deletedeal'  || strActionName=='Rollover' || strActionName.indexOf('Exercise')==0)
	var dealnumTxt = ''
	if(showDealNum)
	    dealnumTxt =(myDealNum==undefined)? ' ('+DealNum+')': ' ('+myDealNum+')'
	var strReturn = actionTxt + typeTxt + dealnumTxt + resultTxt;
	return strReturn;
}


function AdjustNum(num)
{
	if (num<10) num='0'+num
	return num
}


function SetTVMessage(actionType,strActionName,x)
{
    if(x.substring(0,20)=='try{top.NoSession()}')
    {
    eval(x.split(';')[0])
    return
    }
    
	if (top.GLFromwhere=='TOL')
		SetTVMessageTol(actionType,strActionName,x)
	else //PRM or MFM
	{
		var arrRes = x.split(';');
		var d = new Date();

		//get deal number
		//prompt("SetTVMessage   "+ actionType)		
		if(actionType.toLowerCase()=="insertdeal" || actionType.toLowerCase()=="strategy")
		{
			var t= top.GetDataFromServer("ExoticExecute.aspx", "inputResult=&TranType=198&Fromwhere=PRM");
			//alert(t)
			eval(t);

			if (MainWin.bodyframe.strActionName && MainWin.bodyframe.strActionName.toLowerCase()=="swap")
				MainWin.bodyframe.document.all.eDealNum2.value=top.DealNum-1;//changed from -2 to -1 Pini(5/12/04) changed from -1 to -2 Pini(20/02/005)
		}

		//-----------------------------------
		var theTime = '<b>' + AdjustNum(d.getHours()) +':'+ AdjustNum(d.getMinutes()) +':'+ AdjustNum(d.getSeconds()) + '</b> '
		var theMsg = SetMessageText(arrRes[0],actionType,strActionName)

		try {MainWin.fxnewwin.winEdit.close();} catch(e){}
		if (actionType=='connectdeal')
			try {MainWin.MenuImput.fnConnectDealWin();} catch(e){}
		else
		{
			if (actionType.toLowerCase().indexOf('simulation')==-1)
				try {MainWin.fxnewwin.SubmitForReport();} catch(e){}
		}

		if ((arrRes[0]=='1') || (arrRes[0]=='-2'))
		{
			FRTV.AddMessage(theTime + theMsg);
			GetNetworth();
		}
		else	
		{
			FRTV.AddMessage(theTime + theMsg);
			FRTV.AddMessage(x.substr(x.indexOf(';')+1, x.length));
			theMsg=theMsg.replace("</span>",'');
			theMsg=theMsg.split('<')[0] + theMsg.split('>')[1];
			alert(theMsg);
		}

		if (actionType=='connectdeal')
		{
			if (arrRes[0]=='1') try {MainWin.fxnewwin.alert('The deal connection succeeded');} catch(e){}
			try {MainWin.fxnewwin.GetSqlString();} catch(e){}
		}
		if (strActionName=='Rollover')
			try {MainWin.bodyframe.GetResult(x); } catch(e){}
	}
}


function SetTVMessageTol(actionType,strActionName,x)
{
    if(x.substring(0,20)=='try{top.NoSession()}')
    {
    eval(x.split(';')[0])
    return
    }
    
	var arrRes = x.split(';');
	var actionTypeLC = actionType.toLowerCase()

	if (actionTypeLC=="insertdeal")
		eval(top.GetDataFromServer("ExoticExecute.aspx", "inputResult=&TranType=198&Fromwhere=TOL"));

	var d = new Date();
	var theTime = '<b>' + AdjustNum(d.getHours()) +':'+ AdjustNum(d.getMinutes()) +':'+ AdjustNum(d.getSeconds()) + '</b> '

	var theMsg = SetMessageText(arrRes[0],actionType,strActionName,arrRes[2])
	
	if ((arrRes[0]=='2')||(arrRes[0]=='-1') ||(arrRes[0]=='4') ||(arrRes[0]=='0') || (arrRes[0]=='1') || (arrRes[0]=='-2')|| (arrRes[0]=='-3')|| (arrRes[0]=='-4')||(arrRes[0]=='-10')||(arrRes[0]=='-11'))
		top.FRTV.AddMessage(theTime + theMsg);
	else	
	{
		top.FRTV.AddMessage(theTime + theMsg);
		top.FRTV.AddMessage(x.substr(x.indexOf(';')+1, x.length));
		theMsg=theMsg.replace("</span>",'');
		theMsg=theMsg.split('<')[0] + theMsg.split('>')[1];
	}
	if (actionTypeLC=="insertdeal" && strActionName=="tol")
	{
		if (x!="")
		{
			top.ExposureProcessing = false;
			//top.MainWin.bodyframe.TbWin.JCallTBNewStatus(x);
		}
	}
	if (actionTypeLC=="insertdeal" && strActionName=="tolTr") 
	{
		top.FRDBG.document.body.innerHTML=theMsg
		MainWin.winTrChat.alert(top.FRDBG.document.body.innerText+'!')
	}
	if(strActionName=="tol"	&& actionType=="InsertOrder" && x.split(': ')[0]=="-1;ERR:60157,MSG")alert(x.split(': ')[1].replace(';',''))
}


function GetApiPwd()
{
	if (namesite.indexOf('/localhost')!=-1)
		return 'haime4/prm4/';
	else if (namesite.indexOf('mettle01') != -1)
		return 'mettle.forexmanage.com/' + ProfileArray[0] + '/';
	else if (namesite.indexOf('fix') != -1)
		return 'fix.forexmanage.com/' + ProfileArray[0] + '/';
	else
		return namesite.split('/')[2] + '/' + ProfileArray[0] + '/';
}


function buildBrokerGroupString()
{
	var str;
	var arr = arrBrokerGroup;
	for (var i=0; i<2; i++)
	{
		str='';
		for (var j=0; j<arr[i].length; j++)
			str+="'"+arr[i][j]+"',";
		str=(str.length>0) ? str.substr(0,str.length-1):"";
		arrBrokerGroupString[i]=str;
	}
}


function AdjustUsersList4Corp(x)
{
	arrUsers[0][0]='';
	var ix=arrUsers[0].find(x);
	arrUsers[0][0] = arrUsers[0][ix];
	arrUsers[1][0] = arrUsers[1][ix];

	for (var i=ix; i<arrUsers[0].length-1; i++)
	{
		arrUsers[0][i] = arrUsers[0][i+1];
		arrUsers[1][i] = arrUsers[1][i+1];
	}
	arrUsers[0].length--;
	arrUsers[1].length--;
}


function Tol_ChangeActiveClient(newUserID, cbs,bAsync)
{
	cbs='0';
	//var params = 'ClientTraderId=' + newUserID+'&LookForCBS='+cbs;
	var params = 'id=8&ClientTraderId=' + newUserID+'&LookForCBS='+cbs+'&UseTOLFunc=1';
	//var cc='top.FRtrader.setValue("'+cbs+'","'
	//var t = top.GetDataFromServer ('ChangeActiveClient.dll', params,true,cc);
	if (bAsync==undefined) bAsync=true;
	if (bAsync)	var t = top.GetDataFromServer ('exe.aspx', params,true,'top.SetValue("' );else 
	{
		var t = top.GetDataFromServer ('exe.aspx', params,false)
		eval(t);			
	}
}


function ClearReturnString(t)
{
	var ix=t.indexOf('<string');
	if (ix!=-1)
	{
		ix=t.indexOf('>');
		t=t.substr(ix+1, t.length);
		ix=t.indexOf('>');
		t=t.substr(ix+1, t.length);
		ix=t.indexOf('<');
		t=t.substr(0, ix)
	}
	return t;
}
