
function settingsInteract(){
	
	$('.settingsEdit').unbind('mousedown');
	$('.settingsEdit').mousedown(function(){
		var tag = $(this).attr('name');
		var visibilitySwitch = $('.settingsItemUpper[name='+tag+']').css('visibility');
		
		if (visibilitySwitch == 'visible'){
			$('.settingsEdit[name='+tag+']').html('<div class=darkBlueLink>Hide</div>');
			$('.settingsItemUpper[name='+tag+']').css({
				'visibility' : 'hidden',
				'max-height' : 0
			});
			$('.settingsItemLower[name='+tag+']').css({
				'visibility' : 'visible',
				'max-height' : 2500
			});
		}
		else{
			$('.settingsEdit[name='+tag+']').html('<div class=darkBlueLink>Edit</div>');
			$('.settingsItemUpper[name='+tag+']').css({
				'visibility' : 'visible',
				'max-height' : 2500
			});
			$('.settingsItemLower[name='+tag+']').css({
				'visibility' : 'hidden',
				'max-height' : 0
			});
		}
	});
	
	/* Universal */
	
	$('.settingsInput').focus(function(){
		var tag = $(this).attr('name');
		$('.settingsErrorText[name='+tag+']').text('');
	});
	
	$('.settingsButtonContainer').mousedown(function(){
		$('.settingsErrorText').text('');
	});
	
	/* Universal */
	
	/* Name */
	
	//Discontinued
		
	/* Name */
	
	/* Email */
	
	function emailSubmit(){
		
		var status = false;
		
		var password = $('.settingsInput[name=emailPassword]').val();
		var emailNew = $('.settingsInput[name=emailNew]').val();
		var emailConfirm = $('.settingsInput[name=emailConfirm]').val();
		
		var emailFilter = /^[a-z0-9\-\_\.]+\@[a-z0-9\-\_\.]+\.[a-z\.]+$/gi;
		if (!emailFilter.test(emailNew)){
			status = false;
			$('.settingsErrorText[name=emailNew]').text('*Invalid Email');
		}
		else{
			status = true;
		}
		
		var emailFilter = /^[a-z0-9\-\_\.]+\@[a-z0-9\-\_\.]+\.[a-z\.]+$/gi;
		if (!emailFilter.test(emailConfirm)) {
			status = false;
			$('.settingsErrorText[name=emailConfirm]').text('*Invalid Email');
		}
		else{
			status = true;
		}
		
		if (status == true) {
			
			if (emailNew == emailConfirm) {
				
				//could include a function to first test if an email is available. Already have one made on the logon page
				
				$.post('/utilities/settings', {
					'action': 'updateEmail',
					'password': password,
					'emailNew': emailNew
				}, function(data){
					
					switch (data.status) {
						case 'success':
							$('.settingsItemLower[name=email]').html(data.content.lower);
							break;
							
						case 'invalidPassword':
							$('.settingsErrorText[name=emailPassword]').text('*Invalid Password');
							break;
					}
					
				}, 'json');
			}
			else {
			
				$('.settingsErrorText[name=emailNew]').text('*Email fields must match');
				$('.settingsErrorText[name=emailConfirm]').text('*Email fields must match');
			}
		}
		
		
	}
	
	var settingsEmailSubmit = new button('.formButtonOver[name=settingsEmailSubmit]', '.formButton[name=settingsEmailSubmit]', null, null, function(){
		emailSubmit();
	});
	
	/* Email */
	
	/* Password */
	
	function passwordSubmit(){
		var password = $('.settingsInput[name=passwordOld]').attr('value');
		var newPassword = $('.settingsInput[name=passwordNew]').attr('value');
		var confirmPassword = $('.settingsInput[name=passwordConfirm]').attr('value');
		
		if (newPassword == confirmPassword) {
			$.post('/utilities/settings', {
				'action': 'updatePassword',
				'password': password,
				'newPassword': newPassword
			}, function(data){
			
				switch (data.status) {
					case 'success':
						$('.settingsItemLower[name=password]').html(data.content.lower);
						break;
						
					case 'invalidPassword':
						$('.settingsErrorText[name=passwordOld]').text('*Invalid Password');
						break;
				}
				
			}, 'json');
		}
		else {
			$('.settingsErrorText[name=passwordConfirm]').text('*Password fields must match');
			$('.settingsErrorText[name=passwordNew]').text('*Password fields must match');
		}
	}
	
	var settingsPasswordSubmit = new button('.formButtonOver[name=settingsPasswordSubmit]', '.formButton[name=settingsPasswordSubmit]', null, null, function(){
		passwordSubmit();
	});
	
	$('.settingsInput[name=passwordNew]').keyup(function(){
		if ($('.settingsInput[name=passwordNew]').val().length < 3) {
			$('.settingsErrorText[name=passwordNew]').text('minimum 3 characters');
		}
		
		if ($('.settingsInput[name=passwordNew]').val().length >= 18) {
			$('.settingsErrorText[name=passwordNew]').text('maximum 18 characters');
		}
		
		if ($('.settingsInput[name=passwordNew]').val().length >= 3 && $('.settingsInput[name=passwordNew]').val().length <= 18) {
			$('.settingsErrorText[name=passwordNew]').text('');
		}
		
		//include some what to remind people to not use special characters.
		
	});
	
	/* Password */
	
	/* Mobile */
	
	function mobileSubmit(){
		var password = $('.settingsInput[name=mobilePassword]').attr('value');
		var mobileNumber = $('.settingsInput[name=mobileNumber]').attr('value');
		var mobileService = $('.settingsInput[name=mobileService]').attr('value');
		
		var numberFilter = /[^0-9\(*\)*\ *\-*]/gi;
		
		if (!numberFilter.test(mobileNumber)){
			
			mobileNumber = mobileNumber.replace(/[\-\(\)\*\-\ ]/g, '');
			
			var status = false;
			
			switch (mobileNumber.length){
				case 10:
					var status = true;
				break;
				
				case 11:
					if (mobileNumber.charAt(0) == 1){
						var status = true;
					}
					else{
						var status = false;
						$('.settingsErrorText[name=mobileNumber]').text('*First digit must be 1');
					}
				break;
			}
			
			if (mobileNumber.length < 10 || mobileNumber.length > 11){
				$('.settingsErrorText[name=mobileNumber]').text('*Must be between 10 and 11 digits');
				var status = false;
			}
			
			if (status == true) {
				
				$.post('/utilities/settings', {
					'action': 'updateMobile',
					'password': password,
					'mobileNumber': mobileNumber,
					'mobileService': mobileService
				}, function(data){
				//alert(data);
					switch (data.status) {
						case 'success':
							$('.settingsItemLower[name=mobile]').html(data.content.lower);
							
							//MobileConfirmSubmit
							
							$('.settingsInput').focus(function(){
								var tag = $(this).attr('name');
								$('.settingsErrorText[name='+tag+']').text('');
							});
							
							var settingsMobileSubmit = new button('.formButtonOver[name=settingsMobileConfirmSubmit]', '.formButton[name=settingsMobileConfirmSubmit]', null, null, function(){
								mobileConfirmSubmit();
							});
							
							break;
							
						case 'invalidPassword':
							$('.settingsErrorText[name=mobilePassword]').text('*Invalid Password');
							break;
						case 'numberUnavailable':
						
							break;
					}
					
				}, 'json');
			}
		}
		else{
			$('.settingsErrorText[name=mobileNumber]').text('*Only digits, (, ), -, and spaces allowed');
		}
	}
	
	function mobileConfirmSubmit(){
		var mobileCode = $('.settingsInput[name=mobileConfirm]').attr('value');
		
		$.post('/utilities/settings',{
			'action' : 'validateMobile',
			'mobileCode' : mobileCode
		}, function(data){
			switch(data.status){
				case 'success':
					$('.settingsItemLower[name=mobile]').html(data.content.lower);
				break;
				
				case 'invalidCode':
					$('.settingsErrorText[name=mobileConfirm]').text('*Invalid Password');
				break;
				
				case 'overAttempts':
					$('.settingsItemLower[name=mobile]').html(data.content.lower);
					$('.settingsItemUpper[name=mobile]').html(data.content.upper);
				break;
			}
		}, 'json');
		
	}
	
	mobileNumberText();
	function mobileNumberText(){
		
		$('.settingsInput[name=mobileNumber]').focus(function(){
			var status = $(this).attr('status');
			
			if (status == 'on') {
			
			}
			else {
				$('.settingsInput[name=mobileNumber]').replaceWith("<input class=settingsInput name=mobileNumber status=on></input>");
				mobileNumberText();
			}
			
			$('.settingsErrorText[name=mobileNumber]').text('');
			
		});
		
		$('.settingsInput[name=mobileNumber]').blur(function(){
			var value = $(this).attr('value');
			
			if (value == '') {
				$('.settingsInput[name=mobileNumber]').replaceWith("<input class=settingsInput value='Example: 123-456-7890' name=mobileNumber></input>");
				mobileNumberText();
			}
			else {
				
			}
		});
	}
	
	var settingsMobileSubmit = new button('.formButtonOver[name=settingsMobileSubmit]', '.formButton[name=settingsMobileSubmit]', null, null, function(){
		mobileSubmit();
	});
	
	/* Mobile */
	
	/* Why */
	
	function whySubmit(){
		
		var status = false;
		
		var password = $('.settingsInput[name=whyPassword]').attr('value');
		var why = $('.settingsInputLarge[name=why]').attr('value');
		
		var textFilter = /[\<\>]/g;
		
		if (!textFilter.test(why)){
			status = true;
		}
		else{
			$('.settingsErrorText[name=whyPassword]').text('*No tags allowed');
			status = false;
		}
		
		if (status == true) {
			
			$.post('/utilities/settings', {
				'action': 'updateWhy',
				'password': password,
				'why': why
			}, function(data){
				
				//alert(data.content.lower);
				
				switch (data.status){
					
					case 'success':
						$('.settingsItemLower[name=why]').html(data.content.lower);
						$('.settingsItemUpper[name=why]').html(data.content.upper);
					break;
					
					case 'invalidPassword':
						$('.settingsErrorText[name=whyPassword]').text('*Invalid Password');
					break;
					
				}
				
			}, 'json');
		}
		
		
	}
	
	var settingsWhySubmit = new button('.formButtonOver[name=settingsWhySubmit]', '.formButton[name=settingsWhySubmit]', null, null, function(){
		whySubmit();
	});
	
	/* Why */
}
