function IsToCompanyPage(bAction) {
	if(bAction==AC_CompanyInfo1 || bAction==AC_CompanyInfo2 || bAction==AC_CompanyInfo3 ||
		bAction==AC_CompanyInfo4 ||	bAction==AC_CompanyInfo5 ||	bAction==AC_CompanyInfo6 ||	bAction==AC_CompanyInfo7) {
			return true;
	} else {
			return false;
	}
}


function IsToLoanMonitoringPage(bAction) {
	if(bAction==AC_Loan_Monitoring1 || bAction==AC_Loan_Monitoring2 || bAction==AC_Loan_Monitoring3 ||
		bAction==AC_Loan_Monitoring4 || bAction==AC_Loan_Monitoring5) {
			return true;
	} else {
			return false;
	}
}

function IsToCompanyAnalasisPage(bAction) {
	if(bAction==AC_Analysis1 || bAction==AC_Analysis2 || bAction==AC_Analysis3 ||
		bAction==AC_Analysis4 || bAction==AC_Analysis5 || bAction==AC_Analysis6) {
			return true;
	} else {
			return false;
	}
}

function ChangeBtnState(state1, state2, state3) {
	top.toolbar.ChangeBtnState(state1, state2, state3);
}

function SetNavBar(bShow) {
	top.toolbar.SetNavBar(bShow);
}

function ReloadNavBar(mType, bIsConfig) {
	top.navbar.SetUserValue(mType, bIsConfig);
	top.navbar.onPageLoad();
	SetNavBar(true);
	top.navbar.ResetNavbar();
}

function FindObj(n, d) {
  var p,i,x; if(!d) d=document;
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document;
    n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=FindObj(n,d.layers[i].document);  
  if(parseInt(navigator.appVersion) >= 5){
  	x=document.getElementsByName(n);
	if (x.length==1) {
		x = x[0];
	} else if (x.length==0) {
		x = null;
	}
  }
  return x;  
}

function replacepage(page){
	window.location.replace(page); 
}

function replaceToppage(page){
	var oW = window;
	while(oW!=oW.parent)oW=oW.parent;
	oW.location.replace(page); 
}

function replaceFramePage(frameName, page){
	var oW = window;
	while(oW != oW.parent)oW=oW.parent;
	getWinObj(oW, frameName).location.replace(page);
}

function getWinObj(oTopW, name){
	var ow;
	if(oTopW.frames){
		ow = oTopW.frames[name];
		for(var i=0; !ow && i<oTopW.frames.length; i++){ow = getWinObj(oTopW.frames[i], name);}
	}
	return ow;
}

function setFocus(txtName){
	FindObj(txtName).focus();
}
function IsToLoanNewPage(bAction) {
	if(bAction==AC_Loan_New1 || bAction==AC_Loan_New2 || bAction==AC_Loan_New3 ||
		bAction==AC_Loan_New4 || bAction==AC_Loan_New5 || bAction==AC_Loan_New6|| bAction==AC_Loan_New7) {
			return true;
	} else {
			return false;
	}
}

function lTrim(toBeLTrimmed) {
	var unWantedChars = new String(" \n\r\t");
	var str = new String(toBeLTrimmed);
	if (unWantedChars.indexOf(str.charAt(0)) != -1) {
		var i=0, nLen = str.length;
		while (i < nLen && unWantedChars.indexOf(str.charAt(i)) != -1)
			i++;
		str = str.substring(i, nLen);
	}
	return str;
}

function rTrim(toBeRTrimmed) {
	var unWantedChars = new String(" \n\r\t");
	var str = new String(toBeRTrimmed);
	var nLen = str.length;	
	if (unWantedChars.indexOf(str.charAt(nLen)) != -1) {
		var i=nLen-1;
		while (i>0 && unWantedChars.indexOf(str.charAt(i)) !=-1)
			i--; str = str.substring(0,++i);
	}
	return str;
}

function trim(toBeRTrimmed) {
	return lTrim(rTrim(toBeRTrimmed));
}

