function tog_Field(fieldID) {
   fieldObj = document.getElementById(fieldID);
	   
   if (fieldObj.disabled == true) { fieldObj.disabled = false; tog_Focus(fieldID, false); }
   else { fieldObj.disabled = true; tog_Focus(fieldID, false); }
}

function tog_Focus(field_id, error) {
   this_fieldObj = document.getElementById(field_id);
   this_fieldObj.focus();
	   
   if (error == true) { this_fieldObj.className = 'field-focus-error';  }
   else { 
     if (this_fieldObj.disabled) { this_fieldObj.className = 'field-disabled'; }
	 else { this_fieldObj.className = 'field-focus-on'; }
   }
	   
   var formObj = document.getElementById(this_fieldObj.form.id);
   
   var tagNames = new Array('input', 'select', 'textarea');
   for (var a=0; a<tagNames.length; a++) {
	   var tag_name = tagNames[a];
	   if (formObj.getElementsByTagName(tag_name)) {
	      fields = formObj.getElementsByTagName(tag_name);
          for (var b=0; b<fields.length; b++) {
              var fieldObj = fields[b];
              var attr = fieldObj.attributes;
	       
		      if (tagNames[a] == 'input') {
		         var type = attr.getNamedItem('type').nodeValue;
	             switch (type) {
	                    case 'text': 
				  	         if (fieldObj != this_fieldObj) { 
						        if (fieldObj.disabled == true) { fieldObj.className = 'field-disabled'; }
							    else { fieldObj.className = 'field-focus-off'; } 
					         }
				        break;
					    default: break;
			     }
		      } else { 
		         if (fieldObj != this_fieldObj) {
			  	    if (fieldObj.disabled == true) { fieldObj.className = 'field-disabled'; }
				    else { fieldObj.className = 'field-focus-off'; }
			     }
		      }
	      }
	  }
   }
}

   function check_Field(fieldObj) { // If a field is required, this function checks it's value
       var error = false;
	   var error_msg = null;
	   var tagName = fieldObj.nodeName.toLowerCase();
	   var attr = fieldObj.attributes;
	   
	   switch (tagName) {
	          case 'input':
			       var type = attr.getNamedItem('type').nodeValue;
				   switch (type) {
					      case 'password':
				          case 'text': 
						       if ((fieldObj.value == '') || (fieldObj.value == null)) { error = true; }
							   if (fieldObj.id == 'email') { 
							      if (!fieldObj.value.match(/[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+/)) {
								     error = true;
								  }
							   }
						  break;
						  case 'checkbox': break;
						  case 'radio': break;
						  case 'hidden': break;
						  case 'button': break;
						  case 'submit': break;
						  case 'reset': break;
						  default: break;
				   }
			  break;
			  case 'select': if ((fieldObj.options[fieldObj.selectedIndex].value == '') || (fieldObj.options[fieldObj.selectedIndex].value == '')) { error = true; } break;
			  default:
			  break;
	   }

	   return(error);
   }
   
   function check_Form(formObj) {
       var error = false;
	   var error_msg = 'Required information is missing.';
	   var error_field = null;
	      
		  var tagNames = new Array('INPUT', 'SELECT');
          for (var a=0; a<tagNames.length; a++) {
	          if (!error) {
	             var this_tagName = tagNames[a];
	             var fields = formObj.getElementsByTagName(this_tagName);
		         for (var b=0; b<fields.length; b++) {
		             if (!error) {
			            var this_field = fields[b];
                        var attr = this_field.attributes;
			            if (attr.getNamedItem('alt')) {
						   alt = attr.getNamedItem('alt').nodeValue;
						   if (alt == 'req') {
					          error = check_Field(this_field); 
				              if (error) { error_field = this_field; }
						   }
						}
				     } 
			     }
			  } 
		   } 
	   
	   if (error) { tog_Focus(error_field.id, true); alert(error_msg); return false; }
	   return true;
   }