function getAmt1 (form, button, v_type) {
	
	if (!c_num(form.v_amt)) return;
	if (!c_num(form.v_rate)) return;
	if (form.v_per.value != null) {
		if (!c_num(form.v_per)) return;    
	}

	v_amt = form.v_amt.value;
	v_rate = form.v_rate.value / 100;
	if (form.v_per.value != null) {
		v_per = form.v_per.value;		
	}
	else{
		v_per = form.v_per.options[form.v_per.selectedIndex].value;
	}

	if (v_type == "getPV"){
		v_rate = v_rate / 12;
		v_per = v_per * 12;
		v_amt1 = (v_amt * (Math.pow((1 + v_rate), v_per) - 1)) / (v_rate * Math.pow((1 + v_rate), v_per));
	}
	else if (v_type == "getAmt"){
		v_rate = v_rate / 12;
		v_per = v_per * 12;
		v_amt1 = (v_amt * v_rate * Math.pow((1 + v_rate), v_per)) / (Math.pow((1 + v_rate), v_per) - 1);	
	}
	else if (v_type == "getTPV"){
		v_amt1 = (v_amt * v_per) / (1 + (v_rate * v_per));
	}
	else if (v_type == "getTAmt"){
		v_amt1 = v_amt * (1 + v_rate * v_per) / v_per;
	}
	else if (v_type == "getZPV"){
		v_amt1 = v_amt * 12 * (Math.pow((1 + v_rate), v_per) - 1) / v_rate * (24 + (13 * v_rate)) / 24;
	}
	else if (v_type == "getZAmt"){
		v_amt1 = v_amt / 12 / (Math.pow((1 + v_rate), v_per) - 1) * v_rate / (24 + (13 * v_rate)) * 24;
	}

	v_amt1 = round(v_amt1, 2);
	form.v_amt1.value = v_amt1;
	return;
}

function c_num(text) {
	// Ctrl = form.v_amt;
	if (isNaN (parseInt(text.value))) {
		validatePrompt (text, "ERROR: Please input a number!");
		return (false);
	}
	else
		return (true);
}

function validatePrompt (Ctrl, PromptStr) {
	alert (PromptStr)
	Ctrl.focus();
	return;
}

function round(v_num, v_dec){
	return Math.round(v_num * Math.pow(10, v_dec)) / Math.pow(10, v_dec)
}

function formatDecimalNumber(x, dec) {
    x = round(x, dec);
    return formatNumber(x);
}

function formatNumber(x){
    x = String(x);
    var idx = x.indexOf(".");
    var head, tail;
   
    if (idx > -1) {
        head = String(x.substring(0,idx));
        tail = "."+String(x.substring(idx+1, x.length));
    } else {
        head = x;
        tail = String("");
    }

    var neval = String()
    var i = 0
    for (var ct = (head.length-1) ; ct >= 0 ; ct --)
    {
        if (((i%3) == 0) && (i != 0))
            neval += String(",")
        neval += String(head.substring(ct,ct+1))
        i++
    }

    head = new String("")
    for (var ca = (neval.length-1) ; ca >= 0 ; ca --)
        head += neval.substring(ca,ca+1)

    return (head+tail)
}

function chg_per(v_per, v_type) {
	var v_len = v_per.length - 1; 
	
	if (v_type.value != "HK" && v_per.options[0].value == 1){
		for (i=0; i<=v_len-1; i++){
			v_per.options[i].value = v_per.options[i+1].value;
			v_per.options[i].text = v_per.options[i+1].text;
		}
		v_per.options[i].value = "";
		v_per.options[i].text = "";
		v_per.length = i;
	}
	else if (v_type.value == "HK"){
		v_len = v_len + 1;
		v_per.length = v_len + 1;
		for (i=v_len; i>0; i--){
			v_per.options[i].value = v_per.options[i-1].value;
			v_per.options[i].text = v_per.options[i-1].text;
		}
		v_per.options[0].value = 1;
		v_per.options[0].text = "1 day";
	}
}

