// ****************************[ Base Utility Routines ]********************************
// DHO 7/3/00  - validate fields for loan apps
// src="calcsutil.js"
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// whitespace characters
var whitespace = " \t\n\r";
// decimal point character differs by language and culture
var decimalPointDelimiter = "."
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in US phone numbers
var validUSPhoneChars = digits + phoneNumberDelimiters;
var errorField;
var enterDate, errorMsg, month, weekDay;
var doneit = 0;
var pr = (window.print) ? 1 : 0;

// *****************************[ FUNCTIONS ]**********************************
function printpage() {
	if (doneit){
		if (pr || NS){ 
    		window.print()
		} else {
		    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
			document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		    WebBrowser1.ExecWB(6, 2);
			WebBrowser1.outerHTML = "";  
		}
	} else {
		alert("Calculation has not been solved yet")
	}
return true;
}

function cool_f(s) {
var floater = parseFloat(s)
if (isNaN(floater)) {
	return false
} else {
	if (floater > 0) { 
        	return true
	} else {
		return false
     	}
}
} // end of function cool_f


function cool_i(s) {
var inter = parseInt(s)
if (isNaN(inter)) {
	return false
} else {
	if (inter > 0 ) { 
        	return true
	} else {
		return false
	}
}
} // end of function cool_i

function isPositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isPositiveInteger.arguments.length > 1)
        secondArg = isPositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) > 0) ) );
}

function isEmpty(s) { return ((s == null) || (s.length == 0)) }

function isSignedInteger (s)

{   if (isEmpty(s)) 
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];

        // skip leading + or -
      //  if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
      //     startPos = 1;    
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

function isIntegerInRange (s, a, b) {   
if (isEmpty(s)) 
       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
       else return (isIntegerInRange.arguments[1] == true);

    // Catch non-integer strings to avoid creating a NaN below,
    // which isn't available on JavaScript 1.0 for Windows.
    if (!isInteger(s, false)) return false;

    // Now, explicitly change the type to integer via parseInt
    // so that the comparison code below will work both on 
    // JavaScript 1.2 (which typechecks in equality comparisons)
    // and JavaScript 1.1 and before (which doesn't).
    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}

function isBoolean(astr) 
//astr is the object to check
{ 
     var isit='' 
     astr +=''
     if (astr == null || astr == '') isit= false
     else
          {
                    astr = astr.substring(0,1)     // just get first
                                                       
                    astr = astr.toUpperCase()     // make it caps
                    if (astr != "T" && astr != "F") 
                         {
                              // unacceptable value entered
                              isit = false
                         }
                    else
                         //returns value which caller can test for true/
                            false
                         //without having to do substrings, etc.
                         isit= astr
          }
     //return is mixed:  can be either a boolean or a string.
     return isit
}


function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function FC(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) num = "0";
	cents = Math.floor((num*100+0.5)%100); 
	num = Math.floor(num).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 (num + '.' + cents); 
}

function Strip(myString, stripCharacter)
{
  
    // Handle the error if stripCharacter is too long
    if (stripCharacter.length > 1)
    {
        alert("Strip error: '" + stripCharacter + "' is more than one character long.");
        return myString;
    }

    // Make a copy of the string to work with
    newString = myString;

    // Cycle through each character
    for (var i = 1; i <= myString.length; i++)
    {
        // Look at this character
        if (newString.charAt(myString.length - i) == stripCharacter)
        {
            // Remove this character
            newString = newString.substring(0, myString.length - i) + newString.substring(myString.length - i + 1, newString.length);
        }
    }

    // Return the stripped string
    return newString; 
}



