function numbersonly(textboxname, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   textboxname.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function makePhone(formname,textboxname,t1,t2,t3){
eval('document.'+formname+'.'+textboxname).value=eval('document.'+formname+'.'+t1).value+'-'+eval('document.'+formname+'.'+t2).value+'-'+eval('document.'+formname+'.'+t3).value;
//window.alert(eval('document.'+formname+'.'+textboxname).value);
}
/* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Created by: Amit Wadhwa :: http://amitwadhwa.fcpages.com/javascript.com/formvalidator.html */

function checkThisForm(formname, submitbutton, errors) {
  if (errors == '') {
    eval('document.'+formname+'.'+submitbutton+'.disabled=true');
    eval('document.'+formname+'.submit()');
  } else {
    alert(errors);
  }
}

function checkCheckbox(text){ 
var localerror = '';

var countChecks = 0;
var inputs = document.getElementsByTagName('input');
var i;
for(i=0;i<inputs.length;i++){
if((inputs[i].type == 'checkbox')&&(inputs[i].checked == true)){
countChecks++;
}
}
if(countChecks == 0){
localerror =  '- Select at least one '+text+'.\n';
} else localerror = '';
  return localerror;


}

function checkText(formname, textboxname, displaytext) {
  var localerror = '';
  //if(Trim(eval('document.'+formname+'.'+textboxname+'.value'))=='') {
 // if(Trim(document.getElementById(textboxname).value=='')) {
 if(document.getElementById(textboxname).value=='' || document.getElementById(textboxname).value=='Your name') {	 
    localerror =  '- '+displaytext+' is required.\n';
  } else localerror = '';
  return localerror;
}

function ProgressBar(form){
 //check file sizes.
 var localerror = '';
 if (checkFileSize()) {
	 localerror =  '- Upload size is over limit. Please check selected files.\n';
 } else localerror = '';
  return localerror;
};

function checkFile(id) {
  var localerror = '';
  if(document.getElementById(id).value=='') {
    localerror =  '- Picture is Required.\n';
  } else localerror = '';
  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 checkPwd(formname) {
var localerror = '';
var invalid = " "; // Invalid character is a space
var minLength = 6; // Minimum length
var pw1 = eval('document.'+formname).new_password.value;
var pw2 = eval('document.'+formname).new_password2.value;

// check for minimum length
if (eval('document.'+formname).new_password.value.length < minLength) {
localerror ='- Your password must be at least ' + minLength + ' characters long. Try again.\n';
 return localerror;
}
// check for spaces
if (eval('document.'+formname).new_password.value.indexOf(invalid) > -1) {
localerror ="- Sorry, spaces are not allowed.\n";
 return localerror;
}
else {
if (pw1 != pw2) {
localerror = "- You did not enter the same new password twice. Please re-enter your password.\n";
 return localerror;
}else {

return localerror;
      }
   }

}

function checkPhone(formname, textboxname, displaytext){
var minLength = 12; // Minimum length

var localerror = '';
// check for minimum length
if (eval('document.'+formname+'.'+textboxname).value.length < minLength) {
localerror ='- Your phone must be 10 characters long. Try again.\n';
 return localerror;
}

var valid = '0123456789-'; // define valid characters

if(!isValid(Trim(eval('document.'+formname+'.'+textboxname+'.value')), valid)) {
    localerror =  '- Only numbers are accepted for '+displaytext+' and It Should Not Contain Spaces.\n';
  } else localerror = '';
 return localerror;


}

function checkZip(formname, textboxname, displaytext){
var minLength = 5; // Minimum length

var localerror = '';
// check for minimum length
if (eval('document.'+formname+'.'+textboxname).value.length < minLength) {
localerror ='- Your Zip Code must be at least 5 characters long. Try again.\n';
 return localerror;
}

var valid = '0123456789-'; // define valid characters

if(!isValid(Trim(eval('document.'+formname+'.'+textboxname+'.value')), valid)) {
    localerror =  '- Only numbers are accepted for '+displaytext+' and It Should Not Contain 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 =  '- Only characters and numbers are accepted for '+displaytext+' and It Should Not Contain Spaces.\n';
  } else localerror = '';
  return localerror;
}

function checkNumbers(formname, textboxname, displaytext) {
  var valid = '0123456789'; // define valid characters
  var localerror = '';
  if(!isValid(Trim(eval('document.'+formname+'.'+textboxname+'.value')), valid)) {
    localerror =  '- Only numbers are accepted for '+displaytext+' and It 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 = '';
//  alert(eval('document.'+formname+'.'+selectboxname+'[document.'+formname+'.'+selectboxname+'.selectedIndex].value'));
  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 checkEmail(formname, textboxname, displaytext) {
var localerror = '';
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=document.getElementById(textboxname).value.match(emailPat);

if (matchArray==null) {
	localerror = '- '+displaytext+" seems to be  incorrect (check the @ and .'s)\n";
	return localerror;
}
var user=matchArray[1];
var domain=matchArray[2];
if (user.match(userPat)==null) {
    localerror = "- "+displaytext+" the username is not valid.\n";
    return localerror;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	       localerror = "- Destination IP address is invalid!\n";
		 return localerror;
	    }
    }
    localerror = '';
	return localerror;
}
var domainArray=domain.match(domainPat);
if (domainArray==null) {
	localerror = "- "+displaytext+" domain name is not valid.\n";
    return localerror;
}
var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;
if ((domArr[domArr.length-1] != "info") &&
	(domArr[domArr.length-1] != "name") &&
	(domArr[domArr.length-1] != "arpa") &&
	(domArr[domArr.length-1] != "coop") &&
	(domArr[domArr.length-1] != "aero")) {
		if (domArr[domArr.length-1].length<2 || 
	    	domArr[domArr.length-1].length>3) {
		   		localerror = "- "+displaytext+' must end in a three-letter domain, or two letter country.\n';
		   		return localerror;
		}
}
if (len<2) {

  localerror = "- "+displaytext+" is missing a hostname!\n";
   return localerror;
}
localerror = '';
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;
}