function JIsDate(strDate){
	var arr = strDate.split("/");
	var sep = "/";
	if (arr.length != 3) {
		arr = strDate.split("-");
		sep = "-";
	}
	if (arr.length == 1) {
		if (strDate.length == 6) {
			return JIsDate(strDate.substring(0,2)+"/"+strDate.substring(2,4)+"/"+strDate.substring(4));
		} else if (strDate.length == 8) {
			return JIsDate(strDate.substring(0,4)+"/"+strDate.substring(4,6)+"/"+strDate.substring(6));
		} else {return ""; }
	} else if (arr.length == 3) {
		var curDate = new Date();
		var iYear = parseInt(arr[0], 10);
		var iMon = parseInt(arr[1], 10) - 1;
		var iDay = parseInt(arr[2], 10);

		if (iYear<100)
			iYear = iYear +  Math.floor((curDate.getFullYear() + 10 - iYear) / 100) * 100;

		var theDate = new Date(iYear, iMon, iDay);
		if (isNaN(theDate)) return "";

		var strDay = theDate.getDate();
		var strMon = parseInt(theDate.getMonth());
		var strYear = theDate.getFullYear();
		if (iMon != strMon || iDay != strDay || iYear != strYear)	{ 
			return ""; 
		} else { 
			return theDate; 
		}
	}
}



function ConvertDateToString(oDate) {
	return (oDate==null) ? "" : oDate.getFullYear() + "/" + (oDate.getMonth()+1) + "/" + oDate.getDate();
}

function ConvertDateToLong(oDate) {
	var sYear = oDate.getFullYear().toString();
	var sMonth = (oDate.getMonth()+1).toString();
	if (sMonth.length == 1) sMonth = "0" + sMonth
	var sDate = oDate.getDate().toString();
	if (sDate.length == 1) sDate = "0" + sDate
	return parseInt((sYear + sMonth + sDate), 10);
}

function ConvertDateStringToLong(strDate) {
	var vDate = JIsDate(strDate);
	if (vDate == "") return 0;
	else return ConvertDateToLong(vDate);
}

function ConvertLongToDateString(lValue) {
	if (isNaN(lValue)) {
		return "";
	} else if (lValue.toString().length!=8) { // Must after Year 1000
		return "";
	} else {
		var sValue = lValue.toString();
		return sValue.substring(0,4) + "/" + sValue.substring(4,6) + "/" + sValue.substring(6,8);
	}
}

function GetTodayDate() {
	var curDate = new Date();
	var iYear = curDate.getFullYear();
	var iMon = curDate.getMonth()+1;
	var iDay = curDate.getDate();
	return (iYear*10000 + iMon*100 + iDay);
}

function RoundDouble(num, digits) {
	if (isNaN(digits)) digits = 0;
	var base = Math.pow(10,digits);
	return Math.round(num * base) / base;
}

function FormatDouble(num, digits) {
	// Always RoundDouble first!
	num = RoundDouble(num, digits)
	
	var bMinus = (num<0);
	var strAmt = parseFloat((bMinus)?(-num):num).toString();
	var dot = strAmt.indexOf(".");
	if (dot < 0) dot = strAmt.length;
	if (isNaN(digits)) digits = 0;
	if (dot==0) {
		strAmt = "0" + strAmt;
		dot = 1;
	}
	if (dot+digits+1 < strAmt.length) {
		strAmt = strAmt.substring(0,dot+digits+1);
	} else {
		if (digits > 0) {	
			if (dot==strAmt.length) strAmt += ".";
			for (var i=strAmt.length; i<=dot+digits;i++) strAmt += "0";
		} else {
			strAmt = strAmt.substring(0,dot);
		}
	}
	var arr = new Array();
	var pos=dot%3, count=0;
	if (pos) {
		arr[count] = strAmt.substring(0,pos);
		count++;
	}
	for (; pos<dot; pos+=3,count++) {
		arr[count] = strAmt.substring(pos,pos+3); 
	}
	return (bMinus?"-":"")+arr.join(",")+strAmt.substring(dot);
}

function UnformatDouble(st) {
	var tmp = st.split(",")
	return (parseFloat(tmp.join("")))
}

function isInList(list, value) {
    for (var ptr = 0; ptr < list.length; ptr++){
        if (value == list[ptr][0]) {
            return ptr;
        }
    }
    return -1;
}


function NullZero(lValue) {
	if (isNaN(lValue)) {
		return 0;
	} else {
		return lValue;
	}
}

