<!--

// CONSTANTS
var separator = ","; // use comma as 000's separator
var decpoint = "."; // use period as decimal point
var percent = "%";
var currency = "$"; // use dollar sign for currency

function formatNumber(number, format, print) 
{ // use: formatNumber(number, "format")

	if (print) 
		document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

	if (number - 0 != number) 
		return null; // if number is NaN return null
	var useSeparator = format.indexOf(separator) != -1; // use separators in number
	var usePercent = format.indexOf(percent) != -1; // convert output to percentage
	if (usePercent) 
		number *= 100;
	var useCurrency = format.indexOf(currency) != -1; // use currency format
	format = strip(format, separator + percent + currency); // remove key characters
	number = "" + number; // convert number input to string

	// split number and format into LHS and RHS using decpoint as divider
	var dec = number.indexOf(decpoint) != -1;
	var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
	var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";
	dec = format.indexOf(decpoint) != -1;
	var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
	var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";
	//if (nrightEnd.length > 3)
	//	var srightEnd = (dec) ? format.substring(format.indexOf(".") + 2) : "";

	// adjust decimal places by cropping or adding zeros to LHS of number
	if (srightEnd.length < nrightEnd.length) 
	{
		var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
		nrightEnd = nrightEnd.substring(0, srightEnd.length);
		if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1); // round up
		if (srightEnd.length < nrightEnd.length) 
		{
			nrightEnd = nrightEnd.substring(1);
			nleftEnd = (nleftEnd - 0) + 1;
		}
	} 
	else 
	{
		for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) 
		{
			if (srightEnd.charAt(i) == "0") 
				nrightEnd += "0"; // append zero to RHS of number
			else break;
		}
	}
	// adjust leading zeros
	sleftEnd = strip(sleftEnd, "#"); // remove hashes from LHS of format
	while (sleftEnd.length > nleftEnd.length)
		nleftEnd = "0" + nleftEnd; // prepend zero to LHS of number
	if (useSeparator) 
		nleftEnd = separate(nleftEnd, separator); // add separator
	var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : ""); // combine parts
	return ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
}

function strip(input, chars) 
{ // strip all characters in 'chars' from input
	var output = ""; // initialise output string
	for (var i=0; i < input.length; i++)
		if (chars.indexOf(input.charAt(i)) == -1)
			output += input.charAt(i);
	return output;
}

function separate(input, separator) 
{ // format input using 'separator' to mark 000's
	var output = ""; // initialise output string
	for (var i=0; i < input.length; i++) 
	{
		if (i != 0 && (input.length - i) % 3 == 0) output += separator;
		output += input.charAt(i);
	}
	return output;
}

function LTrim(str) 
{
	var s = new String(str);
	while (s.charAt(0) == ' ')
		s = s.substring(1);
	return s;
}

function LTrimZero(str) 
{
	var s = new String(str);
	while (s.charAt(0) == '0')
		s = s.substring(1);
	return s;
}

function RTrim(str) 
{
	// We don't want to trip JUST spaces, but also tabs,
	// line feeds, etc.  Add anything else you want to
	// "trim" here in Whitespace
	var whitespace = new String(" ");
	var s = new String(str);
	if (whitespace.indexOf(s.charAt(s.length-1)) != -1) 
	{
		// We have a string with trailing blank(s)...
		var i = s.length - 1;       // Get length of string
		// Iterate from the far right of string until we
		// don't have any more whitespace...
		while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
			i--;

		// Get the substring from the front of the string to
		// where the last non-whitespace character is...
		s = s.substring(0, i+1);
	}
	return s;
}

function checkNaN(str)
{
	var bVal = false;
	if (isNaN(str) == false)
	{
		if (str.indexOf(".") == -1)
			bVal = true;
	}
	return bVal;
}

function isEmpty(str)	
{
	var b = false;
			
	strTemp = new String(str);	
	if (strTemp == null)
		b = true;
	else 
		if (strTemp == 'undefined' || strTemp=='null'|| strTemp.length == 0) 
			b = true;
	
	return b;
}

function ValidateCSWPrice(Price)
{
	if (Price == "-")
		Price = 0;
		
	return Price;
}

function mOvr(src, color)
{ 
  if (!src.contains(event.fromElement))
  { 
    src.style.cursor = 'hand'; 
    //src.bgColor = '#DEDEEF'
    src.bgColor = color
  } 
} 

function mOut(src, color)
{ 
  if (!src.contains(event.toElement))
  { 
    src.style.cursor = 'default'; 
    src.bgColor = color;
  } 
}

function OnMSBanner()
{
	window.open(URL_MSBANNER);
}

