/*SC Market Star, Brasov, Romania pentru Straight Ahead Studios, Miami, FL*/



function RetireCalc()

{

	this.cage = 25;

	this.rage = 65;

	this.curamt = 5000;

	this.rate = 6;

	this.optamt = 1000000;

	

	this.calculate = RetireCalcCalculate;

	this.retireTable = RetireCalcTable;

	this.set =  RetireCalcSetData;

	this.validate = RetireCalcValidate;

}



function PopulateForm(frm)

{

		frm.cage.value = rcalc.cage;

		frm.rage.value = rcalc.rage;

		frm.curamt.value = toCurrency(rcalc.curamt);

		frm.rate.value = rcalc.rate;

		frm.optamt.value =  toCurrency(rcalc.optamt);

}



function RetireCalcCalculate()

{

		if ( rcalc.validate() ){

			ShowResult();

		}

}



function RetireCalcSetData(obj)

{

	var fld = obj.name;

	var val = obj.value;

	

	if (typeof(val) == "string"){

		val = val.replace(/,/g, "");

	}

	if ( isNaN(val) || (val == "") ) {			

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: A positive numeric value is required in this field.');

			document.retireform[fld].focus();

			return false;

	}

	else{

		this[fld] = val;

	}

	

	if ( (fld == 'cage') &&  ((val <= 0) || (val > 65)) ) {		

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-65.');

			document.retireform[fld].focus();

			return false;

	}

	if ( (fld == 'rage') &&  ((val < 20) || (val > 75)) ) {		

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 20-75.');

			document.retireform[fld].focus();

			return false;

	}

	if (this.cage >= this.rage){

		alert('Age is not a valid entry.\nCurrent age should not be higher than Retirement Age.');

		return false;

	}

	if ( (fld == 'rate') &&  ((val < 1) || (val > 25)) ) {		

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-25.');

			document.retireform[fld].focus();

			return false;

	}

	if ( (fld == 'curamt') &&  ((val < 0) || (val > 1000000)) ) {		

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 0-1,000,000.');

			document.retireform[fld].focus();

			return false;

	}

	if (fld == 'optamt') {

		if (document.retireform.option[1].checked  && ((val < 1) || (val > 5000000)) ) {		

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-5,000,000.');

			document.retireform[fld].focus();

			return false;

		}

		if (document.retireform.option[0].checked  && ((val < 1) || (val > 75000)) ) {		

			document.retireform[fld].value = this[fld];

			alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-75,000.');

			document.retireform[fld].focus();

			return false;

		}

	}

	if (document.retireform.option[1].checked){

			if (Number(this.curamt) >= Number(this.optamt)){

			alert('Entry is not valid.\nInvalid Data: Desired Fund amount must be greater than Current Fund Amount.');

			document.retireform.curamt.focus();

			return false;

		}

	}

}



function RetireCalcValidate()

{

	var fld, val; 

	var data = ["rage", "cage", "rate", "curamt", "optamt"]; 

	var label = ["Retirement Age", "Current Age", "Rate of Return", "Current Amount in Fund", "Desired amount in Fund/Annual contribution"];

	for(i=0; i < data.length; i++){

			fld = data[i];

			val = document.retireform[fld].value;

			if (typeof(val) == "string")

			{

				//strip out any commas from the value 

				val = val.replace(/,/g, "");

				this[fld] = val; 

			}

			if (isNaN(val) || (val < 0) || (val == "")){			

				alert(label[i] + '\nInvalid Data: A positive numeric value is required in this field.');

				document.calcform[fld].focus();

				return false;

			}

			if ( (fld == 'cage') &&  ((val <= 0) || (val > 65)) ) {		

				alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-65.');

				document.retireform[fld].focus();

				return false;

			}

			if ( (fld == 'rage') &&  ((val < 20) || (val > 75)) ) {		

				alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 20-75.');

				document.retireform[fld].focus();

				return false;

			}

			if (this.cage >= this.rage){

				alert('Age is not a valid entry.\nCurrent age should not be higher than Retirement Age.');

				return false;

			}

			if ( (fld == 'rate') &&  ((val < 1) || (val > 25)) ) {		

				alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-25.');

				document.retireform[fld].focus();

				return false;

			}

			if ( (fld == 'curamt') &&  ((val < 0) || (val > 1000000)) ) {		

				alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 0-1,000,000.');

				document.retireform[fld].focus();

				return false;

			}

			if (fld == 'optamt') {

				if (document.retireform.option[1].checked  && ((val < 1) || (val > 5000000)) ) {		

					alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-5,000,000.');

					document.retireform[fld].focus();

					return false;

			}

			if (document.retireform.option[0].checked  && ((val < 1) || (val > 75000)) ) {		

				alert(val + ' is not a valid entry.\nInvalid Data: Valid range is 1-75,000.');

				document.retireform[fld].focus();

				return false;

			}

		}

		if (document.retireform.option[1].checked){

			if (Number(this.curamt) >= Number(this.optamt)){

				alert('Entry is not valid.\nInvalid Data: Desired Fund amount must be greater than Current Fund Amount.');

				document.retireform.curamt.focus();

				return false;

			}

		}

	}

	return true;

}







