﻿
function validate_form() {
			
			var the_error = "";
			var regExp = new RegExp(",","g");
			var myFinanceAmount = new String(document.getElementById('lease_amount').value);
				myFinanceAmount = myFinanceAmount.replace(regExp,"");
			
			var myPurchaseOption = new String(document.getElementById('residual_amount').value);
				myPurchaseOption = myPurchaseOption.replace(regExp,"");
			
			var myMonthlyPayment = new String(document.getElementById('payment_amount').value);
				myMonthlyPayment = myMonthlyPayment.replace(regExp,"");
			
			if (document.getElementById('the_calc_field_lease_amount').checked) {
				//nb_payment
				if (!isPositiveNumeric(document.getElementById('nb_payment').value)) {
					the_error = the_error + '- The Number of Periods must be a numeric value.<br />';
					document.getElementById('l_nb_payment').className = "error";
				}else{
					document.getElementById('l_nb_payment').className = "";
					if (!isPositiveInteger(document.getElementById('nb_payment').value)) {
						the_error = the_error + '- The Number of Periods must be an integer greater than zero.<br />';
						document.getElementById('l_nb_payment').className = "error";
					}
				}
				
				//interest
				if (!isPositiveNumeric(document.getElementById('interest').value)) {
					the_error = the_error + '- The Interest Rate must be a numeric value.<br />';
					document.getElementById('l_interest').className = "error";
				} else {
					document.getElementById('l_interest').className = "";
					if (document.getElementById('interest').value >= 50) {
						the_error = the_error + '- The Interest Rate must be less than 50%.<br />';
						document.getElementById('l_interest').className = "error";
					}
				}
				//payment_amount
				if (!isPositiveNumeric(myMonthlyPayment)) {
					the_error = the_error + '- Monthly Payment must be a numeric value.<br />';
					document.getElementById('l_payment_amount').className = "error";
				} else {
					document.getElementById('l_payment_amount').className = "";
				}
				if (myMonthlyPayment >= 50000000) {
					the_error = the_error + '- Monthly Payment must less than $ 50,000,000.00.<br />';
					document.getElementById('l_payment_amount').className = "error";
				} else {
					document.getElementById('l_payment_amount').className = "";
				}
				//residual amount
				if (!isPositiveNumeric(myPurchaseOption)) {
					the_error = the_error + '- The Purchase Option must be a numeric value.<br />';
					document.getElementById('l_residual_amount').className = "error";
				} else {
					document.getElementById('l_residual_amount').className = "";
				}
				if (myPurchaseOption >= 500000000) {
					the_error = the_error + '- The Purchase Option must be less than $ 500,000,000.00.<br />';
					document.getElementById('l_residual_amount').className = "error";
				} else {
					document.getElementById('l_residual_amount').className = "";
				}
			}
			else if (document.getElementById('the_calc_field_payment_amount').checked) {
				//lease_amount
				if (!isPositiveNumeric(myFinanceAmount)) {
					the_error = the_error + '- The Finance Amount must be a numeric value.<br />';
					document.getElementById('l_lease_amount').className = "error";
				} else {
					document.getElementById('l_lease_amount').className = "";
				}
				if (myFinanceAmount >= 500000000) {
					the_error = the_error + '- The Finance Amount must be less than $ 500,000,000.00.<br />';
					document.getElementById('l_lease_amount').className = "error";
				} else {
					document.getElementById('l_lease_amount').className = "";
				}
				
				//nb_payment
				if (!isPositiveNumeric(document.getElementById('nb_payment').value)) {
					the_error = the_error + '- The Number of Periods must be a numeric value.<br />';
					document.getElementById('l_nb_payment').className = "error";
				}else{
					document.getElementById('l_nb_payment').className = "";
					if (!isPositiveInteger(document.getElementById('nb_payment').value)) {
						the_error = the_error + '- The Number of Periods must be an integer greater than zero.<br />';
						document.getElementById('l_nb_payment').className = "error";
					}
				}
				//interest
				if (!isPositiveNumeric(document.getElementById('interest').value)) {
					the_error = the_error + '- The Interest Rate must be a numeric value.<br />';
					document.getElementById('l_interest').className = "error";
				} else {
					document.getElementById('l_interest').className = "";
					if (document.getElementById('interest').value >= 50) {
						the_error = the_error + '- The Interest Rate must be less than 50%.<br />';
						document.getElementById('l_interest').className = "error";
					}
				}
				
				//residual amount
				if (!isPositiveNumeric(myPurchaseOption)) {
					the_error = the_error + '- The Purchase Option must be a numeric value.<br />';
					document.getElementById('l_residual_amount').className = "error";
				} else {
					document.getElementById('l_residual_amount').className = "";
					if (isPositiveNumeric(myFinanceAmount)) {
						if (parseFloat(myPurchaseOption) >= parseFloat(myFinanceAmount) ) {
							the_error = the_error + '- The Purchase Option should be less than the Finance Amount.<br />';
							document.getElementById('l_residual_amount').className = "error";
						}
					}
				}
			} else {
				//lease_amount
				if (!isPositiveNumeric(myFinanceAmount)) {
					the_error = the_error + '- The Finance Amount must be more than zero.<br />';
					document.getElementById('l_lease_amount').className = "error";
				} else {
					document.getElementById('l_lease_amount').className = "";
				}
				
				//nb_payment
				if (!isPositiveNumeric(document.getElementById('nb_payment').value)) {
					the_error = the_error + '- The Number of Periods must be a numeric value.<br />';
					document.getElementById('l_nb_payment').className = "error";
				}else{
					document.getElementById('l_nb_payment').className = "";
					if (!isPositiveInteger(document.getElementById('nb_payment').value)) {
						the_error = the_error + '- The Number of Periods must be an integer greater than zero.<br />';
						document.getElementById('l_nb_payment').className = "error";
					}
				}
				//interest
				if (!isPositiveNumeric(document.getElementById('interest').value)) {
					the_error = the_error + '- The Interest Rate must be a numeric value.<br />';
					document.getElementById('l_interest').className = "error";
				} else {
					document.getElementById('l_interest').className = "";
					if (document.getElementById('interest').value >= 50) {
						the_error = the_error + '- The Interest Rate must be less than 50%.<br />';
						document.getElementById('l_interest').className = "error";
					}
				}
				//payment amount
				if (!isPositiveNumeric(myMonthlyPayment)) {
					the_error = the_error + '- The Monthly Payment must be a numeric value.<br />';
					document.getElementById('l_payment_amount').className = "error";
				} else {
					document.getElementById('l_payment_amount').className = "";
				}
			}
			
			if ( !document.getElementById("disclaimer").checked) {
                the_error = the_error + '- Please agree to the disclaimer by checking the box above.<br />';
				document.getElementById('l_disclaimer').className = "error";
            } else {
				document.getElementById('l_disclaimer').className = "";
            }
            
            var beg_end = 0;


            selected_year = document.getElementById("start_year").value;
	        selected_month = document.getElementById("start_month").value;
        	
	        var selected_day = "01";
	        if (isValidDate(selected_month, selected_day, selected_year)) {
        		
		        selected_date = new Date();
        		
		        selected_date.setFullYear(selected_year);
		        selected_date.setMonth(selected_month-1);
		        selected_date.setDate(selected_day);
		        selected_month = selected_date.getMonth();
        		
	        } else {
        		
		        cur_date = new Date();
		        selected_year = cur_date.getFullYear();
		        selected_month = cur_date.getMonth();
		        the_month = cur_date.getMonth() +1 ;
		        selected_day = "01";
        		
        		
		        selected_date = new Date();
		        selected_date.setFullYear(selected_year);
		        selected_date.setMonth(selected_month);
		        selected_date.setDate(selected_day);
		        document.getElementById("start_year").value = selected_year;
        			
		        if(the_month  < 10){
		            the_month = "0" + (the_month)
		        }
        		
	            document.getElementById("start_month").value = the_month;
	            document.getElementById("start_month")
	        }
	        
			if (the_error.length > 0) {
				//alert(the_error);
				document.getElementById('form_error').innerHTML = "<br /><h3>Error(s)</h3>" + the_error;
				document.getElementById('form_error').style.display = 'block';
				return false;
			} else {
				document.getElementById('form_error').style.display = 'none';
				document.getElementById('lease').submit();
			}
			//month: between 1 and 12
            	

		}
	
        function isValidDate(month, day, year) {
            var oDate = new Date();
            oDate.setFullYear(year,month-1,day);
            return !(	   isNaN(oDate.getMonth()) 
	            || isNaN(oDate.getDate())
	            || isNaN(oDate.getMonth())
	            || isNaN(oDate.getFullYear())
        		
	            || (oDate.getDate() != day)
	            || (oDate.getMonth()+1 != month)
	            || (!(oDate.getFullYear() == year || oDate.getYear() == year))
	            )
        }		
		
		function isPositiveInteger(totest) {
			return totest.match(/^\d+$/);
		}
		function isPositiveNumeric(totest) {
			//var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
			var objRegExp  =  /(^\d\d*\.\d*$)|(^\d\d*$)|(^\.\d\d*$)/;
			return totest.match(objRegExp);
		}
		
		function resetFields(){
			the_form = document.getElementById("lease");
			for (i=0;i < the_form.elements.length;i++){
				the_form.elements[i].value = "";
			}
		}


