
function checkThisForm(formname, errors) {
  if (errors == '') {
    document.forms[formname].submit();
  } else {
    alert(errors);
  }
}

function checkAccept(formname, checkboxname, displaytext) {
  var localerror = '';
  if(
     eval('document.'+formname+'.'+checkboxname+'.checked') == false
     ) {
    localerror =  '- '+displaytext+'\n';
  } else localerror = '';
  return localerror;
}

function checkJPG(formname, textboxname, displaytext) {
  var localerror = '';
  var updImg = Right(eval('document.'+formname+'.'+textboxname+'.value'), 3);
  if(updImg.toLowerCase() != 'jpg') {
    localerror =  '- '+displaytext+' is Required.\n';
  } else localerror = '';
  return localerror;
}

function Right(str, n){
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else {
		var iLen = String(str).length;
		return String(str).substring(iLen, iLen - n);
	}
}

function checkFunds(formname, checkboxname1, checkboxname2, checkboxname3, checkboxname4, checkboxname5, checkboxname6, textboxname, displaytext) {
  var localerror = '';
  if(
     (
     eval('document.'+formname+'.'+checkboxname1+'.checked') == false &&
     eval('document.'+formname+'.'+checkboxname2+'.checked') == false &&
     eval('document.'+formname+'.'+checkboxname3+'.checked') == false &&
     eval('document.'+formname+'.'+checkboxname4+'.checked') == false &&
     eval('document.'+formname+'.'+checkboxname5+'.checked') == false &&
     eval('document.'+formname+'.'+checkboxname6+'.checked') == false
     )
     ||
     (
     eval('document.'+formname+'.'+checkboxname6+'.checked') == true &&
     Trim(eval('document.'+formname+'.'+textboxname+'.value')) == ''
     )
     ) {
    localerror =  '- '+displaytext+'\n';
  } else localerror = '';
  return localerror;
}

function checkPhone(formname, textboxname, displaytext) {
  var localerror = '';
  var inputString = eval('document.'+formname+'.'+textboxname+'.value');
  var inputString2 = inputString.replace(/[\(\)\-\+\s]/g, '');
  if(isNaN(inputString2)) {
    localerror =  '- '+displaytext+' should consist of numbers only.\n';
  } else localerror = '';
  return localerror;
}

function checkUSPhone(formname, textboxname, displaytext) {
    var localerror = '';
    var inputString = eval('document.'+formname+'.'+textboxname+'.value');
    var inputString2 = inputString.replace(/[\(\)\-\+\s]/g, '');
    if(isNaN(inputString2)) {
      localerror =  '- '+displaytext+' should consist of numbers only.\n';
    } else
    if(inputString2.length < 10) {
      localerror =  '- '+displaytext+' should consist of at least 10 digits.\n';
    } else
      localerror = '';
    return localerror;
}

function checkText(formname, textboxname, displaytext) {
  var localerror = '';
  if(Trim(eval('document.'+formname+'.'+textboxname+'.value'))=='') {
    localerror =  '- '+displaytext+' is Required.\n';
  } else localerror = '';
  return localerror;
}


function checkDropdown(formname, textboxname, displaytext) {
  var localerror = '';
  if(Trim(eval('document.'+formname+'.'+textboxname+'.value'))=='Select') {
    localerror =  '- '+displaytext+' is Required.\n';
  } else localerror = '';
  return localerror;
}

function checkEmail(formname, textboxname, displaytext) {
  var localerror = '';
  reg = /(\w+\S*)@(\w+\S*)([.]{1}\w{2,3}$)/
  if(reg.test(Trim(eval('document.'+formname+'.'+textboxname+'.value')))) {
    localerror = '';
  } else localerror =  '- '+displaytext+'\n';
  return localerror;
}

function checkNum(formname, textboxname, displaytext) {
  var localerror = '';
  if(isNaN(eval('document.'+formname+'.'+textboxname+'.value'))) {
    localerror =  '- '+displaytext+' Should Be A Number With No Spaces.\n';
  } else localerror = '';
  return localerror;
}

function checkSpaces(formname, textboxname, displaytext) {
  var valid = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@.-'; // define valid characters
  var localerror = '';
  if(!isValid(Trim(eval('document.'+formname+'.'+textboxname+'.value')), valid)) {
    localerror =  '- '+displaytext+' Should Not Contain Spaces.\n';
  } else localerror = '';
  return localerror;
}

function checkSelect(formname, selectboxname, displaytext) {
  var localerror = '';
  if(eval('document.'+formname+'.'+selectboxname+'.selectedIndex')==0) {
    localerror =  '- '+displaytext+' is Required.\n';
  } else localerror = '';
  return localerror;
}

function getRadio(formname, radioname, displaytext) {
  for (var i=0; i < eval('document.'+formname+'.'+radioname+'.length'); i++) {
    if (eval('document.'+formname+'.'+radioname+'[i].checked')) {
      var rad_val = eval('document.'+formname+'.'+radioname+'[i].value');
      return rad_val;
    }
  }
}

function checkRadio(formname, radioname, displaytext) {
  var localerror = '';
  var rad_val    = '';
  for (var i=0; i < eval('document.'+formname+'.'+radioname+'.length'); i++) { //check every radio button by that name
    if (eval('document.'+formname+'.'+radioname+'[i].checked'))  { //if it is checked
      rad_val += '-';
      }	else rad_val += '';
      }
    if (rad_val=='') {
      localerror =  '- '+displaytext+' is Required.\n';
    }
  return localerror;
}

function autoComplete (field, select, property) {
/*onKeyUp="autoComplete(this,this.form.selectboxname,'value',false)" - add this to textbox where you are typing*/
  var found = false;
  for (var i = 0; i < select.options.length; i++) {
    if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
      found=true; break;
    }
  }
  if (found) {
    select.selectedIndex = i;
  } else {
    select.selectedIndex = -1;
  }
  if (field.createTextRange) {
    if (!found) {
      field.value=field.value.substring(0,field.value.length-1);
      return;
    }
    var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
    if (cursorKeys.indexOf(event.keyCode+";") == -1) {
      var r1 = field.createTextRange();
      var oldValue = r1.text;
      var newValue = found ? select.options[i][property] : oldValue;
      if (newValue != field.value) {
        field.value = newValue;
        var rNew = field.createTextRange();
        rNew.moveStart('character', oldValue.length) ;
        rNew.select();
      }
    }
  }
}

function Trim(s) {
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
    s = s.substring(1,s.length);
  }
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function isValid(string,allowed) {
//  var valid = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; // define valid characters
    for (var i=0; i< string.length; i++) {
      if (allowed.indexOf(string.charAt(i)) == -1) return false;
    }
    return true;
}
