function validateElement(elementRef, elementDesc, limit, charSet)
{
   var validCharDesc = "";
   var MyString = elementRef.value;  
   var dateChars = "/";
   var emailChars = ".@_-";
   var letterChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var numChars = ".1234567890";
   var ssnChars = "-";
   var addressChars = '\'-., ';
   var nameChars = '\'-., ';
   var phoneChars = "()- x";
   var intlZipChars = "- ";
   var textChars = ".,?;:!$()_+-=@ \'\""
   var allValidCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.,?;:!$()_+-=@";
   if (charSet == 1)
   {
      allValidCharacters = numChars + dateChars;
	  validCharDesc = "are numbers and " + dateChars;
   }
   if (charSet == 2)
   {
      allValidCharacters = letterChars + numChars + emailChars;
  	  validCharDesc = "are numbers, letters and " + emailChars;
   }
   if (charSet == 3)
   {
      allValidCharacters = numChars;
	  validCharDesc = "are numbers";
   }
   if (charSet == 4)
   {
      allValidCharacters = numChars + ssnChars;
	  validCharDesc = "are numbers and " + ssnChars;
   }
   if(charSet == 5)
   {
   	  allValidCharacters = letterChars + numChars + addressChars;
	  validCharDesc = "are letters, numbers and " + addressChars;
   }
   if(charSet == 6)
   {
      allValidCharacters = letterChars + nameChars;
	  validCharDesc = "are letters and " + nameChars;
   }
   if(charSet == 7)
   {
   	  allValidCharacters = numChars + phoneChars;
	  validCharDesc = "are numbers and " + phoneChars;
   }
   if(charSet == 8)
   {
   	  allValidCharacters = numChars + intlZipChars;
	  validCharDesc = "are numbers and " + intlZipChars;
   }
   if(charSet == 9)
   {
      allValidCharacters = numChars + letterChars + textChars;
	  validCharDesc = "are numbers, letters and " + textChars;
   }
   var isCharValid; 
   var lastchar;
   var charIndex;
   isCharValid = true;

   if (MyString.length > limit) 
   {
      MyString = MyString.substring(0, limit);
      elementRef.value = MyString;
      elementRef.blur() ;
      alert("You have reached the " + limit + " character limit of this field");
   } 
   lastchar = MyString.charAt(MyString.length - 1); 

   charIndex = allValidCharacters.indexOf(lastchar);

   if(charIndex < 0)
   {
      alert("The character " + lastchar + " is an invalid character in the " + elementDesc + " field. \n The only valid characters for this field " + validCharDesc);
      MyString =  MyString.substring(0, (MyString.length - 1));
      elementRef.value = MyString;
   }
   /*if((charSet == 4) && (!((MyString.length == 4) || (MyString.length == 7))) && (charIndex == 0))
   {
      MyString =  MyString.substring(0, (MyString.length - 1));
      elementRef.value = MyString;
	  //alert(MyString.length);
   }    */
}

function ValidateRequire(sForm){
    	var sMsg = "";
    	var error = 0;
        var what = document.getElementById(sForm);
        //alert('form:' + what);
    	for (var i=0; i < what.length; i++){
    		var sField = what[i];
    		if ((sField.getAttribute("class") == "required" || sField.getAttribute("className") == "required") && !sField.value) {
    			error += 1;
    			if (error == 1) {
    				sField.focus();
    			}
    			sMsg += sField.getAttribute("label") + " is required\n";
    		}
    	}
    	if (error) {
    		alert(sMsg);
    		return false;
    	} else {
	    	return true;
    	}
    }

function ValidEmail(emailField){
	//alert('Email Variable: ' + emailField);
        var chosen = document.getElementById(emailField);
        //alert('Chosen: ' + chosen);
        var email=chosen.value.toLowerCase();
        var pattern=/^[-\._a-z0-9]+@((([a-z0-9]|[a-z0-9][a-z0-9-]*[a-z0-9])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/;
	if(!pattern.test(email))
        {
         alert('Please check you email address for errors');
         setTimeout('chosen.focus();',0);
         return false;
	} else {
    return true;
  }
}

function SendUserName(username)
{
   document.checkform.Username.value = document.signup1.Username.value;
   validateElement(username, 'Username', 15, 9);
}
function Validate_Form(sForm,emailid){
  var Validrqd = ValidateRequire(sForm);
  var Valideml = ValidEmail(emailid);
  if(Validrqd && Valideml){
    var theform = document.getElementById(sForm);
    theform.submit();
  }
}
function verify(form){
      var sCheck;
      var pwd1;
      var pwd2;
      pwd1 = document.signup1.password1.value;
      pwd2 = document.signup1.password2.value;
      sCheck = document.signup1.password1.value.toString();
   
   if(pwd1 != pwd2) {
       alert("The passwords do not match.\n Please type them again again.");
       form.password1.value = '';
       form.password2.value = '';
       form.password1.focus();
       return false;
    }
    else if(sCheck.length < 4) {
       alert("The minimum length for a password\n is 4 characters");
       form.password1.value = '';
       form.password2.value = '';
       form.password1.focus();
       return false;
   }
   else if(sCheck.length > 12) {
      alert("The maximum length for a password\n is 12 characters");
      form.password1.value = '';
      form.password2.value = '';
      form.password1.focus();
      return false;
   }
   else
   {
     return true;
   }
}

/*
1-dates
2-Email
3-Numbers Only
4-SSN
5-Address
6-Name
7-Phone
8-Zip Code
9-Text
*/