var GLCcyNames=new Array(), NewGLCcyNames=new Array(), GLCcyValues=new Array(), arrGLSterlings=new Array();
var ixtp=0, appTop=window;

if (typeof(appTop.GLApp)=='undefined')
{
	appTop = appTop.top;
	while (typeof(appTop.GLApp)=='undefined' && ixtp<10)
	{
		try {appTop = appTop.dialogArguments[0].top; } 
		catch(e)
		{
			if (typeof(appTop.dialogArguments)!='undefined') appTop = appTop.dialogArguments.top
			else if (typeof(appTop.opener)!='undefined') appTop = appTop.opener.top
		}
		ixtp++;
	}
	NewGLCcyNames = appTop.NewGLCcyNames
	GLCcyValues = appTop.GLCcyValues
	initCcyNamesArray()
}


function initCcyNamesArray()
{
	GLCcyNames = new Array()
	for (var i=0; i<GLCcyValues.length; i++)
		GLCcyNames[GLCcyValues[i]] = NewGLCcyNames[i]
	for (var i=0; i<GLCcyNames.length; i++)
		if (typeof(GLCcyNames[i])=='undefined')
			GLCcyNames[i] =''
}


var arrCcyMetals = new Array(8,9,36,51);

function FillCcyListBox(el,noFirstLine,beginFrom,arraySpecified)
{
	var beginFrom = (beginFrom)? (beginFrom-1):0;
	var i=0;
	if (noFirstLine)
		el.options.length = NewGLCcyNames.length-1-beginFrom;
	else
	{
		el.options.length = NewGLCcyNames.length-beginFrom;
		el.options[0].text='';
		el.options[0].value='0';
		i=1;
	}

    var k=0
	for (var j=1; j<(NewGLCcyNames.length-beginFrom); j++,i++,k++)
	{
	   while(arraySpecified!=undefined && arraySpecified.split(',')[k]!=GLCcyValues[j+beginFrom])
        {
            j++;
			if( j==(NewGLCcyNames.length-beginFrom))i=i-1
        }
		if( j<(NewGLCcyNames.length-beginFrom))
		{
		el.options[i].text = NewGLCcyNames[j+beginFrom]
		el.options[i].value = GLCcyValues[j+beginFrom];
		}
	}

	el.options.length = i;
	el.options[0].selected = true;
}

//transaction type :
var DealTypeField	= new Array(38,44,2,41,42,44,15); // field number from QueryExecute.asp
var DealTypeFieldName	= new Array('Purchase','OptStyle','Type','Kind','IsRebate','WhenRebate','His'); // 'Deal'+DealTypeFieldName[i]+'Name'/'StName'
//PURCHASE(38),WHEN_REBATE(44),TRANTYPE(3),KIND_BARRIER(41),REBATE(42),WHEN_REBATE(44),HIS(15)

// for dt & dte
var DealTypeName	= new Array('','Spot','Forward','Opt','Futures','Single Barrier Knock','Double Barrier Knock','KIKO/KOKI ','Window Up Barrier Knock','Window Down Barrier Knock','Window Double Barrier Knock','Digital ','Single Digital Knock','Double Digital Knock','Single Touch','Double Touch','One Touch With K Out','No Touch With K In','European Barrier Knock','Euro-American Barrier Knock','#OPT1#','Business');
var DealTypeNumber	= new Array( 0,1,2,3,5,11,13,15,16,17,18,20,21,23,31,33,35,36,40,41,48,52 ); // the first number of the type
var DealTypeFieldLocal	= new Array('0','0010001','0010001','1110001','0010001','1011111','1011111','1010001','1011001','1011001','1011001','1010001','1011111','1011111','1011001','1011001','1010001','1010001','1011111','1011111','1010111','0010000'); //fields from 'DealTypeField' that used for the type definition

var ContractDealName = new Array('Future','EFPS','Option')
var ContractDealNumber = new Array(61,62,63)

// fields for the each 'DealTypeFieldName' element
var DealPurchaseName	= new Array('Bought ','Sold '); //PURCHASE (38)
var DealKindName 	= new Array('OUT ','IN ');
var DealIsRebateName	= new Array('','w/'); // without Rebate, with Rebate
var DealWhenRebateName	= new Array('Instant Rebate ','Rebate '); // at hit, at expiry
var DealOptStyleName 	= new Array('Amr.','Eu.'); // European Style Vanilla, American Style
var DealHisName	= new Array('','/c'); 
var ReplaceWordIn	=new Array('TouchIN','TouchOUT');
var ReplaceWordOut	=new Array('Touch','NoTouch');
var FullName	= new Array('Forward','Bought ','Sold ','Opt','Futures','Digital ','Knock','Touch','Average ','OUT','IN','Instant Rebate ','Rebate ');
var ShtName	= new Array('Fwd','B','S','O','Ftr','Dgl','K','Tch','Avr','O','I','InstR','R');
var OrderTypes	= new Array('GTC','GTV','OCO')
var CashFlowType	= new Array('Payment','','Income')

//===============USRmonitor================================================
var USRmonitorName=new Array("Active Account","Active UserName","User Type","E-Mail","Session Start","IP Address","Current System");
var USRmonitorCall=new Array(0,1,2,3,4,5,6);
var USRmonitorFormat=new Array("s","s","s","s","s","s","s");
//======================================================================

function ArrayFind (match)
{
	match=''+match+''
	for (var i=0 ; ((this.length) > i ) ; i++)
		//if (this[i]==match) return i;
		if (this[i].toString().toUpperCase()==match.toUpperCase()) return i;
	
	// if found it
	// if not found...
	return -1;
}
Array.prototype.find=ArrayFind;

function ArrayFindIn (match,place)
{
	match=''+match+''
	for (var iAf=0;iAf<this.length;iAf++)
		if (this[iAf][place].toString().toUpperCase()==match.toUpperCase())
			return iAf; // if found it
	return -1; 	// if not found...
}
Array.prototype.findIn=ArrayFindIn;

function ArrayUnsplit (strConnect)
{
	var FulArr='';
	FulArr+=this[0]
	if (this.length >1)
	{
		for (var i=1; ((this.length)>i ); i++)
		FulArr+=strConnect+this[i]
	}
	return FulArr;
}
Array.prototype.Unsplit=ArrayUnsplit;


function SetDefaultBank(el, type)
{
	var valDef = (type==2) ? GLOptionsDeskMain:contraAccount
	for (var i=0; i<el.options.length; i++)
		if (valDef==ArrBankA[ ArrBank.find(el.options[i].value) ] )
			el.options[i].selected=true;
}


function GetCcyNum(x)
{
	return parseInt(GLCcyValues.find(x+''))
}

function GetCcySymbol(x)
{
	var ix = GetCcyNum(x);
	if (ix!=-1) return NewGLCcyNames[ix]
	else return ''
}


function isMetalCcy(x)
{ return (arrCcyMetals.find(x)>-1) }