var sWorkStr=""

function isBlank( objField ) {
	var sWorkStr=""
  if( objField.type == "select" ) {
		if( objField.selectedIndex == -1 ) {
			sWorkStr = ""
		} else {
			sWorkStr = objField.options[objField.selectedIndex].value
		}
  } else {
		sWorkStr = objField.value
  }
  var iStrLen = sWorkStr.length
  var iCnt = 0
  for( iCnt = 0; iCnt < iStrLen; ++iCnt )
		if( sWorkStr.charAt( iCnt ) > " " ) return false
  return true
}
function validateYear( objField ) {
	var dteDate;
	var intThisYear;
	var intMaxYear;
	var intMinYear;
	var intEditYear;

	if( objField.value.length != 4 ) return false;
	if( isNaN( objField.value )) return false;
	dteDate = new Date();
	intThisYear = parseInt( dteDate.getFullYear(), 10 );
	intMaxYear = intThisYear + 1;
	intMinYear = 1980;
	intEditYear = parseInt( objField.value, 10 );
	if( intEditYear > intMaxYear ) return false;
	if( intEditYear < intMinYear ) return false;
	return true;
}
function validateEmail( oField ) {
    /*
   var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
   var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid
   var s = oField.value;
   if (!(!reg1.test(s) && reg2.test(s))) return false;
   if( s.indexOf("<") != -1 || s.indexOf(">") != -1 || s.indexOf(",") != -1 || s.indexOf("\\") != -1 ) return false;
   return true;
   */
   trimSpacesRight(oField);
   var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
   var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // valid
   var s = oField.value;
   if (!(!reg1.test(s) && reg2.test(s))) return false;
   if( s.indexOf(" ") != -1 || s.indexOf("<") != -1 || s.indexOf(">") != -1 || s.indexOf(",") != -1 || s.indexOf("\\") != -1 ) return false;
   return true;
}
function validateNum( oFldObj, iNbrBef, iNbrAft, bSign ) {
   var sCommaChar = ","
   var bError = false
   var iBef = 0
   var iAft = 0
   var bSgN = false
   var sNumIn = oFldObj.value
   var iCnt = 0
   var iStrLen = sNumIn.length
   for( iCnt = 0; iCnt < iStrLen; ++iCnt )
      if( sNumIn.charAt( iCnt ) > " " ) {
         if( sNumIn.charAt( iCnt ) == "$" ) {
             sNumIn = sNumIn.substr( iCnt + 1 )
         } else {
             sNumIn = sNumIn.substr( iCnt )
         }
         break
      }
   while ( iCnt = sNumIn.search( sCommaChar ) != -1 )
      sNumIn = sNumIn.replace( sCommaChar, "" )
   if( sNumIn.charAt( sNumIn.length - 1 ) == "-" ) {
      sWorkStr = "-" + sNumIn.substr( 0, sNumIn.length - 1 );
      sNumIn = sWorkStr
   }
   if( isNaN ( sNumIn )) {
      bError = true
   } else {
      var iNumVal = parseFloat( sNumIn )
      if( iNumVal < 0 && !bSign ) {
         bError = true
      } else {
         if( iNumVal < 0 ) iNumVal *= -1
         var sNumVal1 = iNumVal.toString(10)
         sNumVal2 = sNumVal1.split(".");
         if( sNumVal2.length == 1 ) sNumVal2[1]=""
         if( sNumVal2[0] == "0" ) sNumVal2[0]=""
         if( sNumVal2[0].length > iNbrBef ||
             sNumVal2[1].length > iNbrAft ) {
            bError = true
         }
      }
   }
   if( bError ) {
      return false
   }
   return true
}
function validateDate( oFldObj ) {
   var iDay="";
   var iMonth="";
   var iYear="";
   var bLeap=false;
   var bError=false;
   DaysInMonth = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
   trimSpacesRight( oFldObj );
   var inDates = oFldObj.value.split("/");
   if(inDates.length!=3) return false;
   if(inDates[0].length==1) inDates[0]="0"+inDates[0];
   if(inDates[1].length==1) inDates[1]="0"+inDates[1];
   if(inDates[2].length==2) inDates[2]="20"+inDates[2];
   var inDate=inDates[0];
   inDate+=inDates[1];
   inDate+=inDates[2];
   if(isNaN(inDate)||inDate.length!=8)
         return false;
   else {
        iDay=eval(inDate.substring(2,4))
        iMonth=eval(inDate.substring(0,2))
        iYear=eval(inDate.substring(4,8))
   }
   if(iYear % 4 == 0 && ( iYear % 100 != 0 || iYear % 400 == 0))
      bLeap=true;
   if(iMonth > 12) {
       return false;
   } else {
       if(iDay > DaysInMonth[iMonth]) {
           if(!(bLeap && iMonth == 2 && iDay == 29))
               return false;
       }
   }
   if(iYear==0) bError = true // 4 digit date of 0 entered
   if(bError) return false;
   oFldObj.value=inDates[0] + "/" + inDates[1] + "/" + inDates[2];
   return true;
}
function trimSpacesLeft( oFldObj ) {
   if(oFldObj.value.length==0) return;
   if(oFldObj.value.charAt(0) != " ") return;
   while(oFldObj.value.charAt(0)==" ")
      oFldObj.value=oFldObj.value.substr(1);  
}
function trimSpacesRight( oFldObj ) {
   if( oFldObj.value.length == 0 ) return
   if( oFldObj.value.charAt( oFldObj.value.length - 1 ) > " " ) return
   var sWorkStr = oFldObj.value
   var iIndex = sWorkStr.length
   while( oFldObj.value.charAt( iIndex - 1 ) == " " )
      sWorkStr = oFldObj.value.substr(0, iIndex-- - 1 )
   oFldObj.value = sWorkStr
}