function getPrn (form, button) {
	if (!c_num(form.v_amt)) return;
	if (!c_num(form.v_rate)) return;
	if (form.v_per.value != null) {
		if (!c_num(form.v_per)) return;
	}

	// 365-day for HKD and GBP; 360-day for other else
	v_day = 360;

	v_amt = form.v_amt.value;
	v_rate = form.v_rate.value / 100;
	if (form.v_per.value != null) {
		v_per = form.v_per.value;		
	}
	else{
		v_per = form.v_per.options[form.v_per.selectedIndex].value;
	}
	v_amt1 = v_amt * v_rate * v_per / v_day;
	
	// Different rounding for different currencies
	if (form.v_type.value == "HK"){
		v_amt1 = round(v_amt1, 1);
	}
	else if (form.v_type.value == "JP" || form.v_type.value == "IT"){
		v_amt1 = round(v_amt1, 0);
	}
	else {
		v_amt1 = round(v_amt1, 2);
	}

	form.v_amt1.value = v_amt1;
	return;
}
var url="https://eb.bankcomm.com.hk/eb/";
function pv(rate, nper, pmt, fv, per){
nper = parseFloat(nper);
pmt = parseFloat(pmt);
fv = parseFloat(fv);
rate = eval((rate)/(per * 100));
//if (( pmt == 0 ) || ( nper == 0 )) {
//alert("Why do you want to test me with zeros?");
//return(0);
//}
if ( rate == 0 ){ // Interest rate is 0
pv_value = (fv + (pmt * nper));
}
else {
x = Math.pow(1 + rate, -nper);
y = Math.pow(1 + rate, nper);
pv_value =  (pmt*(1+rate)*(1-y))/(rate*y);
}
//pv_value = conv_number(pv_value,2); 
return (pv_value);
}

function pmt(rate,nper,pv,fv,per){
fv = parseFloat(fv);
nper = parseFloat(nper);
pv = parseFloat(pv);
per = parseFloat(per);
rate = eval((rate)/(per * 100));
if ( rate == 0 ) // Interest rate is 0
{
pmt_value =  (fv + pv)/nper;
}
else {
x = Math.pow(1 + rate,nper);
pmt_value = (rate*(fv+pv*x))/((1+rate)*(1-x));
}
pmt_value = conv_number(pmt_value,2); 
return (pmt_value);
}

function conv_number(expr, decplaces) { // This function is from David Goodman's Javascript Bible. 
var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces));
while (str.length <= decplaces) {
str = "0" + str;
}
var decpoint = str.length - decplaces;
return (str.substring(0,decpoint) + "." + str.substring(decpoint,str.length));
}
function creatStr(){
var Elements = document.getElementsByTagName("input");

       var str="";
        for ( var i=0; i<Elements.length;i++) {
          if ( Elements[i].type == "text" ) {
          if(Elements[i].id!=null){
          if(document.getElementById(Elements[i].id).value==null)
            document.getElementById(Elements[i].id).value="";
           str+=document.getElementById(Elements[i].id).value+";";
                }
            }
          }
          var ElementSs = document.getElementsByTagName("select");
          if(ElementSs.length>0){
          for (var j=0; j<ElementSs.length;j++) {
          if(ElementSs[j].id!=null&& ElementSs[j].id!=""){
          if(document.getElementById(ElementSs[j].id).value==null)
            document.getElementById(ElementSs[j].id).value="";
           str+=document.getElementById(ElementSs[j].id).value+";";
               }
            }
         }
        return str;
}

function validateFeild(){
var Elements = document.getElementsByTagName("input");
var patrn=/^[+]?[0-9]{1,8}$|^[+]?[0-9]{1,8}\.[0-9]{1,2}$/;
for ( var i=0; i<Elements.length;i++) {
          if ( Elements[i].type == "text"&& Elements[i].readOnly==false ) {
          if(isEmpty(document.getElementById(Elements[i].id),"TEXT")){
                onErrorAlert(document.getElementById(Elements[i].id),"please input "+map.get(Elements[i].id)+" column!");
                    return false;
            }
          if(document.getElementById(Elements[i].id).value==null)
            document.getElementById(Elements[i].id).value="";
          if(!patrn.exec(document.getElementById(Elements[i].id).value)){
            onErrorAlert(document.getElementById(Elements[i].id),"Invalid value!");
            return false;
            }
           }
       }
 return true;
}

