
function isEmpty(str)
{
	if (str+"" == "undefined" || str+"" == "null" || str+"" == "")	
		return true
	else return false;
}

function isSignedInt(numstr)
{
	if ((numstr.charAt(0) == "-") || (numstr.charAt(0) == "+"))
		return isInt(numstr.substring(1, numstr.length))
	else return isInt(numstr);
}

function isInt(numstr)
{
	var isValid = true;
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;
	numstr += "";	
	for (i = 0; i < numstr.length; i++)
		{
    		if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9")))
			{
       			isValid = false;
       			break;
			}
      	}
   	return isValid;
}

function isSignedNum(numstr)
{
	if ((numstr.charAt(0) == "-") || (numstr.charAt(0) == "+"))
		return isNum(numstr.substring(1, numstr.length))
	else return isNum(numstr);
}

function isNum(numstr)
{
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;

	var isValid = true;
	var decCount = 0;		// number of decimal points in the string

	// fix for different settings:
	for (i = 0; i < numstr.length; i++)
	if (numstr.charAt(i) == nonDecimalPoint)
		return false;
	// replace comma to dot or vice versa
	numstr=numstr.replace(decimalPoint,nonDecimalPoint);
	numstr += "";	
	for (i = 0; i < numstr.length; i++) {
		if (numstr.charAt(i) == nonDecimalPoint)
			decCount++;
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
				(numstr.charAt(i) == nonDecimalPoint))) {
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == nonDecimalPoint && numstr.length == 1) ||
			  (numstr.charAt(i) == nonDecimalPoint && decCount > 1)) {
       	isValid = false;
       	break;
      }         	         	       
   }
   	return isValid;
}

function isDate(dateStr)
{
	var datePat = /^(\d{1,2})(.)(\d{1,2})\2(\d{4})$/; // dots as delimiters
	
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null)
		{
		alert(ERR_DateBad)
		return false;
		}
	day = matchArray[1]; // parse date into variables
	month= matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12) // check month range
		{ 
		alert(ERR_ProperMonth);
		return false;
		}
	if (day < 1 || day > 31)
		{
		alert(ERR_ProperDay);
		return false;
		}
	if ((month==4 || month==6 || month==9 || month==11) && day==31)
		{
		alert(ERR_MonthBad.replace(/\*/,month))
		return false
		}
	if (month == 2) // check for february 29th
		{
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap))
			{
				var ERR_Msg=ERR_FebruaryBad.replace(/\*1/,year);
				ERR_Msg=ERR_Msg.replace(/\*2/,day);
				alert(ERR_Msg);
			return false;
		   }
		}
	return true;  // date is valid
}

function IsEmail(emailAdress)
{
      i   = emailAdress.indexOf("@");
      j   = emailAdress.indexOf(".",i);
      k   = emailAdress.indexOf(",");
      kk  = emailAdress.indexOf(" ");
      jj  = emailAdress.lastIndexOf(".")+1;
      len = emailAdress.length;
      if ((i>0) && (j>(i+1)) && (k==-1) && (kk==-1) && (len-jj >=2) && (len-jj<=5)) return true
      else return false;
}

function isFloat(numb)
{
 numb1 = String(numb);
 if(decimalPoint==",")
  numb2 = numb1.replace(decimalPoint,nonDecimalPoint);
 else
  numb2 = numb1;
 return !isNaN(parseFloat(numb2));
}



