	function process(){
		//Reset Defaults
		error = 0;
		query = '';
		d.getElementById('error_email').innerHTML = '*';
		d.getElementById('error_email2').innerHTML = '*';
		d.getElementById('error_homenum').innerHTML = '';
		d.getElementById('error_cellnum').innerHTML = '';
		d.getElementById('error_worknum').innerHTML = '';

		//Email Address
		exts = ['ac','ad','ae','aero','af','ag','ai','al','am','an','ao','aq','ar','arpa','as','asia','at','au','aw','ax','az','ba','bb','bd','be','bf','bg','bh','bi','biz','bj','bl','bm','bn','bo','br','bs','bt','bv','bw','by','bz','ca','cat','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','gg','gh','gi','gl','gm','gn','gov','gp','gq','gr','gs','gt','gu','gw','gy','hk','hm','hn','hr','ht','hu','id','ie','il','im','in','info','int','io','iq','ir','is','it','je','jm','jo','jobs','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','me','mf','mg','mh','mil','mk','ml','mm','mn','mo','mobi','mp','mq','mr','ms','mt','mu','museum','mv','mw','mx','my','mz','na','name','nato','nc','ne','net','nf','ng','ni','nl','no','np','nr','nu','nz','om','org','pa','pe','pf','pg','ph','pk','pl','pm','pn','pr','pro','ps','pt','pw','py','qa','re','ro','rs','ru','rw','sa','sb','sc','sd','se','sg','sh','si','sj','sk','sl','sm','sn','so','sr','st','su','sv','sy','sz','tc','td','tel','tf','tg','th','tj','tk','tm','tn','to','tp','tr','travel','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','zr','zw'];
		formEmail = d.getElementById('email').value;
		emailDB = d.getElementById('emaildb').value;
		emailConfirm = d.getElementById('email_confirm').value;
		splitAt = formEmail.split('@');
		domain = splitAt[splitAt.length - 1];
		splitDomainPeriod = splitAt[splitAt.length - 1].split('.');

		if (formEmail == ''){ //email address is blank
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Please enter an email address.</span>';
			error++;
		} else if (formEmail.length < 8 || formEmail.length > 256){ //email address total characters is less than 8 characters or greater than 256 characters
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (splitAt.length > 2){ //more than two @ symbols
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (splitAt[0].match(/^\"/) && splitAt[0].match(/\"$/)){ //local-part is a quoted-string
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">We do not allow e-mail addresses with quoted-strings for the local-part portion of the address.</span>';
			error++;
		} else if (splitAt[0].length < 1 || splitAt[0].length > 64){ //local-part is less than 1 character or greater than 64 characters
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (splitAt[0].match(/\.{2}/)){ //local-part contains consecutive periods
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (splitAt[0].match(/^\./) || splitAt[0].match(/\.$/)){ //local-part starts or ends with a period
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (splitAt[0].match(/[^a-z,0-9,\!,\#,\$,\%,\&,\',\*,\+,\-,\/,\=,\?,\^,\_,\`,\{,\|,\},\~,\.]/i)){ //local-part contains characters other than a-z A-Z 0-9 ! # $ % & ' * + - / = ? ^ _ ` { | } ~ .
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (domain.match(/^\[/) && domain.match(/\]$/)){ //domain is ip address literal
			ip = splitAt[splitAt.length - 1].replace(/[\[|\]]/g, '');
			if (ip.indexOf('.') != -1) splitIpPeriod = ip.split('.');

			if (ip.indexOf('.') == -1){ //ip address has no periods
				d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
				error++;
			} else if (ip.match(/\./g).length !== 3){ //ip address doesnt have 3 periods
				d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
				error++;
			} else if (ip.match(/[^0-9\.]/)){ //ip address contains characters other than numbers or periods
				d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
				error++;
			} else if(splitIpPeriod[0].length < 1 || splitIpPeriod[0].length > 3 || splitIpPeriod[1].length < 1 || splitIpPeriod[1].length > 3 || splitIpPeriod[2].length < 1 || splitIpPeriod[2].length > 3 || splitIpPeriod[3].length < 1 || splitIpPeriod[3].length > 3){ //an ip block is less than 1 character or greater than 3 characters
				d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
				error++;
			} else query += '&email=' + formEmail;
		} else if (splitAt[splitAt.length - 1] < 6 || splitAt[splitAt.length - 1] > 255){ //domain is less than 6 characters or greater than 255 characters
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (!inArray(splitDomainPeriod[splitDomainPeriod.length - 1], exts)){ //domain extension not in array
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email address is not valid.</span>';
			error++;
		} else if (formEmail != emailConfirm){
			d.getElementById('error_email2').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Your email addresses do not match.</span> ';
			error++;
		} else if (emailDB == 1){
			d.getElementById('error_email').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">Email Address is already on our list.</span>';
			error++;
		} else query += 'email=' + formEmail;

		//Name
		formName = d.getElementById('name').value;
		if (formName != '') query += '&name=' + formName;

		//Home Phone Number
		homenumArea = d.getElementById('homenum_area').value;
		homenumNum1 = d.getElementById('homenum_num1').value;
		homenumNum2 = d.getElementById('homenum_num2').value;
		if (homenumArea != '' || homenumNum1 != '' || homenumNum2 != ''){
			if (homenumArea == '' || homenumNum1 == '' || homenumNum2 == ''){ //blank value
				d.getElementById('error_homenum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number is not complete.</span>';
				error++;
			} else if (homenumArea.match(/[^0-9]/) || homenumNum1.match(/[^0-9]/) || homenumNum2.match(/[^0-9]/)){ //has characters other than numbers
				d.getElementById('error_homenum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number can only contain numbers.</span>';
				error++;
			} else if (homenumArea.length != 3 || homenumNum1.length != 3 || homenumNum2.length != 4){ //length is incorrect
				d.getElementById('error_homenum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number is not the correct length.</span>';
				error++;
			} else {
				query += '&homenum=' + homenumArea + homenumNum1 + homenumNum2;
			}
		}

		//Mobile Phone Number
		cellnumArea = d.getElementById('cellnum_area').value;
		cellnumNum1 = d.getElementById('cellnum_num1').value;
		cellnumNum2 = d.getElementById('cellnum_num2').value;
		if (cellnumArea != '' || cellnumNum1 != '' || cellnumNum2 != ''){
			if (cellnumArea == '' || cellnumNum1 == '' || cellnumNum2 == ''){ //blank value
				d.getElementById('error_cellnum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number is not complete.</span>';
				error++;
			} else if (cellnumArea.match(/[^0-9]/) || cellnumNum1.match(/[^0-9]/) || cellnumNum2.match(/[^0-9]/)){ //has characters other than numbers
				d.getElementById('error_cellnum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number can only contain numbers.</span>';
				error++;
			} else if (cellnumArea.length != 3 || cellnumNum1.length != 3 || cellnumNum2.length != 4){ //length is incorrect
				d.getElementById('error_cellnum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number is not the correct length.</span>';
				error++;
			} else {
				query += '&cellnum=' + cellnumArea + cellnumNum1 + cellnumNum2;
			}
		}

		//Address
		formAddress = d.getElementById('address').value;
		if (formAddress != '') query += '&address=' + formAddress;

		//Occupation
		formJob = d.getElementById('job').value;
		if (formJob != '') query += '&job=' + formJob;

		//Work Phone Number
		worknumArea = d.getElementById('worknum_area').value;
		worknumNum1 = d.getElementById('worknum_num1').value;
		worknumNum2 = d.getElementById('worknum_num2').value;
		if (worknumArea != '' || worknumNum1 != '' || worknumNum2 != ''){
			if (worknumArea == '' || worknumNum1 == '' || worknumNum2 == ''){ //blank value
				d.getElementById('error_worknum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number is not complete.</span>';
				error++;
			} else if (worknumArea.match(/[^0-9]/) || worknumNum1.match(/[^0-9]/) || worknumNum2.match(/[^0-9]/)){ //has characters other than numbers
				d.getElementById('error_worknum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number can only contain numbers.</span>';
				error++;
			} else if (worknumArea.length != 3 || worknumNum1.length != 3 || worknumNum2.length != 4){ //length is incorrect
				d.getElementById('error_worknum').innerHTML = '*<br /><span style="color:#ff0000;font-weight:bold;">The phone number is not the correct length.</span>';
				error++;
			} else {
				query += '&worknum=' + worknumArea + worknumNum1 + worknumNum2;
			}
		}

		//Error or Submit
		if (error == 0) window.location = 'index_process.php?' + query;
	}