function Round(number,X) 
{
	// rounds number to X decimal places, defaults to 2
	X = (!X ? 2 : X);
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

function SetSelOption(objSel, Val)
{
	for (var i=0; i<objSel.length; i++)
	{
		if (objSel[i].value == Val)
		{
			objSel[i].selected = true;
			break;
		}
	}	
}

function OnReset(form)
{
	form.reset();
}

function ValidateData(Data, CheckStr)
{
	var bValid = true;
	var Temp = "";
	for (var i=0; i<Data.length; i++)
	{
		Temp = Data.substring(i, i+1);
		if (CheckStr.indexOf(Temp) == -1)
		{
			bValid = false;
			break;
		}
	}	
	return bValid;
}

function OnReload()
{
	window.location.reload();	
}

function SetTimer()
{
	self.setTimeout("OnReload()", 60000);
}

function ShowGainColor(Price, Type)
{
	var str = Price;
	if (Price < 0)
	{
		if (Type == GAINCOLOR_BOLD)
			str = "<font color=red><b>"+Price+"<\/b><\/font>";
		else
			str = "<font color=red>"+Price+"<\/font>";
			
		//str += "<img src=../images\/arrow_down.gif align=absmiddle>";
	}
	else if (Price > 0)
	{
		if (Type == GAINCOLOR_BOLD)
			str = "<b>"+Price+"<\/b>";
			
		//str += "<img src=../images\/arrow_up.gif align=absmiddle>";
	}
	//alert(str);
	return str;
}

function GenerateMarketInfo(StockArray, InfoType)
{
	var Title = "";
	if (InfoType == MARKETINFO_ACTIVE)
		Title = MARKETINFOMSG_ACTIVE;
	else if (InfoType == MARKETINFO_GAINER)
		Title = MARKETINFOMSG_GAINER;
	else
		Title = MARKETINFOMSG_LOSER;
		
	var StrTable = "<table width=\"225\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"clsExTitle\">";
	StrTable += "<tr align=\"center\"><td colspan=\"4\"><b>"+Title+"<\/b><\/td><\/tr>";
	StrTable += "<tr class=\"clsTitle\">";
	StrTable += "<td width=\"75\">Name<\/td>";
	StrTable += "<td width=\"50\" align=\"center\">Last<\/td>";
	StrTable += "<td width=\"50\" align=\"center\">Change<\/td>";
	StrTable += "<td width=\"50\" align=\"center\">Vol<\/td>";
	StrTable += "<\/tr>";	
	for (var x=0; x<StockArray.length; x++)
	{
		if (x % 2 == 0)
			StrTable += "<tr bgcolor=\"#FFFFFF\">";
		else
			StrTable += "<tr>";
		StrTable += "<td width=\"75\">"+RTrim(StockArray[x][MKTINFOARR_STK])+"<\/td>";
		StrTable += "<td width=\"50\" align=\"right\">"+StockArray[x][MKTINFOARR_LD]+"<\/td>";
		if (InfoType == MARKETINFO_ACTIVE)				
			StrTable += "<td width=\"50\" align=\"right\">"+ShowGainColor(StockArray[x][MKTINFOARR_CHG], "")+"<\/td>";
		else
			StrTable += "<td width=\"50\" align=\"right\">"+StockArray[x][MKTINFOARR_CHG]+"<\/td>";
		StrTable += "<td width=\"50\" align=\"right\">"+StockArray[x][MKTINFOARR_VOL]+"<\/td>";
		StrTable += "<\/tr>";
	}
	StrTable += "<\/table>";
	return StrTable;
}

function CountData(Data, Type)
{
	var alphaCount = 0;
	var digitCount = 0;
	for (var i = 0; i < Data.length ; i++)
	{
		if (isNaN(Data.slice(i,i+1)))
		{ 
			alphaCount++; 
		}
		else
		{ 
			digitCount++; 
		}
	}
	if (Type == 0)
		return alphaCount;
	else
		return digitCount;
}

function CheckAll(cbAllBox, chkbox)
{

	var ObjChkBox = document.all[chkbox];
	if (!isEmpty(ObjChkBox))
	{
		if (ObjChkBox.length > 0)
		{
			for (var x=0; x<ObjChkBox.length; x++)
			{
				if (ObjChkBox[x].disabled == false)
					ObjChkBox[x].checked = cbAllBox.checked;
			}
		}
		else
		{
			if (ObjChkBox.disabled == false)
				ObjChkBox.checked = cbAllBox.checked;
		}
	}
}

function ValidateCheck(chkbox)
{
	var bCheck = false;
  
	var ObjChkBox = document.all[chkbox];
	if (!isEmpty(ObjChkBox))
	{
		if (ObjChkBox.length > 0)
		{  
			for (var x=0; x<ObjChkBox.length; x++)
			{
				if (ObjChkBox[x].checked)
				{
					bCheck = true;
					break;
				}
			}
		}
		else
		{
			if (ObjChkBox.checked)
				bCheck = true;
		}
	}
	return bCheck;
}

function FormatPrice(number)
{
	if (isEmpty(number))
		number = 0;
	number = new String(number);
	if (number != "-")
	{
		var Pos = number.indexOf("-");
		if (Pos != -1)
		{
			var newnum = number.substr(1, String(number).length-1);
			newnum = formatNumber(newnum,",###.0000");		
			number = "-" + newnum;
		}
		else
			number = formatNumber(number,",###.0000");		
	}		
	return number;
}

function FormatValue(number)
{
	if (isEmpty(number))
		number = 0;
	number = new String(number);
	if (number != "-")
	{
		var Pos = number.indexOf("-");
		if (Pos != -1)
		{
			var newnum = number.substr(1, String(number).length-1);
			newnum = formatNumber(newnum,",###.00");		
			number = "-" + newnum;
		}
		else
			number = formatNumber(number,",###.00");		
	}		
	return number;
}

function FormatQty(number)
{
	if (isEmpty(number))
		number = 0;
	number = new String(number);
	if (number != "-")
	{
		var Pos = number.indexOf("-");
		if (Pos != -1)
		{
			var newnum = number.substr(1, String(number).length-1);
			newnum = formatNumber(newnum,"###,###");		
			number = "-" + newnum;
		}
		else
			number = formatNumber(number,"###,###");		
	}		
	return number;
}

function FormatCurrency(number)
{
	number = new String(number);
	if (number != "-")
	{
		var Pos = number.indexOf("-");
		if (Pos != -1)
		{
			var newnum = number.substr(1, String(number).length-1);
			newnum = formatNumber(Round(newnum,2),",###.00");		
			number = "-" + newnum;
		}
		else
			number = formatNumber(Round(number,2),",###.00");		
	}		
	return number;
}

function formatAmt(number, dp) 
{
  if (number >= 0)		
  	return formatQty(Math.floor(number-0) + '') + formatdec(number - 0, dp);
  else	
  {	
	number = Math.abs(number);
	return "-"+formatQty(Math.floor(number-0) + '') + formatdec(number - 0, dp);
  }    	
}

function formatQty(number) 
{
  if (number.length <= 3)
      return (number == '' ? '0' : number);
  else 
  {
      var mod = number.length%3;
      var output = (mod == 0 ? '' : (number.substring(0,mod)));
      for (i=0 ; i < Math.floor(number.length/3) ; i++) 
      {
          if ((mod ==0) && (i ==0))
              output+= number.substring(mod+3*i,mod+3*i+3);
          else
              output+= ',' + number.substring(mod+3*i,mod+3*i+3);
      }
      return (output);
  }
}

function formatdec(amount, dp) 
{
  var output;
  var j= 0;
  var maxlen = 0;
  var amtlen = 0;
  maxlen = String(Math.pow(10,dp)).length -1;
  amount = Math.round( ( (amount) - Math.floor(amount) ) * Math.pow(10,dp));
  amtlen = String(amount).length; 
  output = '.'+formatStrZero(maxlen-amtlen)+amount;		
  return(output);
  //return (amount < 10 ? '.0' + amount : '.' + amount);
}

function formatStrZero(num)
{
  var strZero = "";
  for(var i=0; i<num; i++)		
  {
    strZero += "0";     	
  }
  return strZero;
}

function WinPopup(url, name, width, height)
{
	var w = width, h = height, l = (screen.Width-w)/2, t = (screen.Height-h)/2;
	var setting = "top="+t+",left="+l+",width="+w+",height="+h+",toolbar=0,location=0,menubar=0,status=1,location=0,scrollbars=1,resizable=1";
	var NewWin = window.open(url,name,setting);
	
	NewWin.focus();
}

function ConvertDate(date)
{
	var newdate = "";
	if (!isEmpty(date))
	{
		var newdateArr = String(date).split("/");
		newdate = newdateArr[1]+"/"+newdateArr[0]+"/"+newdateArr[2];
	}
	return newdate;
}

function CheckPriceBid(Price)
{
	var nPrice,PriceBid,NearestPrice;
	nPrice = Round(Price*1000, 3);
	if (nPrice <= 0 || nPrice >= 1000000)
	{
		alert("This is an invalid price. Please try again.");  
		return 0;
	}
	else
	{
		if (nPrice >= 100000) 
			PriceBid = 500; //0.5
		else if (nPrice >= 25000)
			PriceBid = 250; //0.25
		else if (nPrice >= 10000)
			PriceBid = 100; //0.1
		else if (nPrice >= 5000)
			PriceBid = 50; //0.05
		else if (nPrice >= 3000)
			PriceBid = 20; //0.02
		else if (nPrice >= 1000)
			PriceBid = 10; //0.01
		else 
			PriceBid = 5; //0.005

		NearestPrice = parseInt(nPrice / PriceBid);
		NearestPrice = parseInt(NearestPrice * PriceBid);
		//alert("nPrice="+nPrice+" NearestPrice="+NearestPrice);
		if (nPrice != NearestPrice)
		{
			nPrice = NearestPrice;
			var sTemp = (parseFloat(nPrice)) / 1000.0;
			alert("Invalid price bid, nearest price used.");    		  
			return Round(sTemp,3);
		}
		return Round((parseFloat(nPrice) / 1000.0),3);  
	}
}

function PriceChange(LastDone, RefPrice)
{
	var strChange = "";
	if (LastDone == "-" || RefPrice == "-")
		strChange = "-";
	else
	{
		var change = Round((LastDone - RefPrice), 3);
		change = formatNumber(change,",###.000");
		//var change = ValidatePFPrice((LastDone - RefPrice));
		if (change > 0)
		{
			strChange = change+"<img SRC=\"../images/arrow_up.gif\" border=\"0\" align=\"absmiddle\">";
		}
		else if (change < 0)
		{
			strChange = "<font color=\"red\">"+change+"<img SRC=\"../images/arrow_down.gif\" border=\"0\" align=\"absmiddle\"><\/font>";
		}
		else
			strChange = formatNumber(0,",###.000")+"<img SRC=\"../images/arrow_neutral.gif\" border=\"0\" align=\"absmiddle\">";
	}
	return strChange;
}

function CalculateTransactionCost(StockName, Quantity, Price, StampDutyMin, StampDutyMax, StampDutyVal, ClearingFee, MaxClearingFee, MinBrokNormal, MinBrokOther, BrokerageRate)
{
	var TransactionCost = 0;

	if (isEmpty(StampDutyMin) || isEmpty(BrokerageRate))
	{
		StampDutyMin = TCOST_STAMPDUTY;
		StampDutyMax = TCOST_STAMPDUTYMAX;
		StampDutyVal = TCOST_STAMPDUTYVAL;
		ClearingFee = TCOST_CLEARINGFEE;
		MaxClearingFee = TCOST_CLEARINGFEEMAX;
		MinBrokNormal = TCOST_MINBROKNORMAL;
		MinBrokOther = TCOST_MINBROKOTHER;
		BrokerageRate = TCOST_BROKERAGERATE;
	}

	var StockValue = CalculateStockValue(Quantity, Price);
	TransactionCost += CalculateBrokerage(StockName, BrokerageRate, StockValue, MinBrokNormal, MinBrokOther) * 1;
	TransactionCost += CalculateStampDuty(StockValue, StampDutyMin, StampDutyMax, StampDutyVal) * 1;
	TransactionCost += CalculateClearingFee(StockValue, ClearingFee, MaxClearingFee) * 1;
	return TransactionCost;
}

function CalculateStockValue(Quantity, Price)
{
	return Quantity * Price;
}

function CalculateBrokerage(StockName, BrokerageRate, StockValue, MinBrokNormal, MinBrokOther)
{
	var Brokerage = (BrokerageRate * StockValue) / 100;
	var dBrokerage = Brokerage * 100;
	var iBrokerage = parseInt(dBrokerage);
	if ((dBrokerage - iBrokerage) >= 0.5)
		iBrokerage = iBrokerage + 1;

	Brokerage = iBrokerage / 100;
	var MinBrokerage = 0;
	if (StockName.indexOf(STOCKNAMEPATTERNBOND) != -1)
		MinBrokerage = 	MinBrokOther;
	else
		MinBrokerage = MinBrokNormal;
	
	if (Brokerage < MinBrokerage)
		Brokerage = MinBrokerage;

	return Brokerage;
}

function CalculateStampDuty(StockValue, StampDutyMin, StampDutyMax, StampDutyVal)
{
	var StampDuty = 0;
	if (StampDutyMin > 0 && StampDutyMax > 0)
	{
		var dMultiplier = StockValue / StampDutyMax;
		var iMultiplier = parseInt(dMultiplier);
		if (dMultiplier - iMultiplier > 0)
			iMultiplier = iMultiplier + 1;
			
		StampDuty = StampDutyMin * iMultiplier;
	}
	if (StampDuty > StampDutyVal)
		StampDuty = StampDutyVal;

	return StampDuty;
}

function CalculateClearingFee(StockValue, ClearingFee, MaxClearingFee)
{
	var ClearingFeeInDollar = (StockValue * ClearingFee) / 100;
	//round up
	ClearingFeeInDollar = ClearingFeeInDollar * 100;

	if (Round(ClearingFeeInDollar,2) != Round(parseInt(ClearingFeeInDollar),2))
		ClearingFeeInDollar = parseInt(ClearingFeeInDollar) + 1;
    
	ClearingFeeInDollar = ClearingFeeInDollar / 100;
  	
	if (ClearingFeeInDollar > MaxClearingFee)
		ClearingFeeInDollar = MaxClearingFee;

	return ClearingFeeInDollar;
}

function dateDiff(SelDate, CurDate, Period)
{
	var bValid = false;
	date1 = new Date(SelDate);
	date2 = new Date();
	if (CurDate != "")
		date2 = new Date(CurDate);
	diff  = new Date();

	date1temp = new Date(SelDate);
	date1.setDate(date1temp.getDate());
	date1.setMonth(date1temp.getMonth());
	date1.setYear(date1temp.getYear());

	date2temp = new Date();
	if (CurDate != "")
		date2temp = new Date(CurDate);
	date2.setDate(date2temp.getDate());
	date2.setMonth(date2temp.getMonth());
	date2.setYear(date2temp.getYear());
	
	diff.setYear((date2.getYear() - date1.getYear()));
	YearDiff = diff.getYear();
	
	MonthDiff = date1.getMonth();
	CurMonthDiff = date2.getMonth();
	DayDiff = date1.getDate();
	CurDayDiff = date2.getDate();
	
	if(YearDiff==Period)
	{
		if(MonthDiff>=CurMonthDiff)
		{
			if(DayDiff>CurDayDiff)
			{
				bValid = true;
			}
		}
	}
	else if(YearDiff<=Period)
	{
		bValid = true;
	}
	return bValid;
}

function FormatPrice1(number, dec) 
{
	return FormatQty(Math.floor(number-0) + '') + FormatCent(number - 0, dec);
}

function FormatCent(amount, dec) 
{
	var Mtp = 1000;	// default multiplier to 3 decimal point
	var length = 3; // default length if dec is not provided
	var output;
	
	if (!isEmpty(dec)) {
		var sMtp = "1";
		for (var i=0; i<dec; i++) {
			sMtp = sMtp + "0";
		}
		Mtp = parseInt(sMtp);
		length = dec;
	}
	
	amount = Math.round( ( (amount) - Math.floor(amount) ) * Mtp);
	output = '.' + Padout(amount, length);

	return(output);
}

function Padout(number, length)
{
    var str = '' + number;
    while (str.length < length)
        str = '0' + str;
    return str;
}

function ValidateDate(date, oldfmt)
{
  var dtdate = "";
  var bValid = false;
  
  if (!isEmpty(date))
  {
    bValid = true;
    if (date.indexOf("/") == -1)
    {
      if (date.length == 8)
      {
        //Convert year xxxx to xx
        if (oldfmt == DMY || oldfmt == MDY)
          dtdate = String(date).substring(0,2) + "/" + String(date).substring(4,2) + "/" + String(date).substring(8,6);  
        else if (oldfmt == YMD || oldfmt == YDM)
          dtdate = String(date).substring(4,2) + "/" + String(date).substring(6,4) + "/" + String(date).substring(8,6);  
      }
      else if (date.length == 6)
        dtdate = String(date).substring(0,2) + "/" + String(date).substring(4,2) + "/" + String(date).substring(6,4);
    }
    
    var dateArr = String(dtdate).split("/");
    //change any oldfmt to DMY standard format     
    var day = "";
    var month = "";
    var year = "";
    switch (oldfmt)
    {    
      case MDY:
      day = dateArr[1];
      month = dateArr[0];
      year = dateArr[2];    
      bValid = ValidateDateDetail(day, month, year);
      break;
      
      case YMD:
      day = dateArr[2];
      month = dateArr[1];
      year = dateArr[0];     
      bValid = ValidateDateDetail(day, month, year);
      break;
      
      case YDM:
      day = dateArr[1];
      month = dateArr[2];
      year = dateArr[0];     
      bValid = ValidateDateDetail(day, month, year);
      break;
      
      default:
      day = dateArr[0];
      month = dateArr[1];
      year = dateArr[2];     
      bValid = ValidateDateDetail(day, month, year);
      break;    
    } 
    
    dtdate = day + month + year;
  }
  
  if (bValid)
  {   
    var reg1str = "(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[012])([0-9]{2})";
	  var reg1 = new RegExp(reg1str);
    bValid = reg1.test(dtdate)? true: false;	
	}	
	
	return bValid;	
}

function ValidateDateDetail(day, month, year)
{
  var bValid = true;
  
  if (day == "31" && (month == 4 || month == 6 || month == 9 || month == 11))
    bValid = false;
  else if (day >= 30 && month == 2)
    bValid = false;
  else if (month == 2 && day == 29 && !(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)))   
    bValid = false;
    
  return bValid;
}

