function checkCVV(input){
        var validformat=/^\d{3}$/;
        if (!validformat.test(input)){
                return false;
        } else {
                return true;
        }
}


function checkDate(input){
        var validformat=/^\d{2}\/\d{4}$/;
        if (!validformat.test(input)){
                return false;
        } else {
                return true;
        }
}

//expects input in format mm/dd/yyyy
function checkdateformat(thedate){
var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
var returnval=false
if (!validformat.test(thedate))
return false;
else{ //Detailed check for valid date ranges
var monthfield=thedate.split("/")[0]
var dayfield=thedate.split("/")[1]
var yearfield=thedate.split("/")[2]
var dayobj = new Date(yearfield, monthfield-1, dayfield)
if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
return false
else
returnval=true
}
if (returnval==false) input.select()
return returnval
}

function validEmail(email)
{
// a very simple email validation checking.
// you can add more complex email checking if it helps
    if(email.length <= 0)
        {
          return true;
        }
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null)
      {
            var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
            if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

function isEmpty(str){
//	var str;
	if(str == ''){
		return true;
	} else {
		return false;
	}
}

function inValidChars(txt,nogreedy){
//	var nogreedy;
//	var txt;
	

	if(nogreedy == ''){
		var iChars = "£!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
	} else {
		var iChars = "+=-[]\\;,./{}|<>?";
	}
	  for (var i = 0; i < txt.length; i++) {
	  	if (iChars.indexOf(txt.charAt(i)) != -1) {
  	        return true;
  		}
  	   }
	return false;

}

function jpCode(str){
	
	i = str.search(/<script/i);
	j = str.search(/javascript:/i);
	k = str.search(/<\/script>/i);		
	l = str.search(/<\?/i);
	m = str.search(/\?>/i);
	n = str.search(/eval\(/i);

	if(i > -1 || j > -1 || k > -1 || l > -1 || m > -1 || n > -1){
		return true;
	} else {
		return false;
	}
	
}

function checkLuhn(input) {
        var sum = 0;
        var numdigits = input.length;
        var parity = numdigits % 2;
        for(var i=0; i < numdigits; i++) {
                var digit = parseInt(input.charAt(i))
                if(i % 2 == parity) digit *= 2;
                if(digit > 9) digit -= 9;
                sum += digit;
        }
        return (sum % 10) == 0;
}


function isNumeric(strString){
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  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;
}



