var defaultEmptyOK = false;
var daysInMonth = makeArray(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;   // must programmatically check this
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;
function jLtrim(strtext){
	if (strtext.length == 0) return strtext;
	var ret
	var ik
	for (i=1; i<= strtext.length ;i++){
		ik = strtext.charAt(i - 1);
		if(ik != " "){
			break;
		}
	}
	//alert(ik);
	ret = strtext.substring(i -1, strtext.length );
	return ret;
}
function jRtrim(strtext){
	if (strtext.length == 0) return strtext;
	var ret
	var ik
	for (i=strtext.length; i >= 1 ;i--){
		ik = strtext.charAt(i - 1);
		if(ik != " "){
			break;
		}
	}
	//alert(ik);
	ret = strtext.substring(0,  i );
	return ret;
}
function jTrim(strtext)
{
	var ret
	ret = jLtrim(strtext);
	ret = jRtrim(ret);
	return ret;
}

function makeArray(n) {
   for (var i = 1; i <= n; i++) {
      this[i] = 0
   } 
   return this
}
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isNonnegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s,10) >= 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];
           startPos = 0;    
        return (isInteger(s, secondArg))
    }
}

function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isDate (year, month, day)
{   // catch invalid years (not 2- or 4-digit) and invalid months and days.
    if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;

    // Explicitly change type to integer to make code work in both
    // JavaScript 1.1 and JavaScript 1.2.
    var intYear = parseInt(year,10);
    var intMonth = parseInt(month,10);
    var intDay = parseInt(day,10);

    // catch invalid days, except for February
    if (day > daysInMonth[month])
		return false;
    if (intMonth ==2)
    {
		if (intYear/4 == GetInteger(intYear/4))
		{
			if (intDay > 29) return false; 
		}
		else
		{
			if (intDay > 28) return false; 
		}
	}
    return true;
}
function GetInteger(n)
{	var v = n - 0.5;
	v = Math.round(v);
	return v;
}



function isIntegerInRange (s, a, b)
{   if (isEmpty(s)) 
       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
       else return (isIntegerInRange.arguments[1] == true);

    if (!isInteger(s, false)) return false;

    var num = parseInt (s,10);
    return ((num >= a) && (num <= b));
}

function isYear (s)
{   if (isEmpty(s)) 
       if (isYear.arguments.length == 1) return defaultEmptyOK;
       else return (isYear.arguments[1] == true);
    if (!isNonnegativeInteger(s)) return false;
    return ((s.length == 2) || (s.length == 4));
}

function isMonth (s)
{   if (isEmpty(s)) 
       if (isMonth.arguments.length == 1) return defaultEmptyOK;
       else return (isMonth.arguments[1] == true);
    return isIntegerInRange (s, 1, 12);
}


function isDay (s)
{   if (isEmpty(s)) 
       if (isDay.arguments.length == 1) return defaultEmptyOK;
       else return (isDay.arguments[1] == true);   
    return isIntegerInRange (s, 1, 31);
}
function PutDate(obj)
{
//	var obj = document.frmProd;
	var d = new Date();
	var y = d.getYear()
	var m = d.getMonth() + 1;
	var d = d.getDate();
	obj.Year.value = y
	obj.month.selectedIndex = m;
	obj.day.selectedIndex = d;
}
function isMoney(s)
{
	if (isEmpty(s)) 
       if (isMoney.arguments.length == 1) return defaultEmptyOK;
       else return (isMoney.arguments[1] == true);
    return isFloat (s, false);
return true;
}
function isFloat (s)

{   var i;

    if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigitFloat(c)) return false;
    }
	var ss = s.split('.')
	if (ss.length > 2)
		return false;
    return true;
}

function isDigitFloat (c)
{   return((c >= "0") && (c <= "9") || (c == "."))
}