function CheckAll(cbAllBox, chkbox)
{

  var ObjChkBox = document.all[chkbox];
  if (!isEmpty(ObjChkBox))
  {
		if (ObjChkBox.length > 0)
		{
			for (var x=0; x<ObjChkBox.length; x++)
			{
				if (ObjChkBox[x].disabled == false)
					ObjChkBox[x].checked = cbAllBox.checked;
			}
		}
		else
		{
			if (ObjChkBox.disabled == false)
				ObjChkBox.checked = cbAllBox.checked;
		}
	}
}

// CheckOne
function CheckOne(objChkOne, objChkAll)
{
	var objChkOne = document.all[objChkOne.name];
	var objChkAll = document.all[objChkAll];

	if (isEmpty(objChkOne.length))
		objChkAll.checked = objChkOne.checked;
	else if (!isEmpty(objChkOne))
	{
		var bChecked = true;
		for (var i = 0; i < objChkOne.length; i++)
		{ 
		  if(objChkOne[i].disabled == false)
			  bChecked &= objChkOne[i].checked;
		}
		objChkAll.checked = bChecked;
	}
}

function SaveOldValue(txtPymtTrustAmt, hPymtTrustAmtId)
{
  var ObjtxtPymtTA = document.getElementById(txtPymtTrustAmt.id);
  var ObjhPymtTA = document.getElementById(hPymtTrustAmtId);
  
  ObjhPymtTA.value = ObjtxtPymtTA.value;
}

