var phone_format=/^\d{3}-\d{3}-\d{4}$/;
var date_format=/^\d{1,2}\/\d{1,2}\/\d{4}$/;
var lstNums="|0|1|2|3|4|5|6|7|8|9|.|-|,|%|$|";
var listST = "|AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MT|MO|MS|NC|ND|NE|NH|NJ|NM|NV|NY|OH|OK|OR|PA|PR|RI|SC|SD|TN|TX|UT|VA|VI|VT|WA|WI|WV|WY|"
var lstAlpha_1=",|.|";
var email_format=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
var seller_id_format=/^\w{2}\-\d{3}$/;
var rate_format=/^\a{1,2}\.\d{0,4}?|%+$/;
var date_input="|0|1|2|3|4|5|6|7|8|9|\/|";
var phone_input="|0|1|2|3|4|5|6|7|8|9|-|";
var dollar_input="|0|1|2|3|4|5|6|7|8|9|$|,|.|";
var percent_input="|0|1|2|3|4|5|6|7|8|9|%|,|.|";
var pure_no_input="|0|1|2|3|4|5|6|7|8|9|";


function FMAC_isEmpty(e, fld){
	if(e.type=='text' || e.type=='textarea')
		if(e.value=="" || e.value==null){
			alert("Please enter " + fld + " field.");
			e.focus();
			return false;
	}
	
	if(e.type=='select-one' || e.type=='select-multiple'){
		if(e.selectedIndex==0 || e.selectedIndex==-1){
			alert("Please select " + fld);
			e.focus();
			return false;
		}
	}
	
	if(e.type=='checkbox' || e.type=='radio')
		if(!e.checked){
			alert("Please check " + fld);
			return false;
	}
	
	if(e.type=='file')
		if(e.value=="" || e.value==null){
			alert("Please browse " + fld);
			e.select();
			return false;
	}
	
	return true;
}

function FMAC_isLessThanZero(e, fld){
	var num = parseInt(e.value, 10);
	if (num < 0){alert(fld + " cannot be less than 0." ); e.select();return false;}
	return true;
}

function FMAC_isChecked(e, fld){
	var checked = false;
	for(var i=0; i<=e.length-1; i++){
		if(e[i].checked){checked=true; return true;}
	}
	if(!checked){
		//alert("Please check " + fld);
		return false
	}
}

function FMAC_RestrictedInput(e, mask){
	for(var i=0;i<=e.value.length-1;i++){
		if(mask.indexOf(e.value.charAt(i)+'|')==-1){
			e.value=e.value.substring(0, i);
			return false;
		}
	}
	return true;

}

function FMAC_LimitedNumeric(e, max, text){
	if(e.value == "")return;
	if(parseInt(e.value,10) > max){
		alert(text + ' cannot be greater than ' + max);
		e.value = max;
		return;
	}
	e.value = parseInt(e.value,10);
}

function FMAC_formatPercentage(e){
	if(e.value=="") return;
	var dot = e.value.indexOf('.');
	
	

}

function FMAC_isEmptyFld(e){
	if (e.value ==""){return false;}
	return true;
}

function FMAC_isDate(e){
	var d=new Date();
	if (e.value ==""){return true;}
	
	if(!date_format.test(e.value)){
		error_message(e, "Invalid date format. correct format is: "+ parseInt(d.getMonth()+1) + "/" + d.getDay()+"/"+d.getFullYear());
		return false;
	}
	if(!FMAC_isRealDate(e)){return false;}
	return true;
}

function FMAC_isRealDate(e){
	var m = e.value.split('/')[0];
	var d = e.value.split('/')[1];
	var y = e.value.split('/')[2];
	if(m =="" || d=="" || y==""){return;}

	if (m > 12 || m < 1 ){
		alert("Month value cannot be less than 1 or greater than 12"); 
		e.value='';
		return false;
	}
	if (d > 31 || d < 1){
		alert("Day value cannot be less than 1 or greater than 31"); 
		e.value='';
		return false;
	}
	if (y < 1900 || y > new Date().getYear()+29){
		alert("Year value cannot be less than 1900 or greater than "+parseInt(new Date().getYear()+1)); 
		e.value='';
		return false;
	}

	if(m==4||m==6||m==9||m==11){
		if(d >30){
			alert("Date value cannot be greater than 30 for the month of "+ getMonthDesc(m));
			e.value='';
			set_field_focus(e)
			return false;
		}
	}
	if(m==2){
		var leap = parseInt(y/4);
		if (d > 29){
			alert("Date value cannot be greater than 29 for the month of Feburary");
			e.value='';
			set_field_focus(e)
			return false;
		}
		if (d == 29 && (y/4)!=parseInt(y/4)) {
			alert("Date value cannot be greater than 28 for the month of Feburary");
			e.value='';
			set_field_focus(e)
			return false;
		}
	}
	return true;
}

function getMonthDesc(m){
	var arr = "January,Feburary,March,April,May,June,July,August,September,October,November,December"
	return arr.split(',')[m-1];

}

