function isValidFileName(filename)
{
	var tfilename = filename.toLowerCase();
	var validchars = "abcdefghijklmnopqrstuvwxyz1234567890-_.";
	
	var ndx = -1;
	ndx = tfilename.lastIndexOf('\\');
	if (ndx < 0)
		ndx = tfilename.lastIndexOf('/');
	if (ndx >= 0)
		tfilename = tfilename.substr(ndx+1);
	
	for (var ii=0; ii < tfilename.length; ii++)
	{
		var valid = false;
		
		for (var jj=0; jj < validchars.length; jj++)
			if (validchars.charAt(jj) == tfilename.charAt(ii))
				valid = true;
						
		if (!valid)
			return false;
	}

	return true;
}

// Check for white space
function hasWhiteSpace(s) 
{
     reWhiteSpace = new RegExp(/^\s+$/);
     if (reWhiteSpace.test(s)) {
        return false;
    } else {
        return true;
    }
}

function isValidEmail(controlID) {
	var errMess = "Please ensure email is in valid format.";
	var str = trimAll(document.getElementById(controlID).value);
	
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
			setControlErrorMessage(controlID, errMess);
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   setControlErrorMessage(controlID, errMess);
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   setControlErrorMessage(controlID, errMess);
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    setControlErrorMessage(controlID, errMess);
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    setControlErrorMessage(controlID, errMess);
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    setControlErrorMessage(controlID, errMess);
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    setControlErrorMessage(controlID, errMess);
		    return false
		 }
		setControlErrorMessage(controlID, '');
 		 return true					
	}
	
function isNotEmpty(controlID){
	var value = trimAll(document.getElementById(controlID).value);
	
	if (value.length == 0)
		{
		setControlErrorMessage(controlID, 'Required field.');
		return false;
		}
	else
		{
		setControlErrorMessage(controlID, '');
		return true;
		}
}


function isPassword(controlID, confirmControlID){
	var value = trimAll(document.getElementById(controlID).value);
	var len = value.length;
	
	var confirmValue = trimAll(document.getElementById(confirmControlID).value);
	
	if (len >= 6 && len <= 12)
		{
		
		if (value == confirmValue)
			{
			setControlErrorMessage(controlID, '');
			setControlErrorMessage(confirmControlID, '');
			return true
			}
		else
			{
			setControlErrorMessage(controlID, '');
			setControlErrorMessage(confirmControlID, 'Passwords must match.');
			return false
			}
		
		}
	else
		{
		setControlErrorMessage(controlID, 'Please ensure password is valid length.');
		setControlErrorMessage(confirmControlID, '');
		return false
		}
}


function CheckDate(ControlID){
	var strFormat = "mm/dd/yyyy";
	var CONTROL = document.getElementById(ControlID);
	if(!IsDate(CONTROL.value)){
		setControlErrorMessage(ControlID, "Please enter a valid date.");
		return false;
		}
	setControlErrorMessage(ControlID, "");
	CONTROL.value = FormatDate(CONTROL.value,strFormat);
	return true;
}

function IsDropDownSelected(ControlID){
	var val = document.getElementById(ControlID).options[document.getElementById(ControlID).selectedIndex].value
	if (val == "0")
		{
		setControlErrorMessage(ControlID, "Please make a selection.");
		return false;
		}
	else
		{
		setControlErrorMessage(ControlID, "");
		return true;
		}
}

function IsNumeric(ControlID){
	var neg;
	var VALUE = document.getElementById(ControlID).value;
	var res = InStr(VALUE,"-",true,0);
	if (res == 0)
		{
		neg = "-"
		}
	else
		{
		neg = "";
		}
		
	var VAL = VALUE.replace("-", "");
	
for(var ivA = 0; ivA < VAL.length;ivA ++){
if(VAL.charCodeAt(ivA) < 48 || VAL.charCodeAt(ivA) > 57){
	if(VAL.charCodeAt(ivA) != 46 && VAL.charCodeAt(ivA) != 32 && VAL.charAt(ivA) != ","){
	setControlErrorMessage(ControlID, "Please enter a valid amount.");
	return false;
	}
}																					
}
setControlErrorMessage(ControlID, "");
return true;
}

function IsValidTime(ControlID) {
// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.
var timeStr = document.getElementById(ControlID).value;
var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
setControlErrorMessage(ControlID, "Time is not in a valid format.");
//alert("Time is not in a valid format.");
return false;
}
hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];

if (second=="") { second = null; }
if (ampm=="") { ampm = null }

if (hour < 0  || hour > 23) {
setControlErrorMessage(ControlID, "Hour must be between 1 and 12.");
//alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}
if (hour <= 12 && ampm == null) {
setControlErrorMessage(ControlID, "You must specify AM or PM.");
//if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
//alert("You must specify AM or PM.");
return false;
   //}
}
if  (hour > 12 && ampm != null) {
setControlErrorMessage(ControlID, "No AM or PM for 24 hour time.");
//alert("You can't specify AM or PM for military time.");
return false;
}
if (minute<0 || minute > 59) {
setControlErrorMessage(ControlID, "Minute must be between 0 and 59.");
//alert ("Minute must be between 0 and 59.");
return false;
}
if (second != null && (second < 0 || second > 59)) {
//alert ("Second must be between 0 and 59.");
return false;
}
setControlErrorMessage(ControlID, "");
return true;
}

function setControlErrorMessage(controlID, message){
	var errControlID = controlID + "Err";
	
	var errControl = document.getElementById(errControlID);
	if (!errControl)
		alert(errControlID)
	else
	{
		errControl.innerHTML = message;
		errControl.style.display = "block";
	}
}

function resetControlErrorMessage(controlID, message){
	var errControlID = controlID + "Err";
	
	var errControl = document.getElementById(errControlID);
	if (!errControl)
		alert(errControlID)
	else
	{
		errControl.innerHTML = '';
		errControl.style.display = "none";
	}
}

function clearErrorMessages(){
	var cont = document.getElementsByClassName("error");
	if (cont && cont.length)
		for (var i=0; i<cont.length; i++)
			cont[i].innerHTML = "";
}

function processValidationResponse(dt){
	var controls = dt;//res.value.Tables[1];
	for (var i=0; i<controls.Rows.length; i++)
		{
		if (controls.Rows[i].valid == "True")
			{
			resetControlErrorMessage(controls.Rows[i].controlID,'');
			}
		else
			{
			setControlErrorMessage(controls.Rows[i].controlID,controls.Rows[i].errMessage);
			}
		}
}