function RoundNum(dNum)
{
  return Math.round(dNum * 100) / 100;
}

function ValidateTrustDepositVal(obj)
{

  var objNum = document.getElementById(obj.id);
  var obhTrustDeposit = document.getElementById('hTrustDeposit');
  var ObjTxtPBankTtl = document.getElementById('txtPBankTtl');
  var ObjTxtGrandTtl = document.getElementById('txtGrandTtl');

  var dNum = parseFloat(String(objNum.value).replace(/,/g, ''));
  var dOldTrustDeposit = parseFloat(String(obhTrustDeposit.value).replace(/,/g, ''));
  var dTxtPBankTtl = parseFloat(String(ObjTxtPBankTtl.value).replace(/,/g, ''));
  var dTxtGrandTtl = parseFloat(String(ObjTxtGrandTtl.value).replace(/,/g, ''));

  if (isNaN(dNum))
    dNum = 0.00;

  objNum.value = FormatCurrency(RoundNum(dNum));

  if (dNum < dOldTrustDeposit)
  {
    //dNum = RoundNum(dNum) * -1;
  }

  if (dNum < 0)
  {
    dNum = 0.00;
    objNum.value = FormatCurrency(0.00);
  }
  dTxtPBankTtl = RoundNum(dTxtPBankTtl) - RoundNum(dOldTrustDeposit) + RoundNum(dNum);
  dTxtGrandTtl = RoundNum(dTxtGrandTtl) - RoundNum(dOldTrustDeposit) + RoundNum(dNum);
  
  obhTrustDeposit.value = RoundNum(Math.abs(dNum));

  ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dTxtPBankTtl));
  ObjTxtGrandTtl.value = FormatCurrency(RoundNum(dTxtGrandTtl));
  
}

