function validate(f) {
  
  var fname        			= f.fname.value;   
  var lname        			= f.lname.value;   
  var accountname			= f.accountname.value; // email sonar field, MobileMe member name (formerly, .Mac account name)
  var email1				= f.email.value; // Primary email
  var altemail    			= f.altemail.value; // Alternate email
  var actkey				= f.actkey.value;
  var subject2     			= f.subject2.value; // web order number sonar field
  var country				= f.subprogram.value;
  var computersync			= f.computers.value;
  var osversion				= f.osversion_type.value;
  var osversionbtmm			= f.osversionbtmm_type.value;
  var browserversion		= f.browserversion_type.value;
  var connection			= f.connection_type.value;
  var otherconnection		= f.otherconnection.value;
  var emailselect			= f.email_select.value;
  var emailselectIndex		= f.email_select.selectedIndex;
  var emailappname			= f.appname_select.value;
  var publish				= f.publish_from.value;
  var iphotoversion			= f.iphoto_version.value;
  var imovieversion			= f.imovie_version.value;
  var apertureversion		= f.aperture_version.value;
  var iwebversion			= f.iweb_version.value;
  var detailsarea      		= f.detailsarea.value; // comments sonar field
  var subject1				= f.subject1.value; // support subject sonar field
  var category				= f.category.value; // sub issue sonar field
  var requestaccount		= f.account_select.value;
  var requestemailapp		= f.emailapp_select.value;
  var requestwebmail		= f.webmail_select.value;
  var requestbothemail		= f.bothemail_select.value;
  var requestiphonetouch	= f.iphone_touch_select.value;
  var requestpush			= f.push_select.value;
  var requestcontacts		= f.contacts_select.value;
  var requestcalendar		= f.calendar_select.value;
  var requestidisk			= f.idisk_select.value;
  var requestgallery		= f.gallery_select.value;
  var requestiweb			= f.iweb_select.value;
  var requestbackup			= f.backup_select.value;
  var program				= f.program.value;
  
// Checking email format
  if (accountname) {
	  // The email field must be in the right format 
	  var chkStart = accountname.search('@');
		reg1 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
		  if ((accountname.search(reg1) == -1 || accountname == '@')) 
		  {
			alert(alert2);
			return false;
		  }
  }

  if (email1) {
	  // The email field must be in the right format 
	  var chkStart = email1.search('@');
		reg1 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
		  if ((email1.search(reg1) == -1 || email1 == '@')) 
		  {
			alert(alert2);
			return false;
		  }
  }

  if (altemail) {
	  // The altemail field must be in the right format 
	  var chkStart = altemail.search('@');
		reg1 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
		  if ((altemail.search(reg1) == -1 || altemail == '@')) 
		  {
			alert(alert2);
			return false;
		  }
  }


// Checking field completion
  if (formKind == 'account') {
	if (!fname || !lname || !accountname || !email1 || !country || !osversion || !requestaccount || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '\n';
	f.body.value 	   += label_email + email1 + '\n';
	f.body.value 	   += label_actkey + actkey + '\n';
	f.body.value 	   += label_country + country + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value	   += label_request + requestaccount + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'mail') {
	if (emailselectIndex == 1) {
		if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !osversion || !connection || !emailselect || !requestwebmail || !detailsarea) {
			alert(alert1);
			return false;
		}
		f.body.value       += additional_info + '\n';
		f.body.value 	   += label_email + email1 + '\n';
		f.body.value 	   += label_altemail + altemail + '\n';
		f.body.value 	   += label_osversion + osversion + '\n';
		f.body.value 	   += label_browserversion + browserversion + '\n';
		f.body.value 	   += label_connection + connection + '\n';
		f.body.value 	   += label_otherconnection + otherconnection + '\n';
		f.body.value 	   += label_emailselect + emailselect + '\n';
		f.body.value	   += label_request + requestwebmail + '\n';
		f.body.value 	   += label_details + detailsarea;
		
		f.submit();
		return true;
	}
	else if (emailselectIndex == 2) {
		if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !osversion || !connection || !emailselect || !emailappname || !requestemailapp || !detailsarea) {
			alert(alert1);
			return false;
		}
		f.body.value       += additional_info + '\n';
		f.body.value 	   += label_altemail + altemail + '\n';
		f.body.value 	   += label_osversion + osversion + '\n';
		f.body.value 	   += label_browserversion + browserversion + '\n';
		f.body.value 	   += label_connection + connection + '\n';
		f.body.value 	   += label_otherconnection + otherconnection + '\n';
		f.body.value 	   += label_emailselect + emailselect + '\n';
		f.body.value 	   += label_emailappname + emailappname + '\n';
		f.body.value	   += label_request + requestemailapp + '\n';
		f.body.value 	   += label_details + detailsarea;
		
		f.submit();
		return true;
	}
	else if (emailselectIndex == 3) {
		if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !osversion || !connection || !emailselect || !emailappname || !requestbothemail || !detailsarea) {
			alert(alert1);
			return false;
		}
		f.body.value       += additional_info + '\n';
		f.body.value 	   += label_altemail + altemail + '\n';
		f.body.value 	   += label_osversion + osversion + '\n';
		f.body.value 	   += label_browserversion + browserversion + '\n';
		f.body.value 	   += label_connection + connection + '\n';
		f.body.value 	   += label_otherconnection + otherconnection + '\n';
		f.body.value 	   += label_emailselect + emailselect + '\n';
		f.body.value 	   += label_emailappname + emailappname + '\n';
		f.body.value	   += label_request + requestbothemail + '\n';
		f.body.value 	   += label_details + detailsarea;
		
		f.submit();
		return true;
	}
	else if (emailselectIndex == 4) {
		if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !osversion || !connection || !emailselect || !emailappname || !requestiphonetouch || !detailsarea) {
			alert(alert1);
			return false;
		}
		f.body.value       += additional_info + '\n';
		f.body.value 	   += label_altemail + altemail + '\n';
		f.body.value 	   += label_osversion + osversion + '\n';
		f.body.value 	   += label_browserversion + browserversion + '\n';
		f.body.value 	   += label_connection + connection + '\n';
		f.body.value 	   += label_otherconnection + otherconnection + '\n';
		f.body.value 	   += label_emailselect + emailselect + '\n';
		f.body.value 	   += label_emailappname + emailappname + '\n';
		f.body.value	   += label_request + requestiphonetouch + '\n';
		f.body.value 	   += label_details + detailsarea;
		
		f.submit();
		return true;
	}
	else {
		alert(alert1);
		return false;
	}
  }

  else if (formKind == 'push') {
	if (!fname || !lname || !accountname || !altemail || !computersync || !osversion || !browserversion || !connection || !requestpush || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_computersync + computersync + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value	   += label_request + requestpush + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'contacts') {
	if (!fname || !lname || !accountname || !altemail || !computersync || !osversion || !browserversion || !connection || !requestcontacts || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_computersync + computersync + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value	   += label_request + requestcontacts + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'calendar') {
	if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !connection || !requestcalendar || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value	   += label_request + requestcalendar + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'idisk') {
	if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !connection || !requestidisk || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value	   += label_request + requestidisk + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'gallery') {
	if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !connection || !publish || !requestgallery || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value 	   += label_publish + publish + '\n';
	f.body.value	   += label_request + requestgallery + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'iweb') {
	if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !connection || !iwebversion || !requestiweb || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value 	   += label_iwebversion + iwebversion + '\n';
	f.body.value	   += label_request + requestiweb + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'btmm') {
	if (!fname || !lname || !accountname || !altemail || !osversionbtmm || !browserversion || !connection || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversionbtmm + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else if (formKind == 'backup') {
	if (!fname || !lname || !accountname || !altemail || !osversion || !requestbackup || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value	   += label_request + requestbackup + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

  else {
	if (!fname || !lname || !accountname || !altemail || !osversion || !browserversion || !connection || !detailsarea) {
		alert(alert1);
		return false;
	}
	
	f.body.value       += additional_info + '. . . \n';
	f.body.value 	   += label_altemail + altemail + '\n';
	f.body.value 	   += label_osversion + osversion + '\n';
	f.body.value 	   += label_browserversion + browserversion + '\n';
	f.body.value 	   += label_connection + connection + '\n';
	f.body.value 	   += label_otherconnection + otherconnection + '\n';
	f.body.value 	   += label_details + detailsarea;
	
	f.submit();
	return true;

  }

}