function check_dob_he_no(monthfield, dayfield, yearfield, hunterednumber){
	var HunterEdField = document.getElementById(hunterednumber).value;
	var month =  document.getElementById(monthfield).options[document.getElementById(monthfield).selectedIndex].value;
	var day =  document.getElementById(dayfield).options[document.getElementById(dayfield).selectedIndex].value ;
	var year =  document.getElementById(yearfield ).options[document.getElementById(yearfield).selectedIndex].value;
    var err_message = "";
if(!(month.length >0)){
		err_message += ('You must complete the Date of Birth month field to continue\n\n')
	changeClass(monthfield,'errSelect');
}else{
	changeClass(monthfield,'');
}
if(!(day.length >0  )){
		err_message += ('You must complete the Date of Birth day field to continue\n\n')
	changeClass(dayfield,'errSelect');
}else{
	changeClass(dayfield,'');
}
if(!(year.length > 0)){
		err_message += ('You must complete the Date of Birth year field to continue\n\n')
		changeClass(yearfield,'errSelect');
}else{
	changeClass(yearfield,'');
}
if(HunterEdField.length > 0 ){
	changeClass(hunterednumber,'');
	changeClass(monthfield,'');
	changeClass(dayfield,'');
	changeClass(yearfield,'');
   return err_message;
   
}else{
	var dobReturn = check_dob_under_18(monthfield, dayfield, yearfield);
	if(dobReturn.length > 0){
		err_message += dobReturn; 
	changeClass(hunterednumber,'errInput');
	changeClass(monthfield,'errSelect');
	changeClass(dayfield,'errSelect');
	changeClass(yearfield,'errSelect');
	}
}
   return err_message; 
	

}
function check_dob_under_18(monthfield, dayfield, yearfield){
	var year2 = "";
	var z = "";
	var today = "";
	var dob = "";
	var check = "";
	var month = document.getElementById(monthfield).value;
	var day = document.getElementById(dayfield).value;
	var year = document.getElementById(yearfield).value;
    var err_message = "";
	
	year = parseFloat(year);
	year2 = year 
	year2 = year2 + 18
	z = month+ "/" + day+ "/" + year ;
	y = month+ "/" + day+ "/" + year2 ;
	
	dob = new Date(z);		
	today = new Date();
	check = new Date(y);
	
   /* Error-message if err != 0 */
  if ( check > today ){
	err_message = "If you are under the age of 18 at the start of a firearm hunt, you are required to have a Hunter Education number prior to hunting.\n\n";
	
	}
   return err_message; 
	

}


