//Following brand-specific variables defined in calc_validation_vars_<brand>.js 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// minAmt - Min loan amount
// maxAmt - Max loan amount
// multAmt - Loan amount must be multiples of
// nonHILowerAmt - Non Home Imp lower tier limit
// nonHILowerTerm - Non Home Imp lower tier term
// nonHIUpperTerm - Non Home Imp upper tier term
// HILowerAmt - Home Imp lower tier limit
// HILowerTerm - Home Imp lower tier term
// HIUpperTerm - Home Imp upper tier term

function fValLoanInput(inAmt, inPurpose, inTerm) {

	var strErrMsgs = "";	
	var blnErrFlag = false;

	inAmt = fTrim(inAmt);
	inPurpose += "";
	inTerm += "";
	
	//Validate amount field
	if(inAmt == 0){
		strErrMsgs += "~Please enter a loan amount.";
		blnErrFlag = true;
	}else{
		// Ensure valid loan amount entered
		strErrMsgs += fCheckAmtChars(inAmt);
		// Basic loan amount validation 
		if(!blnErrFlag){
			if((inAmt < minAmt) || (inAmt > maxAmt)){
				strErrMsgs += "~The loan amount must be between #cursymbol#" + minAmt + " and #cursymbol#" + maxAmt;
			}
			if((inAmt % multAmt) != 0){
				strErrMsgs += "~The loan amount must be in multiples of #cursymbol#" + multAmt;
			}
		}	
	}
	blnErrFlag = false;
	
	if(inPurpose.length == 0){
		strErrMsgs += "~Please select a purpose of borrowing.";	
		blnErrFlag = true;
	}

	if(inTerm == 0){
		strErrMsgs += "~Please select the period you wish to borrow for.";	
		blnErrFlag = true;		
	}

	// Loan amount vs term validation 
	if(!blnErrFlag){
		if(inPurpose.toUpperCase() == "HI"){
			if((inTerm < HILowerTerm) || (inTerm > HIUpperTerm)){
				strErrMsgs += "~The loan term must be between " + HILowerTerm + " and " + HIUpperTerm + " months for a Home improvement loan";	
			}
		}else{
			if((inTerm < nonHILowerTerm) || (inTerm > nonHIUpperTerm)){
				strErrMsgs += "~The loan term must be between " + nonHILowerTerm + " and " + nonHIUpperTerm + " months for loans other than Home improvements";	
			}
		}
	}

	return strErrMsgs;
}

function fTrim(inData){
	inData += "";

	if(inData.length > 0){
		//Remove leading spaces
		while (inData.substring(0,1) == ' '){
			inData = inData.substring(1, inData.length);
		}	
		//Remove trailing spaces
		while (inData.substring(inData.length-1, inData.length) == ' '){
			inData = inData.substring(0,inData.length-1);
		}
	}

	return inData;
}

function fFormatAmt(inData){
	//Insert commas for thousands
	var arrData = new Array();
	var tmpData = "";

	inData += "";

	if(inData.length > 3){
		for(var intCtr = inData.length; intCtr > 0; intCtr--){
			tmpData += inData.substring(intCtr, intCtr - 1)
	
			if(tmpData.length == 3){ 
				tmpData += ",";
			}	
		}	
		
		arrData = tmpData.split("");
		tmpData = "";
	
		for(intCtr = arrData.length-1; intCtr >= 0; intCtr--){
			tmpData += arrData[intCtr];
		}	
	}else{
		tmpData = inData;
	}
	
	return tmpData;
}

function fCheckAmtChars(inData){
	inData += "";

	//Check only numerics are present
	var strValidChars = "0123456789";
    var strChar;
    var strErrMsg = "";

	for (i = 0; i < inData.length; i++){
		strChar = inData.charAt(i);
		if (strValidChars.indexOf(strChar) == -1){
  			strErrMsg += "~Please enter loan amount details with numbers only.";
			blnErrFlag = true;					
			break;
  		}
   	}

	return strErrMsg;
}

function fFormatErrs(inErrMsgs, inSepChar, inCurSymbol){
	inErrMsgs += "";
	
	//Format error msg string for display, either script or html

	var arrErrMsgs = inErrMsgs.split("#cursymbol#");
	inErrMsgs = arrErrMsgs.join(inCurSymbol);
	 
	var arrErrMsgs = inErrMsgs.split("~");
	inErrMsgs = arrErrMsgs.join(inSepChar);

	return inErrMsgs;
}