function format_state_value(e){
	if (listST.indexOf('|'+e.value.toUpperCase()+'|')==-1){
		e.value="";
	}
	e.value=e.value.toUpperCase();
}

function format_date_input(e){
	if(e.value==""){return;}
	only_date_input(e);
	if (e.value.length!=10 && e.value.length!=8){
		if(e.value.charAt(1)=='/' && e.value.length==2){e.value='0' + e.value.substring(0,1)}
		if(e.value.length==2){e.value=e.value+'/';}
		if(e.value.charAt(3)=='/' && e.value.length==4){e.value=e.value.substring(0,3)}
		if(e.value.charAt(4)=='/' && e.value.length==5){e.value=e.value.substring(0,3)+'0'+e.value.charAt(3)}
		if(e.value.length==5){e.value=e.value+'/';}
		if(e.value.charAt(6)=='/'){e.value=e.value.substring(0,6)}
	}
	//if (e.value.length==10 || e.value.split('/')[2].length ==4){FMAC_isRealDate(e)}
}

function only_date_input(e){
	for(var i=0;i<=e.value.length-1;i++){
		if(date_input.indexOf(e.value.charAt(i)+'|')==-1){
			e.value=e.value.substring(0, i);
			return false;
		}
	}
	return true;
}
function format_number_input(e) {
    if (e.value == "") { return; }
    only_numeric_input(e);
   
    e.value = formatNumber(e.value)
}

function format_integer_input(e) {
    if (e.value == "") { return; }
    only_numeric_input(e);

    e.value = formatWholeNumber(e.value)
}

function format_phone_number(e){
	if(e.value==""){return;}
	only_numeric_input(e);
	
	if(e.value.length==3){e.value=e.value+'-';}
	if(e.value.charAt(4)=='-'){e.value=e.value.substring(0,4)}
	if(e.value.length==7){e.value=e.value+'-';}
	if(e.value.charAt(8)=='-'){e.value=e.value.substring(0,8)}
	//if(e.value.length==12)if(e.value.indexOf('-')==-1){e.value=e.value.substing(0,2)+'-'+e.value.substring(3,5)+'-'+e.value.substring(6,8);}
	if(e.value.replace(/-/g, '').length>=10){phone_input_validation(e);}
}

function only_numeric_input(e){
	for(var i=0;i<=e.value.length-1;i++){
		if(lstNums.indexOf(e.value.charAt(i)+'|')==-1){
			e.value=e.value.substring(0, i);
			return false;
		}
	}
	return true;
}

function phone_input_validation(e){
	if(e.value==""){return true;}
	if(!phone_format.test(e.value)){
		error_message(e, "invalid phone format. correct format is: 202-000-0000");
		return false;
	}
	return true;
}

function email_input_validation(e){
	if(e.value==""){return true;}
	if(!email_format.test(e.value)){
		error_message(e, "invalid email format. correct format is: johndoe@home.com");
		return false;
	}
	return true;
}

function format_numeric_input(e){
	if (e.value=="")return;
	var str = e.value.replace(/,/g, '');
	var dot= str.indexOf('.');
	if(!only_numeric_input(e)){return;}
	if(dot == -1){e.value = form_number_before_dot(str);return;}
	if(dot == 0){e.value = '0'+ form_number_after_dot(str,dot);return;}
	e.value=form_number_before_dot(str.substr(0, dot))+form_number_after_dot(str.substr(dot, str.length-1));
}

function format_rate_input(e){
	if (e.value=="") return;
	
	only_numeric_input(e);
	if(!rate_format.test(e.value)){
		alert("Incorrect Rate Format.");
		e.value="";
		return;
	}
	if (parseInt(e.value*10,10) == 0){
		e.value = e.value * 100;
	}
	if (e.value.length ==1){e.value=e.value+'.00%';return;}
	e.value = e.value.replace(/%/, '')+'%';
	
}

function format_seller_id_input(e){
	if(!seller_id_format.test(e.value)){
		alert("Incorrect Seller ID Format.");
		e.value="";
		return;
	}
	e.value=e.value.toUpperCase();
}
function form_number_before_dot(num){
	var str="";
	for (var i=0; i<=num.length-1; i++){
		if( i % 3 == 0) str = ','+ str;
		str = num.charAt(num.length-i-1)+ str;
	}
	return str.substr(0, str.length-1);
}

function form_number_after_dot(num, dot){
	return num.substr(dot, 4)
}

function OpenCrystalReport(url){
	var newwin=window.open(url, null);
	newwin.focus();

}

function openNewWindow(url, w, h){
	var newWin;
	newWin=window.open(url, null, "height="+h+ ",width="+ w +",status=yes,toolbar=no,menubar=no,location=no,url=no,resize=yes,left=250,top=200");
	newWin.focus();
}


function hight_row_selected(e, color){
	e.style.backgroundColor=color;
}

