var defaultListItemIndex = 0;

//Old test Expression var emailExp	= new RegExp("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)+\\w$");
var emailExp	= new RegExp("^([^\\.\\s@]+[\\.]*)+@[^\\.\\s\\,]+([\.][^\\.\\s\\,]+)+$");
var integerExp	= new RegExp("^^[+\\-]?([0-9]|([0-9][,][0-9][0-9]))*$");
var decimalExp	= new RegExp("^[+\\-]?([0-9]|([0-9][,][0-9][0-9]))*([.]?[0-9]+)?$");
//var PhoneNumber	= new RegExp("^([\\+]?[0-9]{2}( )?)?(( )?[\\(]( )?[0-9]{0,3}( )?[\\)]( )?)?[0-9]{7,10}$|^([\\+]?[0-9]{2}( )?)?[0-9]{0,3}( )?[0-9]{7,10}$");
var PhoneNumber	= new RegExp("^([\\+]?[0-9]{2}( )?)?(( )?[\\(]( )?[0-9]{0,4}( )?[\\)]( )?)?[0-9]{7,10}$|^([\\+]?[0-9]{2}[ -]?)?[0-9]{0,3}[ -]?[0-9]{0,4}[ -]?[0-9]{4,6}$");  
    
function testPhoneNumber(NumberToCheck,required)
{
    if (NumberToCheck.length > 0)
		if (PhoneNumber.test(NumberToCheck))
			return "";
		else
			return " is not in the correct format. Please enter digits only ### #### ####";
	else
		if (required == true)
			return " is required";
		else
			return "";        
}

function testEmailAddress(EmailAddressToTest,required)
{
	if (EmailAddressToTest.length > 0)
		if (emailExp.test(EmailAddressToTest))
			return "";
		else
			return " is not in the correct format";
	else
		if (required == true)
			return " is required";
		else
			return "";
}

function testString(StringToTest,StringMustNotEquel,required)
{
	if (StringToTest.length > 0)
		if (StringToTest != StringMustNotEquel)
			return "";
		else
			return " is invalid";
	else
		if(required == true)
			return " is required";
		else
			return "";
}

function testInteger(IntergerStringToTest,required)
{
	if (IntergerStringToTest.length > 0)
		if (integerExp.test(IntergerStringToTest))
			return "";
		else
			return " is not in the correct format.";
	else
		if(required == true)
			return " is required.";
		else
			return "";
}

function testDecimal(DecimalStringToTest,required)
{
	if (DecimalStringToTest.length > 0)
		if (decimalExp.test(DecimalStringToTest))
			return "";
		else
			return " is not in the correct format.";
	else
		if (required == true)
			return " is required.";
		else 
			return "";
}

function itemSelected(listBox)
{
	if ((listBox.selectedIndex == -1))
		return " must be selected.";
	else
		return "";
}

function itemValueNot(listBox,value)
{
	if (listBox.options[listBox.selectedIndex].value == value)
		return " must be selected.";
	else
		return "";
}

function testDate(day,month,year)
{
	var minDay = 1,
		maxDay = 28;
	
	switch(month){
		case '2':
			maxDay = 28;
			break;
		case '4':
			maxDay = 30;
			break;
		case '6':
			maxDay = 30;
			break;
		case '9':
			maxDay = 30;
			break;	
		case '11':
			maxDay = 30;
			break;
		case '1':
			maxDay = 31;
			break;
		case '3':
			maxDay = 31;
			break
		case '5':
			maxDay = 31;
			break;
		case '7':
			maxDay = 31;
			break;
		case '8':
			maxDay = 31;
			break;
		case '10':
			maxDay = 31;
			break;
		case '12':
			maxDay = 31;
			break;
	}
	
	if (maxDay == 28){
		if ( ((year % 4) == 0) && ( ((year % 100) != 0) || ((year % 400) == 0) ))
			maxDay = 29;
	}
	
	if ((day < minDay) || (day > maxDay))
		return " day value is out of range.";
	else
		return "";
}

function limitChars(controlName,counterControlName,maxLength)
{
		var control = window.document.getElementById(controlName);
		
		if (control.value == null)
			control.value = "";
	
		if (control.value.length > maxLength)
		{
			control.value = control.value.substr(0,maxLength);
		}
		
		window.document.getElementById(counterControlName).value = maxLength - control.value.length;
}
