var whitespaces = " \t\n\r";

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isLetter(c)
{   
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit(c)
{   
	return ((c >= "0") && (c <= "9"))
}

function isWhitespaces(s)
{   
	var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (whitespaces.indexOf(c) == -1) return false;
    }
    return true;
}

function isAlphanumeric (s)

{   var i;

    if (isEmpty(s)) 
		return false;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c)) )
        return false;
    }
    return true;
}

function isOneword(s)
{
	var str;
	str = trim(s);

    for (i = 0; i < str.length; i++)
    {   
        var c = s.charAt(i);
		if (whitespaces.indexOf(c) != -1) 
			return false;
    }
    return true;

}

function isEmail(s)
{   
	if (isEmpty(s)) 
       return false;
    
    var i = 1;
    var nLength = s.length;

    while ((i < nLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= nLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < nLength) && (s.charAt(i) != ".") && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= nLength - 1) || (s.charAt(i) != ".")) return false;
    else i++;
    
    while ((i < nLength) && (s.charAt(i) != "@"))
    { i++
    }
    
    if ((i > nLength - 1)) return true;
    else return false;
}

function isInteger (s)
{   
	var i;

    if (isEmpty(s)) 
       return false;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigit(c)){
			return false;
		}
    }
    return true;
}

function isFloat (s)
{   
	var i;
    var seenDecimalPoint = false;

    if (isEmpty(s)) 
       return false;

    if (s == ".") return false;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if ((c == ".") && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)){
			return false;
		}
    }

    return true;
}

function isPhone(s)
{
	if (isEmpty(s)) 
       return false;
	
    var phonedelimiters = "-()";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
		if (isDigit(c) || (phonedelimiters.indexOf(c) != -1)) 
			continue;
		else
			return false;
    }
    return true;
}

function isValidDay(day, month, year)
{
	if(month == 2)
	{
		if(year%4 == 0)
		{
			if (year%100 == 0)
			{
				if (year%400 == 0)
					if(day > 29) return false;
				else
					if(day > 28) return false;
			}
			else
			{
				if(day > 29) return false;
			}
		}
		else
		{
			if(day > 28) return false;
		}
	}
	else 
	{
		if(month==4 ||month==6 || month==9 || month==11) 
		{
			if(day > 30) return false;
		}
	}
	
	return true;
}

function CheckBlank(field, strMessage)
{
	if (field)
	{
		if (isWhitespaces(field.value))
		{
			alert (strMessage);
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function CheckPhone(field, strMessage, bRequired)
{
	if (field)
	{
		if (!bRequired)
		{
			if (isWhitespaces(field.value))
			{
				return true;
			}
		}
		
		if (!isPhone(field.value))
		{
			alert (strMessage);
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function CheckEmail(field, strMessage, bRequired)
{
	if (field)
	{
		if (!bRequired)
		{
			if (isWhitespaces(field.value))
				return true;
		}

		if (!isEmail(field.value))
		{
			alert (strMessage);
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function CheckAlphanumeric(field, strMessage, bRequired)
{
	if (field)
	{
		if (!bRequired)
		{
			if (isWhitespaces(field.value))
				return true;
		}

		if (!isAlphanumeric(field.value))
		{
			alert (strMessage);
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function checkInteger(field, strMessage, bRequired)
{
	if (field)
	{
		if (!bRequired)
		{
			if (isWhitespaces(field.value))
				return true;
		}

		if (!isInteger(field.value))
		{
			alert (strMessage);
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function checkFloat(field, strMessage, bRequired)
{
	if (field)
	{
		if (!bRequired)
		{
			if (isWhitespaces(field.value))
				return true;
		}

		if (!isFloat(field.value))
		{
			alert (strMessage);
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function rnd2Dec(anynum) {
	if (isFloat(anynum) || isInteger(anynum))
	{
		anynum = "" + eval(anynum)
		var intNum = parseInt(anynum)

		intNum = Math.abs(intNum)

		var intStr = "" + intNum
		var decNum = ((Math.abs(parseFloat(anynum) - parseInt(anynum))) * 100)
		var decStr = "" + Math.abs(Math.round(decNum))

		if (decStr.length > 2) {decStr = decStr.substring(0,2)}

		while (decStr.length < 2) {decStr = "0" + decStr}
			retval = intStr + "." + decStr
	    return retval
	}
	return anynum;
}

function SelAll(frm)
{
	for (var i=0;i<frm.elements.length;i++)
	{
		var e = frm.elements[i];
		if ((e.name != 'chkSelectAll') && (e.type=='checkbox'))
			e.checked = frm.chkSelectAll.checked;
	}
}

function hoverImage(obj, strImage)
{
	obj.src = strImage;
}