function RetireCalcTable(type)

{

	var table1 = '';

	var table2 = '';

	var results = '';

	var pctrate = this.rate/100;

    var years = this.rage - this.cage;

	var pct = Math.pow((pctrate+1), years);

	var fv=0, totfv=0;

	var contribution = new Number(0);

	var pvarray = new Array();

	var fvarray = new Array();

	var contarray = new Array();

	var currentamt = (Number(this.curamt) * (this.rate/100)) + Number(this.curamt);

	var result=0, dresult=0;

	var totyears=0;

	var retireage= new Number(0);;

	



	if (document.retireform.option[0].checked){  

		contribution = Number(this.optamt);	

		for (i=0; i<years; i++){

			pvarray[i] = Number(currentamt) * Math.pow((pctrate+1), i);

			fv += Number(this.optamt) * Math.pow((pctrate+1), i);

			totfv = fv + pvarray[i];

			fvarray[i] = Math.round(totfv*100)/100;

			contarray[i] = Math.round(contribution*100)/100;

			contribution += Number(this.optamt);

			totyears = i;

		}

	}

	else{  

     	result = (Number(this.optamt) - (Number(this.curamt) * pct)) * (pctrate/(pct - 1));

		

		if (this.optamt <= (this.curamt * pct)){

			result = 0;

			dresult = 0;

		}

		else{

			dresult = result;

		}		

		contribution += Number(dresult);

		fv = 0;

		for (i=0; i<years; i++){

			temp = currentamt * Math.pow((pctrate+1), i);

			pvarray[i] = temp;

			fv += result * Math.pow((pctrate+1), i);

			totfv = fv + pvarray[i];

				fvarray[i] = Math.round(totfv*100)/100;

				contarray[i] = Math.round(contribution*100)/100;

				contribution += result;

				totyears=i;

				if(totfv >= this.optamt) break;

		}

		

	}

		

	totyears += 1; 

	retireage = Number(this.cage) + totyears;   

	var contemp =  (contarray[totyears-1] / totyears)*100;

	var contribute = Math.round(contemp)/100;

	var savings = Math.round(fvarray[totyears-1]*100)/100;



	if (type == "print") {

		table1 += '<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="3" bgcolor="#466284" width="100%" valign="top">'

				+ '<TR><TD ALIGN="left" COLSPAN="5" bgcolor="#466284" height="24">'

				+ '<span class="textulcinci">CALCULATOR RESULTS</span>'

				+ '</TD></TR><TR bgcolor="#ffffff">'

				+ '<td valign="top" nowrap><span class="textulsase">Current<br>Fund Amount:</span><br>' 

		   + '<span class="textulunu">$' + toCurrency(this.curamt)

		   + '</span><br><br></td>'

		   + '<td valign="top" nowrap><span class="textulsase">Total<br>Fund Amount:</span><br><span class="textulunu">$' 

		   + toCurrency(savings)

		   + '</span><br><br></td>'

		   + '<td valign="top" nowrap><span class="textulsase">Interest:<br>&nbsp;</span><br><span class="textulunu">'

		   + this.rate

		   + '%</span><br><br></td>'

		   + '<td valign="top" nowrap><span class="textulsase">Annual<br>Contribution:</span><br><span class="textulunu">$' 

		   +  toCurrency(contribute)

		   + '</span><br><br></td>'

		   + '<td valign="top" nowrap><span class="textulsase">Age to<br>Reach Your Goal:</span><br><span class="textulunu">' 
			 
		   + retireage

		   + '</span><br><br></td></tr></TABLE><br>';

		   

		table2 += '<TABLE B0RDER="0" cellpadding="0" cellspacing="0" width="100%">'

		  +  '<TR BGCOLOR="#466284"><TD ALIGN="left" COLSPAN="3" nowrap>'

/************************/

		  +	 '<img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="25" align="absmiddle"/>'

		  +  '<span class="textulcinci">Fund Values for the Next ' + totyears + ' Years</span></TD></TR>'

		  +  '<TR bgcolor="#eeeeee"><TD ALIGN="center" nowrap><span class="textulsase">Year</span></TD>'

		  +  '<TD ALIGN="center" nowrap><span class="textulsase">Total Annual Contribution</span></TD>'

		  +  '<TD ALIGN="center" nowrap><span class="textulsase">Total Fund Value</span></TD></TR>';	

	}

	else{

		table1 += '<TABLE BORDER="0" cellpadding="0" cellspacing="0" width="175">'

		   + '<TR BGCOLOR="#466284"><TD ALIGN="left">'

/************************/

		   + '<span class="textulcinci"><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="25" align="absmiddle"/>Calculator Results</span></TD></TR>'

		   + '<tr bgcolor="#eeeeee"><td nowrap><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulsase">Current fund Amount:</span><br>' 

		   + '<img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulunu">$' + toCurrency(this.curamt)

		   + '</span><br><br></td></tr>'

		   + '<tr bgcolor="#eeeeee"><td nowrap><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulsase">Total fund Amount:</span><br><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulunu">$' 

		   + toCurrency(savings)

		   + '</span><br><br></td></tr>'

		   + '<tr bgcolor="#eeeeee"><td nowrap><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulsase">Interest:</span><br><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulunu">'

		   + this.rate

		   + '%</span><br><br></td></tr>'

		   + '<tr bgcolor="#eeeeee"><td nowrap><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulsase">Annual contribution:</span><br><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulunu">$' 

		   +  toCurrency(contribute)

		   + '</span><br><br></td></tr>'

		   + '<tr bgcolor="#eeeeee"><td nowrap><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulsase">Age to reach your goal:</span><br><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/><span class="textulunu">' 

		   + retireage

		   + '</span><br></td></tr></TABLE>';

	

 	table2 += '<TABLE B0RDER="0" cellpadding="0" cellspacing="0" width="440">'

		  +  '<TR BGCOLOR="#466284"><TD ALIGN="left" COLSPAN="3" nowrap>'

		  +	 '<img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="25" align="absmiddle"/>'

		  +  '<span class="textulcinci">Fund Values for the Next ' + totyears + ' Years</span></TD></TR>'

		  +  '<TR bgcolor="#eeeeee"><TD ALIGN="center" nowrap><span class="textulsase">Year</span></TD>'

		  +  '<TD ALIGN="center" nowrap><span class="textulsase">Total Annual Contribution</span></TD>'

		  +  '<TD ALIGN="center" nowrap><span class="textulsase">Total Fund Value</span></TD></TR>';	   

	} 		

	var yeartmp=0;	

	for (i=0; i<totyears; i++){

		yeartmp = i+1;

		color = "bgcolor=#eeeeee";

		table2 += '<TR><TD ' + color + ' ALIGN="center" CLASS="textulunu">' 

			  + yeartmp 

			  + '</TD><TD ' + color + ' ALIGN="center" CLASS="textulunu">' 

			  + toCurrency(contarray[i]) 

			  + '</TD><TD ' + color + ' ALIGN="center" CLASS="textulunu">' 

			  + toCurrency(fvarray[i]) + '</TD></TR>';	

	}

	table2 += '<TR bgcolor="#eeeeee"><td colspan="3"><img border="0" src="http://www.asdbrokerage.com/images/spacer.gif" width="10" height="20" align="absmiddle"/></td></tr></TABLE>';	   

		

	if (type == "print"){

			results += '<table cellpadding="0" cellspacing="0" border="0" width="595">'

					+ '<tr><td valign="top" align="left">' + table1 + '</td></tr>'

					+ '<tr><td valign="top" align="right">' + table2 + '</td></tr></table>';

	}

	else{

			results += '<table cellpadding="0" cellspacing="0" border="0">'

					+ '<tr><td valign="top" align="left">' + table1 + '</td><td>&nbsp;</td>'

					+ '<td valign="top" align="right">' + table2 + '</td></tr></table><br><br>';

	}

	return results;

}