function selectItemFromList(oList, value){
  var index = getElmIndexInList(oList, value);
  SelectListItem(oList, index);
}

function SelectListItem(oList, index){
  var opt;
  if (index >= 0){	
    opt = oList.options[index];
	//alert("opt.selected = " + opt.selected);
    if(! opt.selected){
      opt.selected = true;
    }
  }
}

function getElmIndexInList(oList, value){
  var i, leng = oList.length;
  for( i=0; i<leng; i++){
    if (new String(value).toUpperCase() == new String(oList.options[i].value).toUpperCase()) {
       return i;
    }
  }
  return -1;
}

function addToListWArray(oList,value_text_pair_array){
  var leng = value_text_pair_array.length;
  var i, j = oList.length;
  if(leng != null && leng > 0){
    oList.length = j + leng;
    for(i=0; i<leng; i++, j++){
      setListItemVal(oList,j, value_text_pair_array[i][0]);
      if (value_text_pair_array[i].length==2)
         setListItemText(oList,j,value_text_pair_array[i][1]);
      else {
         //if (getLanguageCode()=="1")
            setListItemText(oList,j,value_text_pair_array[i][1]);
         //else
         //   setListItemText(oList,j,value_text_pair_array[i][2]);
      }
	  oList.options[i].selected = false;
    }
  }
}

function setListItemVal(oList, index, value){
  if(oList != null && !(isNaN(index))&& parseInt(index)>=0 && parseInt(index)<=(oList.length-1)){
    oList.options[index].value = value;
  }
}

function setListItemText(oList, index, value){
  if(oList != null && !(isNaN(index))&& parseInt(index)>=0 && parseInt(index)<=(oList.length-1)){
    oList.options[index].text = value;
  }
}

function PopulateList(oList, arr){
  oList.length = 0;
  addToListWArray(oList, arr);
}

function PopulateListText(oList, arr){
	var leng = oList.length;
	var bSelected;
	
	if(leng != null && leng > 0){
		for(i=0; i<leng; i++){
			bSelected = oList.options[i].selected;
			setListItemText(oList,i,arr[i][1]);
			oList.options[i].selected = bSelected;
		}
	}
}

function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
	var j = i + alen;    
	if (document.cookie.substring(i, j) == arg)      
		return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}
function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	// This cookie is history  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function getLanguageCode() {
	var expDays = 30;
	var exp = new Date(); 
	exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

	var code = GetCookie('LanguageCode')
	if(code == null) {
		SetCookie('LanguageCode','0')
		return 0
	}
	else {
		DeleteCookie('LanguageCode')
		SetCookie('LanguageCode',code,exp)
		return code
	}
}
function setLanguageCode(code) {
	var expDays = 30;
	var exp = new Date(); 
	exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

	SetCookie('LanguageCode',code,exp)
}

function setLanguageButton(tagname) { // This function is no longer used.
    var code = getLanguageCode();
    setLanguageSwitch(tagname);

    if (code==0) {	// Chinese
        document.all(tagname)(1).checked = true;
    }
    else if (code==1) {		// English
        document.all(tagname)(0).checked = true;
    }

}

function setLanguageSwitch(tagname) { // This function is no longer use.
    var code = getLanguageCode();

    if (code==0) {	// Chinese
        switchECLanguage(0);
    }
    else if (code==1) {		// English
        switchECLanguage(1);
    }
}

function switchECLanguageFromToolbar() {
	var code = getLanguageCode();
	var newCode = 1-code;
	setLanguageCode(newCode);
	if(top.main.switchECLanguage) top.main.switchECLanguage(newCode);
	top.navbar.location.reload();
}

function getSessionCode() {
	var code = GetCookie('SessionCode')
	if(code == null) {
		return 0
	}
	else {
	// How to check the expiration of the cookie
		return 1
	}
}

function setSessionCode() {
	var expHours = 12;
	var exp = new Date(); 
	// exp.setTime(exp.getTime() + (5*60*1000));
	exp.setTime(exp.getTime() + (expHours*60*60*1000));

	SetCookie('SessionCode','1',exp)
}

function deleteSessionCode() {
	DeleteCookie('SessionCode')
}

