var err_str = new Array();
err_str[0] = "Date must be of form mm-dd-yyyy.";
err_str[1] = "The in-weight must be between 450 and 950 pounds.";
err_str[2] = "The amount must be positive.";
err_str[3] = "The interest must be positive.";

chForServerErr();

function chForServerErr(){
    var id = document.getElementById("err_datePurchased");
    if(id.childNodes != null) toggleErrorMsg( true, id );
    id = document.getElementById("err_saleDate");
    if(id.childNodes != null) toggleErrorMsg( true, id );
    id = document.getElementById("err_inWeight");
    if(id.childNodes != null) toggleErrorMsg( true, id );
    id = document.getElementById("err_purchasePrice");
    if(id.childNodes != null) toggleErrorMsg( true, id );
    id = document.getElementById("err_interestRate");
    if(id.childNodes != null) toggleErrorMsg( true, id );
}

function setErrStr(id, str){
    var elt = document.getElementById(id);
    elt.innerHTML = str;
}

function isValidDate(d)
{
	var strAr = d.split("-");
	if( strAr.length != 3 ){
		strAr = d.split("/");
		if( strAr.length != 3 ){ return false;}
	}
	
	for( var i=0; i < 2; ++i ){
		if( isNaN(strAr[i].charAt(0)) ){ return false;}
		if( strAr[i].length == 2 ){
			if( isNaN(strAr[i].charAt(1)) ){ return false;}
		}
		if( strAr[i].length > 2 ){ return false;}
	}
	
	if( strAr[2].length != 4 ){ return false;}
	for( var i=0; i < 4; i++ ){
		if( isNaN(strAr[2].charAt(i)) ){ return false;}
	}
	return true;
}

function CheckDatePurchased()
{
	var id = document.getElementById("datePurchased");
	var errId = document.getElementById("err_datePurchased");
	var val = trim(id.value);
	if( val == "" ) return NaN;
	var ret = isValidDate(val);
	if( ret == false ) setErrStr("datePurchased_postError", err_str[0]);
	else setErrStr("datePurchased_postError", "");
	return toggleErrorMsg( !ret, errId );
}

function CheckSaleDate(){
	var id = document.getElementById("saleDate");
	var errId = document.getElementById("err_saleDate");
	var val = trim(id.value);
	if( val == "" ) return NaN;
	var ret = isValidDate(val);
	if( ret == false ) setErrStr("saleDate_postError", err_str[0]);
	else setErrStr("saleDate_postError", "");	
	return toggleErrorMsg( !ret, errId );
}

function CheckInWeight(){
	var id = document.getElementById("inWeight");
	var errId = document.getElementById("err_inWeight");
	val = trim(id.value);
	if( val == "" ) return NaN;
	var val = parseFloat(val);
	var isErr = false;
	if( !isNaN(val) ){//is a number
		if(val < 450 || val > 950){ 
		    isErr = true;
		    setErrStr("inWeight_postError", err_str[1] );
		}
	}
	else{	
		isErr = true;
		setErrStr("inWeight_postError", err_str[1] );
	}
	return toggleErrorMsg( isErr, errId );
}

function CheckPurchasePrice(){
	var id = document.getElementById("purchasePrice");
	var errId = document.getElementById("err_purchasePrice");
	val = trim(id.value);
	if( val == "" ) return NaN;
	var val = parseFloat(val);
	var isErr = false;
	if( !isNaN(val) ){//is a number
		if(val < 0){ 
		    isErr = true;
		    setErrStr("purchasePrice_postError", err_str[2] );
		}
	}
	else{	
		isErr = true;
		setErrStr("purchasePrice_postError", err_str[2] );
	}
	return toggleErrorMsg( isErr, errId );
}

function CheckInterestRate(){
	var id = document.getElementById("interestRate");
	var errId = document.getElementById("err_interestRate");
	val = trim(id.value);
	if( val == "" ) return NaN;
	var val = parseFloat(val);
	var isErr = false;
	if( !isNaN(val) ){//is a number
		if(val < 0){ 
		    isErr = true;
		    setErrStr("interestRate_postError", err_str[3] );
		}
	}
	else{	
		isErr = true;
		setErrStr("interestRate_postError", err_str[3] );
	}
	return toggleErrorMsg( isErr, errId );
}

function toggleErrorMsg( isErr, elementId ){
	if( isErr ){
		if(elementId.style.display == "" || elementId.style.display == "none") elementId.style.display = "block";
		return false;
	}
	else{
		elementId.style.display = "none";
		return true;
	}
}

function trim(str){
    while(str.charAt(0) == ' '){
        str = str.substring(1);
    }
    while(str.charAt(str.length-1) == ' '){
        str = str.substring(0, str.length-2);
    }
    return str;
}

