// email

function checkEmail (strng) {
	var regex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	return regex.test(strng);
}

function checkURL(argvalue) {

  if (argvalue.length == 0)
    return false;
  if (argvalue.indexOf(" ") != -1)
    return false;
/*
  else if (argvalue.indexOf("http://") == -1)
    return false;
*/
  else if (argvalue == "http://")
    return false;
  else if (argvalue.indexOf("http://") > 0)
    return false;

  argvalue = argvalue.substring(7, argvalue.length);
  if (argvalue.indexOf(".") == -1)
    return false;
  else if (argvalue.indexOf(".") == 0)
    return false;
  else if (argvalue.charAt(argvalue.length - 1) == ".")
    return false;

  if (argvalue.indexOf("/") != -1) {
    argvalue = argvalue.substring(0, argvalue.indexOf("/"));
    if (argvalue.charAt(argvalue.length - 1) == ".")
      return false;
  }

  if (argvalue.indexOf(":") != -1) {
    if (argvalue.indexOf(":") == (argvalue.length - 1))
      return false;
    else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
      return false;
    argvalue = argvalue.substring(0, argvalue.indexOf(":"));
    if (argvalue.charAt(argvalue.length - 1) == ".")
      return false;
  }

  return true;

}

// phone number - strip out delimiters

function checkNumber (strng) {
  var valid = true;
  if (strng == "") {
     valid = false;
  }
  else {
    var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
    if (isNaN(parseInt(stripped))) {
       valid = false;

    }
  }
  return valid;
}

function isNumeric(strString)
{
  //  check for valid numeric strings
  var strValidChars = "0123456789.-+ ";
  var strChar;
  var blnResult = true;

  if (strString.length == 0) return true;

  //  test strString consists of valid characters listed above
  for (i = 0; i < strString.length && blnResult == true; i++)
  {
    strChar = strString.charAt(i);
    if (strValidChars.indexOf(strChar) == -1)
    {
       blnResult = false;
    }
  }
  return blnResult;
}

function isAlphaNumeric(val)
{
	if (val.match(/^[a-zA-Z0-9]+$/)) {
		return true;
	} else {
		return false;
	} 
}




// password - between 6-8 chars, uppercase, lowercase, and numeral

function checkPassword (strng1, strng2, min, max) {
  var valid = true;
  if (strng1 == "" || strng2 == "") {
     valid = false;
  }

  var illegalChars = /[\W_]/; // allow only letters and numbers

  if (strng1 != strng2) {
    valid = false;
  }
  else if ((strng1.length < min) || (strng1.length > max)) {
    valid = false;
  }
  else if (illegalChars.test(strng1)) {
    valid = false;
  }

  return valid;
}


// username - 4-10 chars, uc, lc, and underscore only.

function checkUsername (strng) {
  var valid = true;
  if (strng == "") {
    valid = false;
  }

  var illegalChars = /\W/; // allow letters, numbers, and underscores
  if ((strng.length < 4) || (strng.length > 50)) {
     valid = false;
  }
  else if (illegalChars.test(strng)) {
    valid = false;
  }
  return valid;
}

// numeric Value

function checkValue (val, min, max) {
	var valid = true;

    if ((val < min) || (val > max)) {
    	valid = false;
    }
    return valid;
}

// length.

function checkLength (strng, min, max) {
  var valid = true;

  if ((strng.length < min) || (strng.length > max)) {
    valid = false;
  }
  return valid;
}

// non-empty textbox

function isEmpty(strng) {
  var valid = false;
  if (strng == undefined || strng.length == 0) {
     valid = true;
  }
  return valid;
}

// was textbox altered

function isDifferent(strng) {
var error = "";
  if (strng != "Can\'t touch this!") {
     error = "You altered the inviolate text area.\r\n";
  }
return error;
}

// exactly one radio button is chosen

function checkRadio(checkvalue) {
var error = "";
   if (!(checkvalue)) {
       error = "Please check a radio button.\r\n";
    }
return error;
}

// valid selector from dropdown list

function checkDropdown(choice) {
	var valid = true;
    if (choice == 0) {
    	valid = false;
    }
    return valid;
}

function checkSpaces(strng) {
var error = true;
    if (strng.indexOf(' ') > -1) {
      error = false;
    }
return error;
}

function checkFilename(strng, name) {
var error = "";
var objRegExp  =  /(^[a-z_0-9A-Z]+$)/;
    if (!objRegExp.test(strng)) {
      error = name+" contains invalid characters, a-z A-Z 0-9 and _ allowed.\r\n";
    }
return error;
}

function extract(what) {
    if (what.indexOf('/') > -1)
        answer = what.substring(what.lastIndexOf('/')+1,what.length);
    else
        answer = what.substring(what.lastIndexOf('\\')+1,what.length);
    return answer;
}

function validDob(legalage, year, month, day) {
    
    if (year == 0 || month == 0 || day == 0) {
        return false;
    }

    var currdate = new Date();
    var minyear = currdate.getFullYear() - legalage;
    
    if (year > minyear) {
        return false;
    }
    
    var mydate = new Date();
    mydate.setFullYear(year, month, day);            
    currdate.setFullYear(minyear);
            
    if ((currdate - mydate) < 0){
        return false;
    }
    return true;
}