function CalPymtBank(txtPymtTrustAmt, dPymtTotal, txtPymtBankAmtId, hPymtTrustAmtId, hContBankVal)
{
  var ObjPymtTA = document.getElementById(txtPymtTrustAmt.id);
  var ObjPymtBA = document.getElementById(txtPymtBankAmtId);
  var ObjTxtPTrustTtl = document.getElementById('txtPTrustTtl');
  var ObjTxtPBankTtl = document.getElementById('txtPBankTtl');
  var ObjTxtGrandTtl = document.getElementById('txtGrandTtl');
  var ObjhPTrustAmt = document.getElementById(hPymtTrustAmtId);

  var ObjhContBankVal = document.getElementById(hContBankVal);


  var dOldPymtTA = RoundNum(parseFloat(String(ObjhPTrustAmt.value).replace(/,/g, '')));

  var dPymtBTtl = RoundNum(parseFloat(String(ObjTxtPBankTtl.value).replace(/,/g, '')));
  var dPymtGrandTtl = RoundNum(parseFloat(String(ObjTxtGrandTtl.value).replace(/,/g, '')));
  var dPymtTATtl = RoundNum(parseFloat(String(ObjTxtPTrustTtl.value).replace(/,/g, '')));
  var dPymtTA = RoundNum(parseFloat(String(ObjPymtTA.value).replace(/,/g, '')));

  if (isNaN(dPymtTA))
    dPymtTA = 0.00;
  
  if (dPymtTA > dPymtTotal)
  {
    dPymtTA = dPymtTotal;
    ObjPymtTA.value = FormatCurrency(RoundNum(dPymtTA));
  }
  else if (dPymtTA < 0.00)
  {
    dPymtTA = 0.00;
    ObjPymtTA.value = FormatCurrency(RoundNum(dPymtTA));
  }

  dPymtTA = RoundNum(dPymtTA);

  if (!isEmpty(ObjPymtBA))
  {
    if (!isEmpty(ObjPymtTA))
    {
      ObjPymtBA.value = FormatCurrency(RoundNum(dPymtTotal) - RoundNum(dPymtTA));


      dPymtTATtl = RoundNum(dPymtTATtl) - RoundNum(dOldPymtTA) + RoundNum(dPymtTA);
      dPymtTATtl = RoundNum(dPymtTATtl);
      ObjTxtPTrustTtl.value = FormatCurrency(RoundNum(dPymtTATtl));

      dPymtBTtl = RoundNum(dPymtGrandTtl) - RoundNum(dPymtTATtl);
      dPymtBTtl = RoundNum(dPymtBTtl);
      ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dPymtBTtl));
    }
    else
      ObjPymtBA.value = FormatCurrency(0.00);
  }
  else
    ObjPymtBA.value = FormatCurrency(0.00);

  ObjPymtTA.value = FormatCurrency(RoundNum(dPymtTA));
  ObjhContBankVal.value = ObjPymtTA.value;
}

