// copyright Grace Cheng and Pedro Pla 2006 all rights reserved pedropla@pedropla.com

if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById) type="OP";
if (document.all) type="IE";
if (document.layers) type="NN";
if (!document.all && document.getElementById) type="MO";

function calculatePL(frame, percentlosspertrade, accountvalue, profitabletrades, losingtrades, profitratio, lossratio, profitablemonthsperyear, years){

	frameWrite(frame, "");

	accountvalue=parseFloat(accountvalue);
	years=parseInt(years);
	profitabletrades=parseInt(profitabletrades);
	losingtrades=parseInt(losingtrades);
	profitratio=parseInt(profitratio);
	lossratio=parseInt(lossratio);
	profitablemonthsperyear=parseInt(profitablemonthsperyear);
	percentlosspertrade=(0.01*percentlosspertrade);

	monthlystrings='';
	yearlystrings="<table class='tableblue'><tr class='tabletitle_blue'><td>Year</td><td>Starting account balance</td><td>Year end account balance</td><td>Profit</td></tr>";
	for(year=1; year < (years+1); year++){
		tablestring="<div style='visibility:hidden; height:0px' id='month-year"+year+"'><table class='tableorange'><tr class='tabletitle_orange'><td colspan=3>Year: "+year+"</td></tr><tr class='tabletitle_orange'><td>Month</td><td>Monthly profit</td><td>Account balance</td></tr>";
		yearlyprofit=0;
		startaccountvalue=accountvalue;
		for(month=1; month <= profitablemonthsperyear; month++){
			totalloss=losingtrades*(percentlosspertrade*accountvalue);
			totalprofit=profitabletrades*((profitratio/lossratio)*(percentlosspertrade*accountvalue));
			//frameWrite(frame, "<li>total loss: "+totalloss+" totalprofit: "+totalprofit, true);
			thismonthprofit=totalprofit-totalloss;
			yearlyprofit+=thismonthprofit;
			if(isEven(month)){
				rowclass="tabledark_orange_row";
			} else {
				rowclass="tablelight_orange_row";
			}
			accountvalue+=thismonthprofit;
			tablestring+="<tr class='"+rowclass+"'><td>"+month+"</td><td>$"+myRound(thismonthprofit)+"</td><td>$"+myRound(accountvalue)+"</td></tr>";
		}
		tablestring+="</table></div>";
		monthlystrings+=tablestring;
		if(isEven(year)){
			rowclass="tabledark_blue_row";
		} else {
			rowclass="tablelight_blue_row";
		}
		yearlystrings+="<tr class='"+rowclass+"' onMouseOver=\"ChangeOneLayer('month-year"+year+"','visible')\" onMouseOut=\"ChangeOneLayer('month-year"+year+"','hidden')\"><td>"+year+"</td><td>$"+myRound(startaccountvalue)+"</td><td>$"+myRound(accountvalue)+"</td><td>$"+myRound(yearlyprofit)+"</td></tr>";
	}
	yearlystrings+="</table>";
	fullframes="<table cellspacing=0 cellpadding=4 border=0><tr><td width=50% valign=top>"+yearlystrings+"</td><td width=50% valign=top>"+monthlystrings+"</td></tr></table>";
	frameWrite(frame, fullframes, true);

}

function ChangeOneLayer(id, action){
if (type=="IE") eval("document.all." + id + ".style.visibility='" + action + "'")
if (type=="NN") eval("document." + id + ".visibility='" + action + "'");
if (type=="MO" || type=="OP")
eval("document.getElementById('" + id + "').style.visibility='" + action + "'")
}

function Comma(number) {
	number = '' + number;
	if (number.length > 3) {
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(number.length / 3); i++) {
			if ((mod == 0) && (i == 0))
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
			else
				output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
		}
		return (output);
	}
	else return number;
}

function myRound(num){
	num=Math.round(num);
	//return Comma(num);
	return num;
}

function isEven(num){
    return((num/2).toString().indexOf('.') < 0);
}

function frameWrite(frame,html,append){
	if(!document.getElementById){
		alert("Sorry your browser is not supported");
	}
	var f=document.getElementById(frame);
	if(f && f.innerHTML != undefined){
		if(append){
			f.innerHTML+=html;
		} else {
			f.innerHTML=html;
		}
	}
}


