function fiscalYear( iMonth, iYear ) {
    return ( eval( iYear ) + (( eval( iMonth ) > 6 ) ? 1 : 0 ) );
}

function roundToDec( iNumber, iPlaces ) {
	  return Math.round( iNumber * Math.pow( 10, iPlaces  ) ) / Math.pow( 10, iPlaces  );
}

function checkDate( ckMonth, ckDay, ckYear ) {
          if ( !validDate( ckMonth, ckDay, ckYear ) )
              alert("Invalid date");
}

function validDate( vDMonth, vDDay, vDYear ) {
	  if ( ( vDMonth == 1 ) || ( vDMonth == 3 ) || ( vDMonth == 5 ) 
	  || ( vDMonth == 7 ) || ( vDMonth == 8 ) || ( vDMonth == 10 )
	  || ( vDMonth == 12 ) )
	   	  return (true);

	  if ( vDMonth != 2 )
	  {
	   	   if ( vDDay > 30 )
		       return (false);
		   else
		       return (true);
      }

	  <!-- Must be February -->
	  if ( vDDay > 29 )
	      return (false);

	  if ( vDDay > 28 )    <!-- Must be leap year -->
	  { 
          if ( vDYear % 4 != 0 )
			      return (false);
		  else if ( ( vDYear % 100 == 0 ) && ( vDYear % 400 != 0 ) )
			      return (false);		   	   
	  }

	  return (true);
}

function rightDecPad( iNumber, iPlaces, iChar ) {
 	  var numString = "" + iNumber;
	  var dec = numString.indexOf(".");
	  numString = ( ( dec > -1) ? numString : numString + "." ) + replicate( iChar, iPlaces );
	  return ( numString.substring( 0, numString.indexOf( "." ) + iPlaces + 1 ) ); 
}

function leftPad( iNumber, iPlaces, iChar ) {
 	  var numString = "" + iNumber;
	  if ( numString.length > ( iPlaces - 1) )
	      return ( numString );
	  return (  replicate( iChar, iPlaces - numString.length ) + numString ); 
}

function commaFormat( iNumber, iPlaces ) {
 	  var numString = rightDecPad( iNumber, iPlaces, "0" );
	  var dec = numString.indexOf(".");
	  var commasOK = "";
	  var needCommas = "";
	  if ( dec < 4 )
	      commasOK = numString;
	  else {
	      commasOK = numString.substr( dec );
		  needCommas = numString.substr( 0, dec );
	  }
	  var len = needCommas.length;
	  while ( len > 3 ) {
	      commasOK = "," + needCommas.substr( len - 3 ) + commasOK;
		  needCommas = needCommas.substr( 0, len - 3 );
		  var len = needCommas.length;
	  }
	      
	  return ( needCommas + commasOK ); 
}

function replicate( rChar, rReps ) {
    var count = 0;
	var addChar = "";
	if ( rReps < 1 )
	    return rChar;
	else
	{
        for( count = 0; count < rReps; count++)
		    addChar += rChar;
		return ( addChar );        	    
	}
}

function valNum( iNumber ) {
    var validChar = "0123456789.";
    var returnNumber = ""; 
	var tempString = "";
    for ( var count = 0 ; count < iNumber.length ; count++) {
	    tempString = iNumber.substr( count, 1 );
        returnNumber = returnNumber + ( ( validChar.indexOf( tempString ) > -1 ) ? tempString : "" );
		}
	return ( ( returnNumber.length > 0 ? returnNumber : "0" ) );
}

function stripDec( iNumber ) {
    var returnNumber = "" + iNumber; 
	var dec = returnNumber.indexOf( "." );
	if ( dec > -1 )
	    return ( returnNumber.substr( 0, dec ) + returnNumber.substr( dec + 1 ) );
	return ( returnNumber );
}

function newWindow(url) {
   var MSBrowser = ( navigator.userAgent.indexOf("MSIE") != -1 );
   if ( !MSBrowser )
       FASCalcWindow = window.open(url, 'calcWin');
   else
       FASCalcWindow = window.open(url, 'calcWin', 'toolbar=no, scrollbars=no, statusbar=yes, width=350, height=425, resizable=yes, left=20, top=20)');
   FASCalcWindow.focus();
}

