﻿<!--
function IsInteger(val)
{
	var num, exp;
   	exp = /^\s*[-\+]?\d+\s*$/;
   	if (val.match(exp) == null) 
  		return false;
   	num = parseInt(val, 10);
   	return (isNaN(num) ? false : true);
}

function IsDouble(val)
{
	var num = parseFloat(val.replace(/[^0-9]+/g,''));
    return (isNaN(num) ? false : true);
}

function IsCurrency(val)
{
	return RegExp(/^-?\$?[0-9\,]+(\.\d{2})?$/).test(String(val).replace(/^\s+|\s+$/g, ""));
}

function IsDate(val)
{
	var num, cleanInput, m, exp;
    var dateorder = "mdy";
	var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$");
	m = val.match(yearFirstExp);
    var day, month, year;
    if (m != null && (m[2].length == 4 || dateorder == "ymd"))
	{
    	day = m[6];
		month = m[5];
   		year = (m[2].length == 4) ? m[2] : TGetFullYear(parseInt(m[3], 10))
   	}
   	else
	{
   		if (dateorder == "ymd")
		{
       		return false;		
   		}						
   		var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
   		m = val.match(yearLastExp);
   		if (m == null)
		{
       		return false;
   		}
   		if (dateorder == "mdy") 
		{
      		day = m[3];
      		month = m[1];
   		}
   		else
		{
       		day = m[1];
       		month = m[3];
   		}
   		year = (m[5].length == 4) ? m[5] : TGetFullYear(parseInt(m[6], 10));
  	}
  	month -= 1;
  	var date = new Date(year, month, day);
  	return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? true : false;
}

function IsOnlyNumbers(vValue)
{
	var ValidNumbers = "0123456789";

	for(var x = 0; x < vValue.length; x++)
	{
		if(ValidNumbers.indexOf(vValue.charAt(x)) == -1)
		{
			return false;
		}
	}
	return true;
}

function TGetFullYear(year) 
{
	var cutoffyear = "2029";
	var century="2000";
	return (year + parseInt(century)) - ((year < cutoffyear) ? 0 : 100);
}

function LTrim(str)
{
	// Remove leading blanks
	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(0)) != -1)
	{
		// We have a string with leading blank(s)...
		var j=0, i = s.length;

		// Iterate from the far left of string until we
		// don't have any more whitespace...
		while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
			j++;

		// Get the substring from the first non-whitespace
		// character to the end of the string...
		s = s.substring(j, i);
	}
	return s;
}

function RTrim(str)
{
	// Remove trailing blanks from our string.
	var whitespace = new String(" \t\n\r");

	var s = new String(str);

	if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
	{
		// We have a string with trailing blank(s)...
		var i = s.length - 1;       // Get length of string
		// Iterate from the far right of string until we
		// don't have any more whitespace...
		while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
			i--;

		// Get the substring from the front of the string to
		// where the last non-whitespace character is...
		s = s.substring(0, i+1);
	}

	return s;
}

function Trim(str)
{
	return RTrim(LTrim(str));
}

function DateDiffDays(sStartDate, sEndDate)
{
	return((Date.parse(sStartDate) - Date.parse(sEndDate))/1000/60/60/24);
}

function ValidSqlDateRange(sDate)
{
	if(DateDiffDays(sDate, "1/1/1753") < 0 || DateDiffDays(sDate, "12/31/9999") > 0)
		return false;
	else
		return true;	
}

function formatCurrency(args)
{
	// round to 2 decimals if cents present
	args = (Math.round(args * 100) / 100).toString().split('.');
	var	myNum = args[0].toString();
	var	fmat = new Array();
	var	len = myNum.length;
	var	i = 1;
	var	deci = '.';
	
	for(i; i < len + 1; i++) 
		fmat[i] = myNum.charAt(i-1);

	fmat = fmat.reverse();
	
	for(i = 1; i < len; i++)
	{
		if(i % 3 == 0)
		{
			fmat[i] += ',';
		}
	}
	
	var val = fmat.reverse().join('') + ( args[1] == null ? deci + '00' : (deci + args[1]));
	return '$' + val;
}

function IsEmail(val)
{
   	var exp = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
   	
   	if(val.match(exp) == null) 
  		return false;
  	else
  		return true;
}

function DaysInMonth(year, month)
{
	if(month == 4 || month == 6 || month == 9 || month == 11)
		return 30;

	if (month == 2 && (year/4) != Math.floor(year/4))
		return 28;

	if (month == 2 && (year/4) == Math.floor(year/4))
		return 29;

	return 31;
}

function GetEventKeyCode(evnt) 
{
   return evnt.keyCode ? evnt.keyCode : evnt.charCode ? evnt.charCode : evnt.which ? evnt.which : void 0;
}


function ValidateMaxLength(evnt, str, maxLength) 
{
    var evntKeyCode = GetEventKeyCode(evnt);
        
    // Ignore keys such as Delete, Backspace, Shift, Ctrl, Alt, Insert, Delete, Home, End, Page Up, Page Down and arrow keys
    var escChars = ",8,17,18,19,33,34,35,36,37,38,39,40,45,46,";

    if (escChars.indexOf(',' + evntKeyCode + ',') == -1) 
    {
        if (str.length >= maxLength) 
        {
            alert("You cannot enter more than " + maxLength + " characters.");
            return false;
        }
    }
    return true;
}

function ShowTextBoxLength(str, ctrl)
{
    document.getElementById(ctrl).innerText = str.length;
}
//-->