function check_date(field){
var checkstr = "0123456789";
var DateField = document.getElementById(field);
var Datevalue = "";
var DateTemp = "";
var seperator = "-";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var err_message = "";
var i;
   err = 0;
   DateValue = DateField.value;
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
          if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
             DateTemp = DateTemp + DateValue.substr(i,1);
          }
   }
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = '20' + DateValue.substr(0,6) ;
          }
   if (DateValue.length != 8) {
      err = 19;
          }
   /* year is wrong if year = 0000 */
   year = DateValue.substr(0,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(4,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(6,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry Not useful here at all*/
  /* if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }*/
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      DateField.value =  year + seperator + month + seperator + day ;
   }
   /* Error-message if err != 0 */
   else {
      err_message = "Date must be in yyyy-mm-dd\n" ;
   }
   return err_message;
}

function validate_input(object,text,maxLength,type) {
var err_message = "";
    if ((document.getElementById(object).value.length > 0) & (document.getElementById(object).value.length <= maxLength)){
                changeClass(object, '');
	//type checks
		switch(type){
			case 'INT':
			 if(!(IsInt(document.getElementById(object).value))){
				err_message += 'The ' + text + ' must be only numbers and in the format 9999\n\n';
                changeClass(object, 'errInput');
			 }
			 break;
			 case 'CHAR':
			 if(!(IsChar(document.getElementById(object).value))){
				err_message += 'The ' + text + ' should only contain letters\n\n';
                changeClass(object, 'errInput');
			 }
			 break;
			 case 'CHARNUM':
			 if(!(IsCharNum(document.getElementById(object).value))){
				err_message += 'The ' + text + ' should only contain letters and numbers\n\n';
                changeClass(object, 'errInput');
			 }
			 break;
			 case 'EMAIL':
			 	if(!(IsEmail(document.getElementById(object).value))) {
	    		err_message += '\nYou must complete the ' + text + ' field with a real email address. \nExample format (user@example.com). \nImportant notices regarding this application will be sent to this address.\n\n';
				changeClass(object, 'errInput');
				}
			 break;
		}
        return err_message;
                }
    else {
		
                if (document.getElementById(object).value.length > maxLength){
                err_message += ('The ' + text + ' is too long\n\n');
                }
                else{
        err_message += ('You must complete the ' + text + ' field to continue\n\n');
                }
				
                changeClass(object, 'errInput');
		
        return err_message;
				
		
    }
}
function validate_radio(object,text) {
var err_message = "";
var anyChecked = 0;
 var inputs = document.getElementsByTagName ('input');
  if (inputs) {
    for (var i = 0; i < inputs.length; ++i) {
      if (inputs[i].type == 'radio' && inputs[i].id == object)
	  	if(inputs[i].checked){
				anyChecked = anyChecked +1;
    }
  }
 }
  if(anyChecked == 0){
	    err_message += 'You must select a ' + text + '\n\n';  
		if (inputs) {
    for (var i = 0; i < inputs.length; ++i) {
      if (inputs[i].type == 'radio' && inputs[i].id == object)
	  
		inputs[i].className='errSelect';
  }
 }
	}else{
			if (inputs) {
    for (var i = 0; i < inputs.length; ++i) {
      if (inputs[i].type == 'radio' && inputs[i].id == object)
	  
		inputs[i].className='';
  }
 }
	}
        return err_message;
   
}

function validate_checkbox(object, text){
	var checked = document.getElementById(object).checked;
	var err_message = "";
	
	if(checked) {
		return err_message;
	}else{
			err_message += 'You must validate the ' + text + ' checkbox before continuing\n\n';
	}
                changeClass(object, 'errInput');
		
        return err_message;
}

function validate_select(object, text){
	var value =  document.getElementById(object).options[document.getElementById(object).selectedIndex].value;
    var err_message = "";
if(value.length > 0 ){
   return err_message; 
}else{
	err_message += 'You must complete the ' + text + ' field before continuing\n\n';
	changeClass(object,'errSelect');
}
   return err_message; 
	

}

function validate_username(object,text,minLength,maxLength) {
var err_message = "";
    if ((document.getElementById(object).value.length > 0) & (document.getElementById(object).value.length <= maxLength)){
                changeClass(object, '');
	//type checks
		
			 if(!(IsCharNum(document.getElementById(object).value))){
				err_message += 'The ' + text + ' should only contain letters and numbers\n\n';
                changeClass(object, 'errInput');
			 }
			
        return err_message;
                }
    else {
		
                if (document.getElementById(object).value.length > maxLength){
                err_message += ('The ' + text + ' is too long - must be no more than ' + maxLength + '\n\n');
                }else if (document.getElementById(object).value.length < minLength){
                err_message += ('The ' + text + ' is too short - must be at least ' + minLength + '\n\n');
				}
                else{
        err_message += ('You must complete the ' + text + ' field to continue\n\n');
                }
				
                changeClass(object, 'errInput');
		
        return err_message;
				
		
    }
}


function validate_password(object,object_confirm,text,minLength,maxLength) {
var err_message = "";
var mediumRegex = new RegExp("^(?=.{6,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g"); 

    if ((document.getElementById(object).value.length > 0) & (document.getElementById(object).value.length <= maxLength) & (document.getElementById(object_confirm).value.length > 0) & (document.getElementById(object_confirm).value.length <= maxLength) & (document.getElementById(object_confirm).value == document.getElementById(object).value)){
                changeClass(object, '');
	if(false == mediumRegex.test(document.getElementById(object).value)){
	
                err_message += ('The ' + text + 'must be at least ' + minLength + ' characters, and contain at least 1 non-letter character\n\n');
                changeClass(object, 'errInput');
		
        return err_message;
}
        return err_message;
                }
    else {
				if(document.getElementById(object_confirm).value != document.getElementById(object).value){
					 err_message += ('' + text + 's do not match\n\n');
                	changeClass(object_confirm, 'errInput');
				}else if (document.getElementById(object).value.length > maxLength){
                err_message += ('The ' + text + ' is too long - must be no more than ' + maxLength + ' characters long\n\n');
                }else if (document.getElementById(object).value.length < minLength){
                err_message += ('The ' + text + ' is too short - must be at least ' + minLength + ' characters long\n\n');
				}
                else {
       			 err_message += ('You must complete the ' + text + ' field to continue\n\n');
                }
				
                changeClass(object, 'errInput');
		
        return err_message;
				
		
    }
}

function IsInt(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
   function IsChar(sText)
{
   var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
 function IsCharNum(sText)
{
   var ValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.- #/";
   var IsCharNum=true;
   var Char;

 
   for (i = 0; i < sText.length && IsCharNum == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsCharNum = false;
         }
      }
   return IsCharNum;
   
   }

function IsEmail(sText)
{
   var ValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-@_";
   var IsEmail=true;
   var Char;

 
   for (i = 0; i < sText.length && IsEmail == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsEmail = false;
         }
      }
	  
	// ADDED 3/23/06 to keep www. from being entered into the email field. CLA 
	if(sText.substr(0, [4]) == "www.") {
	    IsEmail = false;
	}
	//
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(sText) == false) {
		IsEmail = false;
	}
   return IsEmail;
   
   }
   
function changeClass(id, newClass) {
identity=document.getElementById(id);
identity.className=newClass;
}

function GetSelectedItem(list) {

len = list.length
i = 0
chosen = ""

for (i = 0; i < len; i++) {
if (list[i].selected) {
chosen = chosen + list[i].text + "\n"
}
}

return chosen
}
