function addUpload() {
	var uploads = document.getElementById('uploadfields');
	var items   = uploads.getElementsByTagName('input');
	for (var x=0; x < items.length; ++x) {
		var field = items[x];
		if (field.style.display == 'none') {
			field.style.display = 'inline';
			break;
		}
	}
}

function validateLength(str, min, max) {
	var len = str.length;
	if (len < min || len > max) {
		return false;
	}
	return true;
}


/** 
 * Change fields on a form to highlight or unhighlight their label
 * @param object fields Fields object
 */
function formNotice(fields) {
	for (var key in fields) {
		if (!fields.hasOwnProperty(key)) {
			continue;
		}
		var field = fields[key];
		
		if (field.isValid == false) {
			document.getElementById(field.label).className = "errorLabel";
		} else {
			document.getElementById(field.label).className = "normalLabel";
		}
	}
}


function handleFormSubmit(formEl) {

	var fields =  {
		'myKitchen':{'id':'name',     'label':'myKitchenLabel', 'error':'Please select a value for are you entering your kitchen?', 'isValid':false},
		'name':     {'id':'name',     'label':'nameLabel',      'error':'Invalid name', 'isValid':false},
		'address':  {'id':'address',  'label':'addressLabel',   'error':'Invalid address', 'isValid':false},
		'city':     {'id':'city',     'label':'cityLabel',      'error':'Invalid city', 'isValid':false},
		'state':    {'id':'state',    'label':'stateLabel',     'error':'Invalid state', 'isValid':false},
		'zip':      {'id':'zip',      'label':'zipLabel',       'error':'Invalid zip', 'isValid':false},
		'township': {'id':'township', 'label':'townshipLabel',  'error':'Invalid township', 'isValid':false},
		'phone':    {'id':'phone',    'label':'phoneLabel',     'error':'Invalid phone', 'isValid':false},
		'email':    {'id':'email',    'label':'emailLabel',     'error':'Invalid email', 'isValid':false},
		'comments': {'id':'comments', 'label':'commentsLabel',  'error':'Invalid comments', 'isValid':false},
		'accept':   {'id':'accept',   'label':'acceptLabel',    'error':'You must agree the rules', 'isValid':false},
		'referer':  {'id':'referer',  'label':'refererLabel',    'error':'Please choose a referer.', 'isValid':false}
	};
	
	var errors   = "";
	var name     = document.getElementById('name');
	var address  = document.getElementById('address');
	var city     = document.getElementById('city');
	var state    = document.getElementById('state');
	var zip      = document.getElementById('zip');
	var phone    = document.getElementById('phone');
	var email    = document.getElementById('email');
	var comments = document.getElementById('comments');
	var accept   = document.getElementById('accept');
	var township = document.getElementById('township');
	var referer  = document.getElementById('referer');
	
	var imageUpload_0 = document.getElementById('imageUpload_0');
	
	var myKitchenGroup = document.getElementById('myKitchenGroup');
	var myKitchenOpts  = myKitchenGroup.getElementsByTagName('input');
	var isSelected = false;
	for (var x=0; x < myKitchenOpts.length; ++x) {
		if (myKitchenOpts[x].checked == true) {
			isSelected = true;
		}
	}
	
	refererIsSuccess = (referer.options[referer.selectedIndex].value != 'choose') ? true : false;
	
	if (isSelected !== true) { errors += "- "+ fields['myKitchen'].error +" \n"; } else { fields['myKitchen'].isValid = true; }	
	if (validateLength(name.value, 3, 255) !== true) { errors += "- "+ fields['name'].error +" \n"; } else { fields['name'].isValid = true; }
	if (validateLength(address.value, 5, 255) !== true) { errors += "- "+ fields['address'].error +" \n"; } else { fields['address'].isValid = true; }
	if (validateLength(city.value, 2, 80) !== true) { errors += "- "+ fields['city'].error +" \n"; } else { fields['city'].isValid = true; }
	if (validateLength(township.value, 2, 80) !== true) { errors += "- "+ fields['township'].error +" \n"; } else { fields['township'].isValid = true; }
	if (validateLength(state.value, 2, 2) !== true) { errors += "- "+ fields['state'].error +" \n"; } else { fields['state'].isValid = true; }
	if (validateLength(zip.value, 5, 10) !== true) { errors += "- "+ fields['zip'].error +" \n"; } else { fields['zip'].isValid = true; }
	if (validateLength(phone.value, 7, 20) !== true) { errors += "- "+ fields['phone'].error +" \n"; } else { fields['phone'].isValid = true; }
	if (validateLength(email.value, 6, 255) !== true) { errors += "- "+ fields['email'].error +" \n"; } else { fields['email'].isValid = true; }
	if (validateLength(comments.value, 1, 65535) !== true) { errors += "- "+ fields['comments'].error +" \n"; } else { fields['comments'].isValid = true; }
	if (!accept.checked) { errors += "- "+ fields['accept'].error +" \n"; } else { fields['accept'].isValid = true; }
	if (refererIsSuccess !== true) { errors += "- "+ fields['referer'].error +" \n"; } else { fields['referer'].isValid = true; }
	
	formNotice(fields);
	
	if (errors != "") {
		alert("Please correct the following errors: \n"+ errors);
		return false;
	}
	
	return true;
}


function showOther() {
	var other = document.getElementById('otherNameDiv');
	other.style.display = 'inline';
}

function hideOther() {
	var other = document.getElementById('otherNameDiv');
	other.style.display = 'none';
}

