$(document).ready( function( ) {
   $('#calcErrors').hide();
   $('#calcMessages').hide();
   
   $('.calcSubmit').live( 'click', function( event ) {
      var errors = 0;

      $('#calcErrors').html('');
      $('#calcMessages').html('');

      var a,l,d,p,n,c,x;
      
      l = parseInt( $("#price").val( ) );
      d = parseInt( $("#down").val( ) );
      n = parseInt($("#term").val( ) ) * 12;
      c = parseFloat($("#rate").val( ) ) / 1200;
      
      if ( isNaN( l ) )
      {
         $('#calcErrors').append( '<li>Purchase price must be a number.</li>' );
         errors++;
      }
      
      if ( isNaN( d ) )
      {
         $('#calcErrors').append( '<li>Down payment must be a number.</li>' );
         errors++;
      }
      
      if ( isNaN( n ) )
      {
         $('#calcErrors').append( '<li>Purchase term must be a number.</li>' );
         errors++;
      }
      
      if ( isNaN( c ) )
      {
         $('#calcErrors').append( '<li>Interest rate must be a number.</li>' );
         errors++;
      }
      
      a = l - d;   
         
      if ( errors == 0 )
      {
         p = ( a * ( c * Math.pow( 1 + c, n ) ) ) / ( Math.pow( 1 + c, n ) - 1 );
         
         if ( !isNaN( p ) )
         {
            x = "Monthly payment: $" + p.toFixed( 2 );
            
            $("#calcMessages").html( x );
            $("#calcMessages").show( );
         }
         else
         {
            $("#calcErrors").append( '<li>Calculation Error, please verify your entries and try again.</li>' );
            $("#calcErrors").show( );
         }
      }
      else
      {
         $('#calcErrors').show( );
      }
      
      return false;
   });
});
