$(document).ready(function() {

	var newPhonenumberBoxOpen = false;
	var newEmailBoxOpen = false;
	var newAddressBoxOpen = false;
	var timer = false;
	var xButtonShowing = false;
	var spinnerShowing = false;
	
	
	function handleSpinner(action) {
			if(action == 'show') {
					$('#email-field-spinner').show();
					spinnerShowing = true;
			}else if(action == 'hide') {
					$('#email-field-spinner').hide();
					spinnerShowing = false;
			}
	}
	
	function handleXButton(action) {
			if(action == 'show') {
					$('#email-field-x').show();
					xButtonShowing = true;
			}else if(action == 'hide') {
					$('#email-field-x').hide();
					xButtonShowing = false;
			}
	}
	
	
	function createSelectBoxString(gaType, valueSelected) {
			var newString = '';
			
			if(gaType == 4) { // phonenumber
					newString = '<select class="contact-select-box">';
												if(valueSelected == 'Mobile' || valueSelected == 'mobile') {
														newString += '<option selected="yes">Mobile</option>';
												}else{
														newString += '<option>Mobile</option>';
												}
												if(valueSelected == 'Home' || valueSelected == 'home') {
														newString += '<option selected="yes">Home</option>';
												}else{
														newString += '<option>Home</option>';
												}
												if(valueSelected == 'Work' || valueSelected == 'work') {
														newString += '<option selected="yes">Work</option>';
												}else{
														newString += '<option>Work</option>';
												}
												if(valueSelected == 'Google Voice' || valueSelected == 'google voice') {
														newString += '<option selected="yes">Google Voice</option>';
												}else{
														newString += '<option>Google Voice</option>';
												}
												if(valueSelected == 'Fax' || valueSelected == 'fax') {
														newString += '<option selected="yes">Fax</option>';
												}else{
														newString += '<option>Fax</option>';
												}
												if(valueSelected == 'Other' || valueSelected == 'other') {
														newString += '<option selected="yes">Other</option>';
												}else{
														newString += '<option>Other</option>';
												}
					newString += '</select>';
			}else if(gaType == 1) { // email
					newString = '<select class="contact-select-box">';
												if(valueSelected == 'Personal' || valueSelected == 'personal') {
														newString += '<option selected="yes">Personal</option>';
												}else{
														newString += '<option>Personal</option>';
												}
												if(valueSelected == 'Work' || valueSelected == 'work') {
														newString += '<option selected="yes">Work</option>';
												}else{
														newString += '<option>Work</option>';
												}
												if(valueSelected == 'Other' || valueSelected == 'other') {
														newString += '<option selected="yes">Other</option>';
												}else{
														newString += '<option>Other</option>';
												}
					newString += '</select>';
			}else if(gaType == 2) { // postal
					newString = '<select class="contact-select-box">';
												if(valueSelected == 'Home' || valueSelected == 'home') {
														newString += '<option selected="yes">Home</option>';
												}else{
														newString += '<option>Home</option>';
												}
												if(valueSelected == 'Work' || valueSelected == 'work') {
														newString += '<option selected="yes">Work</option>';
												}else{
														newString += '<option>Work</option>';
												}
												if(valueSelected == 'Other' || valueSelected == 'other') {
														newString += '<option selected="yes">Other</option>';
												}else{
														newString += '<option>Other</option>';
												}
					newString += '</select>';
			}
			
			return newString;
	}
	
	
	function resetButtons(entry, gaType) {
					$('#add-contact-info').css({display:'none'});
					if(gaType == 4) { // phonenumber
							$('#call-button-area').empty().append(
								'<a href="tel:'+entry.value+'" id="call-button" title="Dial my phone number">'+
										'<div class="button-active green-active tiny left">CALL</div>'+
								'</a>'
							);
							$('#text-button-area').empty().append(
								'<a href="sms:'+entry.value+'" id="text-button" title="Send me a text message">'+
										'<div class="button-active green-active tiny left" style="margin:0px 3px">TEXT</div>'+
								'</a>'
							);
					}else if(gaType == 1) { // email
							$('#email-button-area').empty().append(
								'<a href="mailto:'+entry.value+'" id="email-button" title="Send me an email">'+
										'<div class="button-active green-active tiny right">EMAIL</div>'+
								'</a>'
							);
					}
					if(useSharedInfo == false) {
							$('#contact-buttons-area').css({display:'inline-block'});
					}
	
	}
	
	function turnButtonsOff(gaType) {
			
					if(gaType == 4) { // phonenumber
							$('#call-button-area').empty().append('<div class="button-active inactive tiny left">CALL</div>');
							$('#text-button-area').empty().append('<div class="button-active inactive tiny left" style="margin:0px 3px">TEXT</div>');
					}else if(gaType == 1) { // email
							$('#email-button-area').empty().append('<div class="button-active inactive tiny right">EMAIL</div>');
					}
									
									
	}
	
	function createPermissionsMenuItemsString(address) {
			var distance = address.permission_distance;
			var string = '';
			if(distance <= 0){
					string = ''+
					'<div class="perm-menu-item perm-menu-selected" permlevel="0" gatype="'+address.type_id+'" gaid="'+address.id+'">Me (private)</div>'+
          '<div class="perm-menu-item" permlevel="500" gatype="'+address.type_id+'" gaid="'+address.id+'">My inner circle</div>'+
          '<div class="perm-menu-item" permlevel="1000" gatype="'+address.type_id+'" gaid="'+address.id+'">My friends</div>'+
          '<div class="perm-menu-item" permlevel="1500" gatype="'+address.type_id+'" gaid="'+address.id+'">My contacts</div>'+
          '<div class="perm-menu-item" permlevel="2000" gatype="'+address.type_id+'" gaid="'+address.id+'">Everyone (public)</div>';
			}else if(distance <= 500) {
					string = ''+
					'<div class="perm-menu-item perm-menu-selected" permlevel="0" gatype="'+address.type_id+'" gaid="'+address.id+'">Me (private)</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="500" gatype="'+address.type_id+'" gaid="'+address.id+'">My inner circle</div>'+
          '<div class="perm-menu-item" permlevel="1000" gatype="'+address.type_id+'" gaid="'+address.id+'">My friends</div>'+
          '<div class="perm-menu-item" permlevel="1500" gatype="'+address.type_id+'" gaid="'+address.id+'">My contacts</div>'+
          '<div class="perm-menu-item" permlevel="2000" gatype="'+address.type_id+'" gaid="'+address.id+'">Everyone (public)</div>';
			}else if(distance <= 1000) {
					string = ''+
					'<div class="perm-menu-item perm-menu-selected" permlevel="0" gatype="'+address.type_id+'" gaid="'+address.id+'">Me (private)</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="500" gatype="'+address.type_id+'" gaid="'+address.id+'">My inner circle</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="1000" gatype="'+address.type_id+'" gaid="'+address.id+'">My friends</div>'+
          '<div class="perm-menu-item" permlevel="1500" gatype="'+address.type_id+'" gaid="'+address.id+'">My contacts</div>'+
          '<div class="perm-menu-item" permlevel="2000" gatype="'+address.type_id+'" gaid="'+address.id+'">Everyone (public)</div>';
			}else if(distance <= 1500) {
					string = ''+
					'<div class="perm-menu-item perm-menu-selected" permlevel="0" gatype="'+address.type_id+'" gaid="'+address.id+'">Me (private)</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="500" gatype="'+address.type_id+'" gaid="'+address.id+'">My inner circle</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="1000" gatype="'+address.type_id+'" gaid="'+address.id+'">My friends</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="1500" gatype="'+address.type_id+'" gaid="'+address.id+'">My contacts</div>'+
          '<div class="perm-menu-item" permlevel="2000" gatype="'+address.type_id+'" gaid="'+address.id+'">Everyone (public)</div>';
			}else if(distance <= 2000) {
					string = ''+
					'<div class="perm-menu-item perm-menu-selected" permlevel="0" gatype="'+address.type_id+'" gaid="'+address.id+'">Me (private)</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="500" gatype="'+address.type_id+'" gaid="'+address.id+'">My inner circle</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="1000" gatype="'+address.type_id+'" gaid="'+address.id+'">My friends</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="1500" gatype="'+address.type_id+'" gaid="'+address.id+'">My contacts</div>'+
          '<div class="perm-menu-item perm-menu-selected" permlevel="2000" gatype="'+address.type_id+'" gaid="'+address.id+'">Everyone (public)</div>';
			}
			return string;
	}
	
	function createContactRowsString(generic_addresses, gaType){
			
			var newString = '';
			var count = 1;
			
			if(generic_addresses.length > 0) {
					$(generic_addresses).each(function(){
							if(count == 1){
									addedClass = "contact-row-primary";
							}else{
									addedClass = "";
							}
							
							newString += ''+
							'<div class="contact-row '+addedClass+'">'+
			    				'<span class="contact-row-value small" gatype="'+this.generic_address.type_id+'" gavalue="'+this.generic_address.value+'" galabel="'+this.generic_address.label+'" gaid="'+this.generic_address.id+'">'+
			    						'<div class="contact-value left paragraph">'+this.generic_address.value+'</div>'+
			    						
											'<div class="perm-container">'+
													'<img src="/images/perm-'+this.generic_address.permission_distance+'.png" width="22px" height="22px" class="perm-button right" title="Up to -everyone- can see this" element-type="address" element-id="'+this.generic_address.id+'">'+
								          '<br class="clear" />'+
								          '<div class="perm-menu hidden">'+
								            '<div class="perm-menu-title">How exposed do you want this information to be?</div>'+
								            '<div class="perm-menu-selections" permdefault="'+this.generic_address.permission_distance+'">'+
								              createPermissionsMenuItemsString(this.generic_address)+
								            '</div>'+
								          '</div>'+
								      '</div>'+
      
			    						'<span class="edit-contact-row">edit</span>&nbsp;'+
			    						'<span class="contact-title tiny grey-light">'+this.generic_address.label+'</span>'+
			    				'</span>';
			    				if(count != 1) {
			    						newString += ''+
			    						'<img class="move-up-button" title="Move this to the top to make it the primary" src="/images/arrow-up-primary.png" height="10px" width="22px" />';
			    				}
			    		newString += ''+
			    		'</div>';
			    		count++;
					});
					
			}else{
					if(gaType == 4) { // phonenumber
							newString = '<div><i class="tiny grey-light">no phone numbers</i></div>';
							turnButtonsOff(gaType = 4);
					}else if(gaType == 1) { // email
							newString = '<div><i class="tiny grey-light">no email addresses</i></div>';
							turnButtonsOff(gaType = 1);
					}else if(gaType == 2) { // postal
							newString = '<div><i class="tiny grey-light">no addresses</i></div>';
					}
			}
			
			return newString;
			
	}
	
	/////////////////////////////////////////////////////////////////////
	//////////////////// permissions
	/////////////////////////////////////////////////////////////////////
	function getPermSelectionRow(level) {
			var permRowX = 2000;
			if(level <= 0) {
					permRowX = 1;
			}else if(level <= 500) {
					permRowX = 2;
			}else if(level <= 1000) {
					permRowX = 3;
			}else if(level <= 1500) {
					permRowX = 4;
			}else if(level <= 2000) {
					permRowX = 5;
			}
			return permRowX
	}
	
	
	$('.perm-button').live('click', function() {
			var parent = $(this).parent();
			var permMenu = $(parent).find("div:[class*='perm-menu']");
			if($(permMenu).css('display') == 'none') {
				$(permMenu).slideDown(300);
			}else{
				$(permMenu).slideUp(300);
			}
	});
	
	$('.perm-menu-item').live('mouseover', function(){
			var permLevel = parseInt( $(this).attr('permlevel') );
			var indexNumber = getPermSelectionRow(permLevel);
			$(this).parent().children().removeClass("perm-menu-selected");
			$(this).parent().find("div:lt("+indexNumber+")").addClass("perm-menu-selected");
	});
	
	$('.perm-menu-selections').live('mouseout', function(){
			var permDefault = parseInt($(this).attr('permdefault'));
			$(this).children().removeClass("perm-menu-selected");
			$(this).find("div:lt("+getPermSelectionRow(permDefault)+")").addClass("perm-menu-selected");
	});
	
	$('.perm-menu-item').live('click', function(){
			var gaId = $(this).attr('gaid');
			var gaType = $(this).attr('gatype');
			var level = $(this).attr('permlevel');
			var thisContactRowsBox = $(this).parent().parent().parent().parent().parent().parent();
			
			$.post("/users/set_address_permissions", {authenticity_token: authToken, gaid: gaId, type: gaType, level: level}, function(data) {
					if(data.response == 'worked') {
							var newString = createContactRowsString(data.generic_addresses, gaType);
							$(thisContactRowsBox).empty().append(newString);
					}else{
							alert('something went wrong . . ');
					}
			}, "json");
			
	});
	
	/////////////////////////////////////////////////////////////////////
	$('.contact-firstname, .contact-lastname').live('keydown', function(e){
			if( $(this).attr('value').length > 80 && e.which != 8 && e.which != 13) {
					alert('too long dude');
					return false;
			}
	});
	
	$('#show-contact-button').click(function(){
			if(contactBoxOpen == false) {
					$('#contact-info').slideDown(300);
					$('#show-contact-button').empty().append("Hide Info");
					contactBoxOpen = true;
			}else{
					$('#contact-info').slideUp(300);
					$('#show-contact-button').empty().append("Contact Info");
					contactBoxOpen = false;
			}
	});
	
	$('#name-form-submit').click(function(){
			if( $('.contact-firstname').attr('value') != '' && $('.contact-firstname').attr('value') != $('.contact-firstname').attr('defaultvalue') ){
					return true;
			}else{
					alert('you must enter a name to save.');
					return false;
			}
	});
	
	$('.edit-contact-row').live('click', function() {
			var thisContactRowValue = $(this).parent();
			var gaType = $(thisContactRowValue).attr('gatype');
			
			if(gaType == 'name') {
					var firstName = $(thisContactRowValue).attr('firstname');
					var lastName = $(thisContactRowValue).attr('lastname');
					var org = $(thisContactRowValue).attr('org');
					if(org == "true") {
						var orgString = ''+
								'<input class="contact-lastname update-contact-value-field hidden" type="text" gatype="'+gaType+'" size="18" defaultvalue="last name" value="'+lastName+'"/>'+
								'<div class="paragraph_group"><input type="checkbox" name="org" defaultvalue="true" checked value="true" class="org"/> Organization</div>';
					}else{
						var orgString = ''+
								'<input class="contact-lastname update-contact-value-field" type="text" gatype="'+gaType+'" size="18" defaultvalue="last name" value="'+lastName+'"/>'+
								'<div><input type="checkbox" name="org" defaultvalue="false" value="true" class="org"/> Organization</div>';
					}
					
					var newString = ''+
							'<input class="name-info-hidden" type="hidden" org="'+org+'" firstname="'+firstName+'" lastname="'+lastName+'" value=""/>'+
							'<input class="contact-firstname update-contact-value-field" type="text" gatype="'+gaType+'" size="18" defaultvalue="first name" value="'+firstName+'"/>'+
						  '<br class="clear" />'+
							orgString+
							'<div class="contact-row-actions">'+
								'<input class="cancel-new-contact-value button-active-sm gray-active-sm" gatype="'+gaType+'" type="button" value="cancel"/>'+
								'<input class="update-entry-value button-active-sm" type="button" value="save changes" />'+
							'</div>';
					
			
			}else{
					var permissionBoxString = $(thisContactRowValue).find('div:[class*="perm-container"]').html();
					var gaId = $(thisContactRowValue).attr('gaid');
					var gaTitle = $(thisContactRowValue).attr('galabel');
					var gaValue = $(thisContactRowValue).attr('gavalue');
					
					var selectBoxString = createSelectBoxString(gaType, gaTitle);
					
					if($(thisContactRowValue).parent().find('img:last').hasClass('move-up-button')) {
							 var showArrow = 'true';
					}else{
							var showArrow = 'false';
					}
					
					var newString = ''+
							'<input class="update-contact-value-field left" type="text" size="18" gatype="'+gaType+'" gaid="'+gaId+'" origvalue="'+gaValue+'" value="'+gaValue+'" hasarrow="'+showArrow+'"/>'+
							'<div class="perm-container hidden">'+permissionBoxString+'</div>'+
							selectBoxString+
							'<div class="contact-row-actions">'+
								'<input class="cancel-new-contact-value button-active-sm gray-active-sm" gatype="'+gaType+'" type="button" value="cancel"/>'+
								'<input class="delete-contact-row button-active-sm gray-active-sm" type="button" value="delete" />'+
								'<input class="update-entry-value button-active-sm" type="button" value="save changes" />'+
							'</div>';
					
			}
			
			$(thisContactRowValue).parent().empty().append(newString);
			
	});
	
	$('.org').live('click', function() {
			if($(this).attr('checked') == true) {
					$('.contact-firstname').attr('value', 'organization name').attr('defaultvalue', 'organization name').addClass('grey-light').focus(function(){
							if($(this).attr('value') == $(this).attr('defaultvalue')) {
									$(this).attr('value', '');
									$(this).removeClass('grey-light');
							}
					}).blur(function(){
							if($(this).attr('value') == '') {
									$(this).attr('value', $(this).attr('defaultvalue'));
									$(this).addClass('grey-light');
							}
					});
					$('.contact-lastname').attr('value', 'last name').attr('defaultvalue', 'last name').hide();
			}else{
					$('.contact-firstname').attr('value', 'first name').attr('defaultvalue', 'first name').addClass('grey-light').focus(function(){
							if($(this).attr('value') == $(this).attr('defaultvalue')) {
									$(this).attr('value', '');
									$(this).removeClass('grey-light');
							}
					}).blur(function(){
							if($(this).attr('value') == '') {
									$(this).attr('value', $(this).attr('defaultvalue'));
									$(this).addClass('grey-light');
							}
					});
					$('.contact-lastname').attr('defaultvalue', 'last name').attr('value', 'last name').addClass('grey-light').show().focus(function(){
							if($(this).attr('value') == $(this).attr('defaultvalue')) {
									$(this).attr('value', '');
									$(this).removeClass('grey-light');
							}
					}).blur(function(){
							if($(this).attr('value') == '') {
									$(this).attr('value', $(this).attr('defaultvalue'));
									$(this).addClass('grey-light');
							}
					});
			}
	});
	
	$('.cancel-new-contact-value').live('click', function(){
			var thisButton = this;
			var gaType = $(this).attr('gatype');
			var thisRow = $(thisButton).parent().parent();
			
			if(gaType == 'name') {
					var nameInfo = $(thisRow).find('input:[class*="name-info-hidden"]');
					var firstName = $(nameInfo).attr('firstname');
					var lastName = $(nameInfo).attr('lastname');
					var org = $(nameInfo).attr('org');
					
					var newString = '<span class="contact-row-value small" gatype="name" firstname="'+firstName+'" lastname="'+lastName+'" org="'+org+'">'+
							    						'<div class="contact-value left paragraph">'+firstName+' '+lastName+'</div>'+
						                  '<br class="clear" />'+
				    									'<span class="edit-contact-row">edit</span>'+
							    				'</span>';
													
			}else{
					var thisInputField = $(thisRow).find('input:[class*="update-contact-value-field"]');
					var permissionBoxString = $(thisRow).find('div:[class*="perm-container"]').html();
					var thisSelectBox = $(thisRow).find('select:first');
					var gaId = $(thisInputField).attr('gaid');
					var gaLabel = $(thisSelectBox).attr('value');
					var gaValue = $(thisInputField).attr('origvalue');
					
					if($(thisInputField).attr('hasarrow') == 'false') {
							var showArrow = false;
					}else{
							var showArrow = true;
					}
					

					var newString = '<span class="contact-row-value small" gatype="'+gaType+'" gavalue="'+gaValue+'" galabel="'+gaLabel+'" gaid="'+gaId+'">'+
															'<div class="contact-value left paragraph">'+gaValue+'</div>'+
															'<div class="perm-container">'+permissionBoxString+'</div>'+
															'<span class="edit-contact-row">edit</span>&nbsp;'+
															'<span class="contact-type tiny grey-light">'+gaLabel+'</span>'+
													'</span>';
					if(showArrow == true) {
							newString += '<img class="move-up-button" title="Move this to the top to make it the primary" src="/images/arrow-up-primary.png" height="10px" width="22px"/>';
					}
					
			}
			
			$(thisRow).empty().append(newString);
			
	});
	
	$('.update-entry-value').live('click', function(){
			var thisButton = this;
			var thisRow = $(thisButton).parent().parent();
			var thisContactRowsBox = $(thisRow).parent();
			var thisInfo = $(thisRow).find('input:[class*="update-contact-value-field"]');
			var gaType = $(thisInfo).attr('gatype');
			
			if(gaType == 'name') {
					var firstNameRow = $(thisRow).find('input:[class*="contact-firstname"]'); 
					var lastNameRow = $(thisRow).find('input:[class*="contact-lastname"]'); 
					var orgRow = $(thisRow).find('input:[class*="org"]');
					
					if( $(firstNameRow).attr('value') != $(firstNameRow).attr('defaultvalue') && $(firstNameRow).attr('value') != '') {
							var firstName = $(firstNameRow).attr('value');
					}else{
							alert('you must enter a name to save.');
							return false;		
					}
					if( $(lastNameRow).attr('value') != $(lastNameRow).attr('defaultvalue') ) {
							var lastName = $(lastNameRow).attr('value');
					}else{
							var lastName = '';	
					}
					
					$.post("/users/update_name", {authenticity_token: authToken, fn: firstName, ln:lastName, org: $(orgRow).attr('checked')}, function(data) {
							if(data.response == 'worked') {
									$(thisContactRowsBox).empty().append(''+
												'<div class="contact-row" gatype="name">'+
								    				'<span class="contact-row-value small" gatype="name" firstname="'+data.fn+'" lastname="'+data.ln+'" org="'+data.org+'">'+
								    						'<div class="contact-value paragraph">'+data.fn+' '+data.ln+'</div>'+
					    									'<span class="edit-contact-row">edit</span>'+
								    				'</span>'+
								    		'</div>');
									
							}else if(data.response == 'failed') {
									alert('hmm, something went wrong');
							}
							
					}, "json");
					
					
			}else{
					var thisSelectBox = $(thisRow).find('select:[class*="contact-select-box"]');
					var gaId = $(thisInfo).attr('gaid');
					var gaValue = $(thisInfo).attr('value');
					var gaLabel = $(thisSelectBox).attr('value');
					
					if($(thisInfo).attr('hasarrow') == 'false') {
							var showArrow = false;
					}else{
							var showArrow = true;
					}
					
					$(thisRow).find('span:first').empty().append('<img src="/images/robo-loader.gif" width="16px" height="16px"/>');
					
					$.post("/users/update_entry", {authenticity_token: authToken, type: gaType, gaid: gaId, value: gaValue, label: gaLabel}, function(data) {
							if(data.response == 'worked') {
											
									var newString = createContactRowsString(data.generic_addresses, gaType);
									
									$(thisContactRowsBox).empty().append(newString);
									
									$('#feedback-area').slideUp(100);
									
							}else if(data.response == 'failed') {
									alert('failed');
							}
							
					}, "json");
					
			}
			
	});
	
	$('.delete-contact-row').live('click', function(){
			
			var answer = confirm("Are you sure you want to delete this info?");
			
			if(answer) {
					var thisParent = $(this).parent().parent();
					var thisInfo = $(thisParent).find('input:[class*="update-contact-value-field"]');
					var thisContactRowsBox = $(thisParent).parent();
					
					var gaType = $(thisInfo).attr('gatype');
					var gaId = $(thisInfo).attr('gaid');
					
					
					$(thisParent).find('span:first').empty().append('<img src="/images/robo-loader.gif" width="16px" height="16px"/>');
					
					$.post("/users/delete_entry",{authenticity_token: authToken, type: gaType, gaid: gaId}, function(data) {
							if(data.response == 'worked') {
									
									var newString = createContactRowsString(data.generic_addresses, gaType);
									
									$(thisContactRowsBox).empty().append(newString);
									
							}else if(data.response == 'failed') {
									alert('failed');
							}
					}, "json");
			}
			
	});
	
	$('.move-up-button').live('click', function(e){
			var thisButton = this;
			var thisContactRow = $(thisButton).parent();
			var thisContactRowsBox = $(thisContactRow).parent();
			var thisInfo = $(thisContactRow).find('span:[class*="contact-row-value"]');
			
			var gaType = $(thisInfo).attr('gatype');
			var gaId = $(thisInfo).attr('gaid');
			
			$.post("/users/make_first", {authenticity_token: authToken, type: gaType, gaid: gaId}, function(data) {
					
					if(data.response == 'worked') {
									
							var newString = createContactRowsString(data.generic_addresses, gaType);
							
							$(thisContactRowsBox).empty().append(newString);
							
					}else if(data.response == 'failed') {
							alert('failed');
					}
					
			
			}, "json");
			
	});
	
	$('#add-phonenumber').click(function(){
			if(newPhonenumberBoxOpen == false) {
					$('#new-phonenumber-box').slideDown(200);
					newPhonenumberBoxOpen = true;
			}else{
					$('#new-phonenumber-box').slideUp(200);
					newPhonenumberBoxOpen = false;
			}
	});
	
	$('#add-email').click(function(){
			if(newEmailBoxOpen == false) {
					$('#new-email-box').slideDown(200);
					newEmailBoxOpen = true;
			}else{
					$('#new-email-box').slideUp(200);
					newEmailBoxOpen = false;
			}
	});
	
	$('#add-address').click(function(){
			if(newAddressBoxOpen == false) {
					$('#new-address-box').slideDown(200);
					newAddressBoxOpen = true;
			}else{
					$('#new-address-box').slideUp(200);
					newAddressBoxOpen = false;
			}
	});
	
	$('.new-entry-textfield').focus(function(){
			if($(this).attr('value') == $(this).attr('defaultvalue')) {
					$(this).attr('value', '');
					$(this).removeClass('grey-light');
			}
	});
	
	$('.new-entry-textfield').blur(function(){
			if($(this).attr('value') == '') {
					$(this).attr('value', $(this).attr('defaultvalue'));
					$(this).addClass('grey-light');
			}
	});
	
	$('.save-entry-button').click(function(){
			var thisButton = this;
			var thisNewEntryBox = $(thisButton).parent().parent();
			var thisSection = $(thisNewEntryBox).parent();
			var gaType = parseInt( $(thisButton).attr('gatype') );
			var gaLabel = $(thisNewEntryBox).find('select:[class*="contact-select-box"]').attr('value');
			
			var textField = $(thisNewEntryBox).find('input:[class*="new-entry-textfield"]');
			var gaValue = $(textField).attr('value');
			//$(textField).attr('value', $(textField).attr('defaultvalue'));
			
			if(gaType == 4) { // phonenumber
					$('#phonenumber-spinner').show();
			}else if(gaType == 1) { // email
					$('#email-spinner').show();
			}else if(gaType == 2) { // postal
					$('#address-spinner').show();
			}
			
			$.post("/users/new_entry", {authenticity_token: authToken, type: gaType, label: gaLabel, value: gaValue}, function(data) {
					
					if(data.response == 'worked') {
							
							$(thisNewEntryBox).slideUp(200);
							newPhonenumberBoxOpen = false;
							newEmailBoxOpen = false;
							newAddressBoxOpen = false;
							
							var newString = createContactRowsString(data.generic_addresses, gaType);
							
							$('.contact-spinner').hide();
							handleXButton(action = 'hide');
							$(textField).attr('value', $(textField).attr('defaultvalue'));
							$(thisSection).find('div:[class*="contact-rows-box"]').empty().append(newString);
							
							$('#feedback-area').slideUp(100);
							 
							
					}else if(data.response == 'failed') {
							alert('failed');
					}
					
					
			}, "json");
			
	});
	
	
	$('.phone-button').click(function(){
			if(is_phone == 'false') {
					alert("Sorry, this button only works from your mobile phone.");
					return false;
			}
	
	
	});
	
	
});
