
//
// © Oscar Zander, www.67years.com
// 


// Innehåller funktioner som används av sidan:
//
//  http://www.67years.com/your_savings.php
//




// Visar alla användarens svar. 
function showAnswerYourSavings()
{
	// Fälten, där användaren har skrivit in input.
	var amount = document.getElementById("amount"); 
	var current_age = document.getElementById("current_age");
	var save_age = document.getElementById("save_age"); 
	var growth = document.getElementById("growth"); 
	
	// Testar alla fältens input. 
	testFieldInput(amount, current_age, save_age, growth); 

	
	// Tar fram "rätt" input. Ersätter t.ex. 1,000 med 1000.
	amount = getCorrectUserInput(amount); 
	current_age = getCorrectUserInput(current_age); 
	save_age = getCorrectUserInput(save_age); 
	growth = getCorrectUserInput(growth); 
	
	// "Förändringsfaktorn" för tillväxt. 
	var growth_answer_factor = new Number(1 + (growth/100));
	growth_answer_factor = growth_answer_factor.toFixed(2);
	
    
    // De olika "feltexterna". Tar även bort mellanrum.
    var amount_error = document.getElementById("amount_error").innerHTML;
	amount_error = amount_error.replace(/ /g, "");
    var current_age_error = document.getElementById("current_age_error").innerHTML;
    current_age_error = current_age_error.replace(/ /g, "");
    var save_age_error = document.getElementById("save_age_error").innerHTML;
    save_age_error = save_age_error.replace(/ /g, "");
    var growth_error = document.getElementById("growth_error").innerHTML;
    growth_error = growth_error.replace(/ /g, "");
    
    
    // Användarens alla input är OK. Startar uträkningen.
	if(amount_error == "" && current_age_error == ""
	&& save_age_error == "" && growth_error == "")  {
	
		// "Potens" och summa.
	    var math_pow = Math.pow(growth_answer_factor, (save_age - current_age));
		var math_pow_number = new Number(math_pow);
		var amount_number = new Number(amount);
		// Användarens slutgiltliga svar. 
		var final_answer = new Number();
	    final_answer = amount_number * math_pow_number;

	
		// Om användarens ålder är 1, så ändras years till year. 
		if(current_age == 1)  {
		    document.getElementById("current_age_years").innerHTML = getYearText();  
		}
		else  {
			document.getElementById("current_age_years").innerHTML = getYearsText(); 
		}		
		
		if(save_age == 1)  {
		    document.getElementById("save_age_years").innerHTML = getYearText();  
		}
		else  {
			document.getElementById("save_age_years").innerHTML = getYearsText(); 
		}
		
		
		// Om användarens input för tillväxt (growth) är negativt,
		// så sätts "-tecken kring ordet grow. 
		if(growth < 0)  {
			document.getElementById("growth_quot_1").innerHTML = "\"";  
			document.getElementById("growth_quot_2").innerHTML = "\""; 
		}
		else  {
			document.getElementById("growth_quot_1").innerHTML = "";  
			document.getElementById("growth_quot_2").innerHTML = ""; 
		}
		
		// Tar fram användarens olika input som ett nummer, 
		// med mellanslag som avskiljare. t.ex. 1 000 000. 
		// Ser även till att rätt textfält är valt. 
		setCurrentTextFieldName("amount");
		amount = getNumberFromUserInput(amount);
		
		setCurrentTextFieldName("current_age");
		current_age = getNumberFromUserInput(current_age); 
		
		setCurrentTextFieldName("save_age");
		save_age = getNumberFromUserInput(save_age);
		
		setCurrentTextFieldName("growth");
		growth = getNumberFromUserInput(growth); 
 
		// Textfältet "amount" skall vara valt när final_answer beräknas. 
		setCurrentTextFieldName("amount");
		// Om final_answer är för stort, omvandlas final_answer till ett meddelande. 
		if (final_answer > 99999999999999999999)  {
			// Tar fram meddelandet
			final_answer = getFinalAnswerTooBig(); 
		}
		// final_answer är inte för stort. 
		else  {
			final_answer = getNumberFromUserInput(final_answer);
		}
		 

		// Visar alla svar. 
		showAllAnswers(growth_answer_factor, amount, current_age,
		save_age, growth, final_answer); 
		
		// Skrollar ner fönstret.
		window.scrollBy(0, 300);
	}
	

	
	// Användarens alla input är INTE OK. Ett felmeddelande kommer upp. 
	else  {
		alert(getErrorMessage5()); 
	}
}



// Testar alla fältens input. 
// @param - de fyra olika fälten.
function testFieldInput(amount, current_age, save_age, growth)
{
	// Om något fält inte har någon input (""), så sätts en nolla in. 
	if(amount.value == "")  {
		amount.value = 0; 
	}
	if(current_age.value == "")  {
		current_age.value = 0; 
	}
	if(save_age.value == "")  {
		save_age.value = 0; 
	}
	if(growth.value == "")  {
		growth.value = 0; 
	}
	
	// Testar att alla fält har en "korrekt" input. 
	testUserInput("amount");
	testUserInput("current_age");
	testUserInput("save_age");
	testUserInput("growth");
}

// Visar alla svar. 
// @param - de olika svaren.
function showAllAnswers(growth_answer_factor, amount, current_age,
save_age, growth, final_answer)
{
	// Visar användarens svar.
	document.getElementById("amount_answer").innerHTML = amount;
	document.getElementById("current_age_answer").innerHTML = current_age;
	document.getElementById("save_age_answer").innerHTML = save_age;
	document.getElementById("growth_answer").innerHTML = growth;
	
		
	// Skriver in användarens "beräkning" bland "svaren".
	document.getElementById("final_answer").innerHTML = final_answer;
	document.getElementById("final_answer_big_text").innerHTML = final_answer;
	document.getElementById("amount_answer_2").innerHTML = amount;
	document.getElementById("growth_answer_factor").innerHTML = 
	growth_answer_factor;
	document.getElementById("age_answer_difference").innerHTML = 
	save_age  - current_age;

	// Ser till att allt blir synligt.
	document.getElementById("final_answer_big").style.visibility = "visible";
	document.getElementById("result_text").style.visibility = "visible";
}