// AccCheckAll
function AccCheckAll(cbAllBox, chkbox, sContType, txtPymtBankAmt, /*dTotal,*/ objCheckedCont, objContNo)
{

  var ObjTxtPTrust = document.all['txtPTrust' + sContType];
  var ObjChkBox = document.all[chkbox];
  var ObjhTotal = document.all['hTotal' + sContType];
  var ObjTxtPBankTtl = document.getElementById('txtPBankTtl');
  var ObjTxtPTrustTtl = document.getElementById('txtPTrustTtl');
  var ObjTxtGrandTtl = document.getElementById('txtGrandTtl');
  var dPBankValTtl = parseFloat(String(ObjTxtPBankTtl.value).replace(/,/g, ''));
  var dGrandTtl = parseFloat(String(ObjTxtGrandTtl.value).replace(/,/g, ''));
  var dPymtTATtl = parseFloat(String(ObjTxtPTrustTtl.value).replace(/,/g, ''));

  var ObjPymtBA = document.all[txtPymtBankAmt];
  

  var objCheckedCont = document.all[objCheckedCont];
  var objContNo = document.all[objContNo];

  if (!isEmpty(ObjChkBox))
  {
    if (ObjChkBox.length > 0)
    {
      for (var x=0; x<ObjChkBox.length; x++)
      {
      	if (ObjChkBox[x].disabled == false)
        {

	  if (cbAllBox.checked == true)
	  {
	    if (ObjChkBox[x].checked != cbAllBox.checked)
	    {
	      ObjChkBox[x].checked = cbAllBox.checked;
	      ObjTxtPTrust[x].disabled = false;
	      ObjTxtPTrust[x].value = FormatCurrency(0);
	      ObjPymtBA[x].value = FormatCurrency(RoundNum(parseFloat(String(ObjhTotal[x].value).replace(/,/g, ''))));

	      dPBankValTtl = RoundNum(dPBankValTtl) + RoundNum(parseFloat(String(ObjPymtBA[x].value).replace(/,/g, '')));
              ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dPBankValTtl));
	      dGrandTtl = RoundNum(dGrandTtl) + RoundNum(parseFloat(String(ObjhTotal[x].value).replace(/,/g, '')));
	      ObjTxtGrandTtl.value = FormatCurrency(RoundNum(dGrandTtl));

              if (isEmpty(String(objCheckedCont.value).match(objContNo[x].value)))
              {
                if (objCheckedCont.value != "")
                  objCheckedCont.value += ",";
            
      	          objCheckedCont.value = objCheckedCont.value + objContNo[x].value;

              }
            }
	  }
	  else
	  {
	    if (ObjChkBox[x].checked != cbAllBox.checked)
	    {
	      //var dhTtlTemp = RoundNum(parseInt(parseFloat(String(ObjhTotal[x].value).replace(/,/g, '')) * 100) / 100);
	      var dhTtlTemp = RoundNum(parseFloat(String(ObjhTotal[x].value).replace(/,/g, '')));
	      var dPymtBATemp = RoundNum(parseFloat(String(ObjPymtBA[x].value).replace(/,/g, '')));
	      var dPTrustTtlTemp = RoundNum(parseFloat(String(ObjTxtPTrust[x].value).replace(/,/g, '')));
	      ObjChkBox[x].checked = cbAllBox.checked;

	      //dPBankVal = parseInt(dPBankVal * 100) / 100 - dPymtBATemp;
	      //ObjTxtPBankTtl.value = FormatCurrency(dPBankValTtl);

	      dGrandTtl = RoundNum(dGrandTtl) - RoundNum(dhTtlTemp);

	      ObjTxtGrandTtl.value = FormatCurrency(RoundNum(dGrandTtl));
	      dPymtTATtl = RoundNum(dPymtTATtl) - RoundNum(dPTrustTtlTemp);
              dPymtTATtl = RoundNum(dPymtTATtl);
	      ObjTxtPTrustTtl.value = FormatCurrency(RoundNum(dPymtTATtl));

	      dPBankValTtl = RoundNum(dGrandTtl) - RoundNum(dPymtTATtl);
	      dPBankValTtl = RoundNum(dPBankValTtl);
	      ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dPBankValTtl));

	      ObjTxtPTrust[x].disabled = true;
	      ObjTxtPTrust[x].value = "";
	      ObjPymtBA[x].value = "";

              if (objCheckedCont.value != "")
              {
                if (!isEmpty(String(objCheckedCont.value).match(objContNo[x].value)))
                {
                  objCheckedCont.value = String(objCheckedCont.value).replace(objContNo[x].value, "");
          
                  var iLen = String(objCheckedCont.value).length;
                  if (!isEmpty(String(objCheckedCont.value).match(",,")))
                    objCheckedCont.value = String(objCheckedCont.value).replace(",,", ",");
                  else if (String(objCheckedCont.value).charAt(iLen - 1) == ",")
                    objCheckedCont.value = String(objCheckedCont.value).substring(0, iLen - 1);
                  else if (String(objCheckedCont.value).charAt(0) == ",")
                    objCheckedCont.value = String(objCheckedCont.value).substring(1, iLen);
                }
              }
            }
	  }
        }
      }
    }
    else
    {
      if (ObjChkBox.disabled == false)
      {
        ObjChkBox.checked = cbAllBox.checked;
        if (cbAllBox.checked == true)
        { 
	  ObjTxtPTrust.disabled = false;
	  ObjTxtPTrust.value = FormatCurrency(0);
	  ObjPymtBA.value = FormatCurrency(RoundNum(parseFloat(String(ObjhTotal.value).replace(/,/g, ''))));

	  dPBankValTtl = RoundNum(dPBankValTtl) + RoundNum(parseFloat(String(ObjPymtBA.value).replace(/,/g, '')));
          ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dPBankValTtl));
	  dGrandTtl = RoundNum(dGrandTtl) + RoundNum(parseFloat(String(ObjhTotal.value).replace(/,/g, '')));
          ObjTxtGrandTtl.value = FormatCurrency(RoundNum(dGrandTtl));

          if (isEmpty(String(objCheckedCont.value).match(objContNo.value)))
          {
            if (objCheckedCont.value != "")
              objCheckedCont.value += ",";

      	    objCheckedCont.value = objCheckedCont.value + objContNo.value;
          }

        }
        else
        {
          var dhTtlTemp = RoundNum(parseFloat(String(ObjhTotal.value).replace(/,/g, '')));
	  var dPymtBATemp = RoundNum(parseFloat(String(ObjPymtBA.value).replace(/,/g, '')));
	  var dPTrustTtlTemp = RoundNum(parseFloat(String(ObjTxtPTrust.value).replace(/,/g, '')));

	  //dPBankValTtl = dPBankVal * 100 / 100 - dPymtBATemp;
	  //ObjTxtPBankTtl.value = FormatCurrency(dPBankValTtl);
	  dGrandTtl = RoundNum(dGrandTtl) - RoundNum(dhTtlTemp);
	  ObjTxtGrandTtl.value = FormatCurrency(dGrandTtl);
	  dPymtTATtl = RoundNum(dPymtTATtl) - RoundNum(dPTrustTtlTemp);
	  dPymtTATtl = RoundNum(dPymtTATtl);
	  ObjTxtPTrustTtl.value = FormatCurrency(RoundNum(dPymtTATtl));

	  dPBankValTtl = RoundNum(dGrandTtl) - RoundNum(dPymtTATtl);
          dPBankValTtl = RoundNum(dPBankValTtl);
	  ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dPBankValTtl));

	  ObjTxtPTrust.disabled = true;
	  ObjTxtPTrust.value = "";
	  ObjPymtBA.value = "";

          if (objCheckedCont.value != "")
          {
            if (!isEmpty(String(objCheckedCont.value).match(objContNo.value)))
            {
              objCheckedCont.value = String(objCheckedCont.value).replace(objContNo.value, "");
          
              var iLen = String(objCheckedCont.value).length;
              if (!isEmpty(String(objCheckedCont.value).match(",,")))
                objCheckedCont.value = String(objCheckedCont.value).replace(",,", ",");
              else if (String(objCheckedCont.value).charAt(iLen - 1) == ",")
                objCheckedCont.value = String(objCheckedCont.value).substring(0, iLen - 1);
              else if (String(objCheckedCont.value).charAt(0) == ",")
                objCheckedCont.value = String(objCheckedCont.value).substring(1, iLen);
            }
          }
        }
      }
    }
  }

}