var fld_onfocus="";
function color_when_focus(e, color){
	document.getElementById(e.name).style.backgroundColor = color;
	if (fld_onfocus != "" )document.getElementById(fld_onfocus).style.backgroundColor = 'ffffff';
	fld_onfocus = e.name;
}

function deselect_empty(e){
	var id = document.getElementById(e.name);
	var at_least_one_selected = false;
	for(var i=1; i<=id.length-1; i++){
		if (id[i].selected){at_least_one_selected=true;break;}
	}
	if (at_least_one_selected)id[0].selected=false;
}

function auto_format_phone(e){
	if(e.value==""){return;}
	only_numeric_input(e);
	if(e.value.length==3){e.value=e.value+'-';}
	if(e.value.length==7){e.value=e.value+'-';}
	if(e.value.length==12)if(e.value.indexOf('-')==-1){e.value=e.value.substing(0,2)+'-'+e.value.substring(3,5)+'-'+e.value.substring(6,8);}
}

/**
function only_numeric_input(e){
	for(var i=0;i<=e.value.length-1;i++){
		if(lstNums.indexOf(e.value.charAt(i)+'|')==-1){
			e.value=e.value.substring(0, i);
			return;
		}
	}	
}
**/
function validate_state(e){
	if (listST.indexOf('|'+e.value.toUpperCase()+'|') == -1){
		e.value = "";
	}
	e.value=e.value.toUpperCase();
}

function find_control_focus(e){
	if (e){
		e.focus();
	}
}

function error_message(e, msg){
	alert(e.value + " is an " + msg);
	set_field_focus(e);
}

function set_field_focus(e){
	e.focus();
	e.select();
	return;
}

function number_greater_than(e, num){
	if (e.value < num){
		alert("The number should be greater or equal to " + num);
		set_field_focus();
	}
}

function put_value_into_field(e, parent_e){
	parent_e.value = e.value;
	window.close();
}

function positive_input(e, fld){
	var num = parseInt(e.value, 10) >= 0;
	if (e.value =="")return;
	if (!num){
		alert(fld+ " cannot be less than 0.");
		e.value = "";
	}
}

function enable_disable_field(e, e2, fld){
	if(e.value==fld){e2.disabled=true;e2.value="";return;}
	e2.disabled=false;
}

function assign_date(e, fld) {
    var f = document.forms[0];
    var obj = eval("f." + fld);
    var d = new Date();

    if (e.selectedIndex == -1) return;
    obj.value = d.getMonth() + 1 + '/' + d.getDate() + '/' + d.getFullYear();

}

function calculate_Improvementvalue(e, type) {
    var f = document.forms[0];
    var pix = e.id.substring(0, 6);
   
    var app = eval("f." + pix + type + "AppraisalValue");
    var imp = eval("f." + pix + type + "ImprovementValue");
    var land = eval("f." + pix + type + "LandValue");

    imp.value = formatCurrency(c_float(app.value) - c_float(land.value));
}

function calculate_RemainingValue(e, type) {

    var f = document.forms[0];
    var pix = e.id.substring(0, 6);
    var orig = eval("f." + pix + "Original" + type);
    var prior = eval("f." + pix + "Prior" + type);
    var current = eval("f." + pix + "Current" + type);
    //var rel = eval("f." + pix + "NoRelease" + type);
    var other = eval("f." + pix + "Other" + type);
    var rem = eval("f." + pix + "Remaining" + type);
    var num = c_float(orig.value) - c_float(prior.value) - c_float(current.value)  - c_float(other.value)
    if (type == 'Acres') rem.value = formatWholeNumber(num);
    else {
        rem.value = formatCurrency(num);
    }
    
}

function calculate_ltv(e,type) {
    var f = document.forms[0];

    var pix = e.id.substring(0, 6);
    var loan = eval("f." + pix + type + "LoanAmount");
    var av = eval("f." + pix + type + "AppraisalValue");
    var ltv = eval("f." + pix + type + "LTV");
    var num = 0;
   
    if (c_float(av.value) != 0) {
        num = c_float(loan.value) / c_float(av.value);
    }

    ltv.value = formatPercent(num);
}

function c_float(val) {
    if (val=="") return 0;
    var num = parseFloat(val.replace('$', '').replace('%', '').replace(/,/g, ''));
    if (isNaN(num)) return 0;
    return num;
}

function formatPercent(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    num = num * 100
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
	num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num + '.' + cents + '%');

}
function formatNumber(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
	num.substring(num.length - (4 * i + 3));
    //return (((sign)?'':'-') + num + '.'
    return (((sign) ? '' : '-') + num + '.' + cents);
}
function formatWholeNumber(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
	num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num);
}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
	num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}

var ae_cb = null;
function ae$(a) { return document.getElementById(a); }
function ae_clk(m) {
    // hide dialog layers 
    ae$('aep_ovrl').style.display = ae$('aep_ww').style.display = 'none';
    /**
    if (m == 1) {
        response = true;
        if (btn) btn.click();
    } else {
        response = false;
    }
    **/
}
function submitForm(id){
	document.Form1.hiddenID.value=id;
	document.Form1.submit();

}