function dbgOut(st) {
	var dbgWin = parent.frames(3)

	//dbgWin.document.write("");
	dbgWin.document.close();
	dbgWin.document.writeln("[" + FindObj("HTMLPageName").value+ "] page :");
	dbgWin.document.writeln(st+"<BR>");
	//dbgWin.scrollTo(0,99999);
}

function openDebugger() {
	var dbgWin = window.open('Debugger.asp','ApolloDebugger','resizable=yes,scrollbars=yes,top=0,left=40,width=600,height=60'); 
}


function IsCarLoan(nCatID) {
	return (nCatID == 10)
}

function IsHouseLoan(nCatID) {
	switch (nCatID) {
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
		case 8:
			return 1;
		default:
			return 0;
	}
}

function IsMortgage(nCatID) {
	switch (nCatID) {
		case 1:
		case 2:
		case 3:
			return 1;
		default:
			return 0;
	}
}

function IsAggregate(nCatID) {
	switch (nCatID) {
		case 6:
		case 7:
			return 1;
		default:
			return 0;
	}
}

function PageBranch(lAction) {

	// lAction should be AC_LOANANA, AC_DEC, AC_ADD

	var lLoanCat

	lLoanCat = parseInt(document.all("slt_11001_0_").value)

	if (lLoanCat == "0")
		return AC_NONE;

	switch (lAction) {
		case AC_ADD:
			if (IsHouseLoan(lLoanCat))  return AC_ADDHOUSE;
			if (IsCarLoan(lLoanCat))    return AC_ADDCAR;
			return AC_APP;
			
		case AC_DEC:
			return AC_DECHOUSE;

		case AC_LOANANA:
			if (IsHouseLoan(lLoanCat))  return AC_LOANANAHOUSE;
			if (IsAggregate(lLoanCat))  return AC_LOANANAAGGREGATE;
			return AC_LOANANA;

		default:
			return AC_NONE;
	}
}

function GetStarLevel(dScore) {
    if (dScore >= 110) return "*****"
    if (dScore >=  85) return "****"
    if (dScore >=  70) return "***"
    if (dScore >=  50) return "**"
    return "*"
}

function NotImplemented() {
	alert("Page not yet implemented")
}

function NewRequest() {
	var fldLoanID = FindObj("int_20000_0_")
	var nLoanID = (fldLoanID==null) ? 0 : fldLoanID.value
	SetCookie( "ALDS_LID", nLoanID )

	var oWin = window.open("Request.htm", 'RequestView1','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=no,width=500, height=330'); 
	oWin.focus()
}

function ViewRequest(id) {
	var fldLoanID = FindObj("int_20000_0_")
	var nLoanID = (fldLoanID==null) ? 0 : fldLoanID.value
	SetCookie( "ALDS_LID", nLoanID )
	SetCookie( "ALDS_RID", id )

	var oWin = window.open("Request.htm", 'RequestView1','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=no,width=500, height=400'); 
	if (oWin)
		oWin.focus()
	else {
		DeleteCookie( "ALDS_LID" )
		DeleteCookie( "ALDS_RID" )
		alert("Please allow pop-up window for this site to display the request!!")
	}
}

function AppendAppName() {
	var name = document.all("Local_AppNameC").value
	if (name=="") return;

	var title = document.all("Title").innerText
	document.all("Title").innerText = title + " (" + name +")"
}

function PopulateList2(fld, nUpdateID) {
	PopulateList( fld, fld.Property.list )
	fld.value = fld.Property.value

	if (fld.length==0) return;

	switch (nUpdateID) {
		case 0:
			setListItemText(fld,0,ChooseC)
			break;
		case -1:
			setListItemText(fld,0,ChooseC)
			setListItemText(fld,fld.length-1,AllC);
			break;
	}
}

function CheckBound(vArray, idx, idx2) {
	if (idx < 0 || idx >= vArray.length) idx = 0;
	return (!idx2)?vArray[idx]:vArray[idx][idx2];
}

function ZeroBlank(value) {
	return (parseFloat(value)==0) ? "&nbsp;" : value;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MyMouseOver(obj) {
	obj.background= 'images/label_o.gif'
}

function MyMouseOut(obj) {
	obj.background=  'images/label_g.gif'
}