// AccCheckOne
function AccEnabledTxtBox(txtPymtTrustAmtId, objChkOne, txtPymtBankAmtId, hTotalId, objCheckedCont, objContNo)
{
  var objChkOne = document.getElementById(objChkOne.id);
  var objTxtBox = document.getElementById(txtPymtTrustAmtId);
  var ObjhTotal = document.getElementById(hTotalId);
  var ObjTxtPBankTtl = document.getElementById('txtPBankTtl');
  var ObjTxtPTrustTtl = document.getElementById('txtPTrustTtl');
  var ObjTxtGrandTtl = document.getElementById('txtGrandTtl');
  var dPBankVal = parseFloat(String(ObjTxtPBankTtl.value).replace(/,/g, ''));
  var dGrandTtl = parseFloat(String(ObjTxtGrandTtl.value).replace(/,/g, ''));
  var dPymtTATtl = parseFloat(String(ObjTxtPTrustTtl.value).replace(/,/g, ''));

  var objCheckedCont = document.all[objCheckedCont];
  var objContNo = document.getElementById(objContNo);

  var ObjPymtBA = document.getElementById(txtPymtBankAmtId);

  if (objChkOne.checked)
  {
    objTxtBox.disabled = false;
    objTxtBox.value = FormatCurrency(0.00);
    ObjPymtBA.value = FormatCurrency(parseFloat(String(ObjhTotal.value).replace(/,/g, '')));

    dPBankVal = RoundNum(dPBankVal) + parseFloat(String(ObjPymtBA.value).replace(/,/g, ''));
    ObjTxtPBankTtl.value = FormatCurrency(dPBankVal);
    dGrandTtl = RoundNum(dGrandTtl) + parseFloat(String(ObjhTotal.value).replace(/,/g, ''));
    ObjTxtGrandTtl.value = FormatCurrency(dGrandTtl);

    if (isEmpty(String(objCheckedCont.value).match(objContNo.value)))
    {
      if (objCheckedCont.value != "")
        objCheckedCont.value += ",";

      objCheckedCont.value = objCheckedCont.value + objContNo.value;
    }
  }
  else
  {
    var dPTrustTtlTemp = RoundNum(parseFloat(String(objTxtBox.value).replace(/,/g, '')));
    var dhTtlTemp = RoundNum(parseFloat(String(ObjhTotal.value).replace(/,/g, '')));
    var dPymtBATemp = RoundNum(parseFloat(String(ObjPymtBA.value).replace(/,/g, '')));

    //dPBankVal = dPBankVal * 100 / 100 - dPymtBATemp;
    //ObjTxtPBankTtl.value = FormatCurrency(dPBankVal);
    dGrandTtl = RoundNum(dGrandTtl) - RoundNum(dhTtlTemp);
    ObjTxtGrandTtl.value = FormatCurrency(RoundNum(dGrandTtl));
    dPymtTATtl = RoundNum(dPymtTATtl) - RoundNum(dPTrustTtlTemp);
    ObjTxtPTrustTtl.value = FormatCurrency(RoundNum(dPymtTATtl));

    dPBankVal = RoundNum(dGrandTtl) - RoundNum(dPymtTATtl);
    ObjTxtPBankTtl.value = FormatCurrency(RoundNum(dPBankVal));

    objTxtBox.disabled = true;
    objTxtBox.value = "";
    ObjPymtBA.value = "";

    if (objCheckedCont.value != "")
    {
      if (!isEmpty(String(objCheckedCont.value).match(objContNo.value)))
      {
        objCheckedCont.value = String(objCheckedCont.value).replace(objContNo.value, "");
        
        var iLen = String(objCheckedCont.value).length;
        if (!isEmpty(String(objCheckedCont.value).match(",,")))
          objCheckedCont.value = String(objCheckedCont.value).replace(",,", ",");
        else if (String(objCheckedCont.value).charAt(iLen - 1) == ",")
          objCheckedCont.value = String(objCheckedCont.value).substring(0, iLen - 1);
        else if (String(objCheckedCont.value).charAt(0) == ",")
          objCheckedCont.value = String(objCheckedCont.value).substring(1, iLen);
      }
    }
  }
}
//-->