function ShowResult()

{

	var results = rcalc.retireTable();

	

	if ((navigator.appName.indexOf("Netscape") != -1) && (parseInt(navigator.appVersion) == 4)) {

				var reslayer = document.layers['retireres2'].document;

				reslayer.open();

				reslayer.write(results);

				reslayer.close();

	     } 

		 else if ((navigator.appName.indexOf("Microsoft") != -1) || 

		 		  (parseInt(navigator.appVersion) >= 5)){

				document.getElementById("retireres").innerHTML = results;

	    } 

		else {

			alert("This calculator can only be used in Netscape Navigator or Microsoft Internet Explorer, version 4 or greater");

		}

		

}





function NS47_addlines(){

	var i;

	if ((navigator.appName.indexOf("Netscape") != -1)&& (parseInt(navigator.appVersion) == 4)) {

		for(i=0; i<65; i++){

			document.write('<br>');	

		}	

	}

}



function loadResults()

{

	if ((navigator.appName.indexOf("Netscape") != -1) && (parseInt(navigator.appVersion) == 4)) {

		document.write('<div id="retireres2"></div>');		

	} 

	else if ((navigator.appName.indexOf("Microsoft") != -1) || 

		 		 (parseInt(navigator.appVersion) >= 5)){

		document.write('<div id="retireres"></div>');

	} 

}





function PrintResults()

{

	PopulateForm(document.retireform);

	var winheight = 500;

	var winwidth = 655;

	var newwin = window.open('', 'printable', 'height=' + winheight + ',width=' + winwidth + ',toolbar,scrollbars,resizable');

	

	newwin.document.write(head);

	newwin.document.write(body);

	newwin.document.write(logo);

	newwin.document.write(start_main);

	newwin.document.write('<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="2" width="595">\n');

	newwin.document.write('<tr><td align="left" valign="top" width="595">\n');

	newwin.document.write(table_results);

	newwin.document.write('</td></tr>\n');

	newwin.document.write('<tr><td align="left" height="35" width="595">\n');

	newwin.document.write(print_link);

	newwin.document.write('</td></tr></table>\n');

	newwin.document.write(end_main);

	newwin.document.write(tail);

	newwin.document.close();

	newwin.focus();



}

