//Copyright © 2002 - 2010 PracticeWEB Ltd
function ExplorerFix() {
	for (a in document.links) document.links[a].onfocus = document.links[a].blur;
}

//Disabled Explorer fix as it conflicts with js menus
//if (document.all) { document.onmousedown = ExplorerFix; }


function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function writeDate() { // Written by Phil Collins of redweb, v1.0
  //Monday 11th March 2002
  var isNetscape = (navigator.appName.substring(0,8) == "Netscape") ? true : false;
  var today = new Date();
  var day = today.getDate();
  var year = today.getYear();
  var endDay = "th";
  var arrDayofWeek = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  var arrMonthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
  
  if (isNetscape) {year = (year - 1) + 1901;}
  if ((day == "1") || (day == "21") || (day == "31")) {endDay = "st";}
  if ((day == "2") || (day == "22")) {endDay = "nd";}
  if ((day == "3") || (day == "23")) {endDay = "rd";}
  document.write(arrDayofWeek[today.getDay()] + " " + day + endDay + " " + arrMonthNames[today.getMonth()] + " " + year);
}

function v_number(number)
{
	var digits="0123456789.£";
	if (number=="£") {return false;}
	if (number.length==0) {return false;}
	for (var i=0;i<number.length;i++){if (digits.indexOf(number.substring(i,i+1))==-1 && number.substring(i,i+1)!="."){return false;}}
	if (number<0) {return false;}
	return true;
}

function formatCurrency(number){

    number = Math.round(number*100)/100;

	var decimalPos;
	var string = number.toString();
	var zerostring = "";
	
	decimalPos = string.indexOf(".");
	
	if (decimalPos != -1) {
	  if (string.charAt(decimalPos+2) == "") {
  	  zerostring = "0";
  	}
	} else {
	  zerostring = ".00";
	}
	
	return("£" + number + zerostring);

}

function calculateMillion(){

	//load values from form into variables

	var frm=document.millioncalc;
	var s=frm.start_figure.value;
	var d=frm.month_deposit.value;
	var r=frm.avg_interest.value;
	var f=frm.avg_inflation.value;
	var t=frm.final_figure.value;
                   		
	//initialise those variables for calculation
	
    var i=0;
    var h=0;
    var x=0;
	var n=0;
	var y=0;
	var p=0;
	
	//validate inputs
	
	var errorMessage="";
	
	if (!v_number(s)) {errorMessage+="Starting figure,\n";}
	if (!v_number(d)) {errorMessage+="Monthly deposit,\n";}
	if (!v_number(r)) {errorMessage+="Average annual interest rate,\n";}
	if (!v_number(f)) {errorMessage+="Average annual inflation rate,\n";}
	if (!v_number(t)) {errorMessage+="Final figure desired,\n";}
	

	if (errorMessage.length!=0) {alert("The following entries are incorrect:\n\n"+errorMessage+"\nPlease correct these entries and\ntry again.");return false;}
	
	if (s.substring(0,1)=="£") {s=s.substring(1);}
	if (d.substring(0,1)=="£") {d=d.substring(1);}
	if (t.substring(0,1)=="£") {t=t.substring(1);}

	s = parseInt(s);
	t = parseInt(t);
	f = parseInt(f);
	y = parseInt(y);                    	
	
    r = ( r/100 );
    f = ( f/100 );
  
	i = ( r/12 );
	h = ( d/i );
	x = ( ( t+h ) / ( s+h ));
	n = ( ( Math.log(x) ) / ( Math.log(1+i) ) );
	y = ( n/12 );
	p = ( t / ( Math.pow((1+f),y) ) );
	
	//load text boxes with results
	
	frm.output_years.value=Math.round(y*10)/10+" years";
	frm.output_value.value=formatCurrency(p);
	
	frm.amountT.value = formatCurrency(t);
	
	recalculate();
	
	return false;
}


function recalculate()
{
	//load values from form into variables

	var frm=document.millioncalc;
	var s=frm.start_figure.value;
	var d=frm.month_deposit.value;
	var r=frm.avg_interest.value;
	var f=frm.avg_inflation.value;
	var t=frm.final_figure.value;
    
    s = parseInt(s);
	t = parseInt(t);
	f = parseInt(f);
	t = parseFloat(t);
    
    var a = frm.annualIncome.value;
    var m = frm.monthlyIncome.value;
    var j = frm.percentageInterest.value;
    
    j = parseFloat(j);
    m = parseFloat(m);
    a = parseFloat(a);
    
    
    var k = 0.0;
    var m = 0.0;
    var a = 0.0;
    
    k = j/100;
    m = t  * k/12;
    a = t  * Math.pow((1+k/12), 12) - t;

    var mFormatted = formatCurrency(m);
    var aFormatted = formatCurrency(a); 
    
    frm.monthlyIncome.value = mFormatted.replace("", "");
    frm.annualIncome.value = aFormatted.replace("", "");
    
	
}