//=== Maxisoft PardusTools - Calculators JavaScript ===
//
// Copyright (c)2006-2007 by Markus J. Wolfger

function AddSkill(Value,Selected,Color)
{
	var lResult;
	var lValue;
	
	lResult=document.createElement("TD");
	
	lValue=parseFloat(Value);
	
	if(Selected)
	{
		lResult.style.fontWeight='bold';
		lResult.style.color='lightblue';
	}
		
	if(lValue==0)
	{
		lResult.style.color='yellow';
		lResult.innerHTML='???';
	}
	else
	{
		if(Color!="") lResult.style.color=Color;
		lResult.innerHTML=ptToPrice(lValue);
	}
	
	return lResult;
}

function CalcUpkeep()
{
	var lElement;
	var lWorker;
	var lUpkeep;
	var lRatio;
	var lIndex;
	var lValue;
	
	window.status="Calculating upkeep ...";
	
	lElement=document.getElementById('dUpkeepWorker');
	lWorker=ptToFloat(lElement.value);
	lElement.value=ptToPrice(lWorker);

	lUpkeep=document.getElementById('dUpkeep').value.split('|');
	
	lElement=document.getElementById('dProductionWorker');
	lElement.value=ptToPrice(lWorker);

	for(lIndex=0;lIndex<lUpkeep.length;lIndex++)
	{
		lRatio=ptToFloat(lUpkeep[lIndex]);
		lValue=Math.round(lRatio*lWorker/100000);
		
		lElement=document.getElementById('dUpkeep'+lIndex);
		lElement.innerHTML=ptToPrice(lValue);

		lElement=document.getElementById('dProductionU'+lIndex);
		lElement.value=ptToPrice(lValue);
	}
	
	window.status="Upkeep successful calculated.";
}

function CalcProduction()
{
	var lElement;
	var lWorker;
	var lUpkeep;
	var lProduction;
	var lProductionU;
	var lRatio;
	var lRatioTotal;
	var lValue;
	var lGoal;
	var lReal;

	window.status="Calculating production ...";
	
	lElement=document.getElementById('dProductionWorker');
	lWorker=ptToFloat(lElement.value);
	lElement.value=ptToPrice(lWorker);
	
	lUpkeep=document.getElementById('dUpkeep').value.split('|');
	lProduction=document.getElementById('dProduction').value.split('|');
	lProductionU=document.getElementById('dProductionU').value.split('|');
	
	lRatioTotal=0;
	for(lIndex=0;lIndex<lUpkeep.length;lIndex++)
	{
		lRatio=ptToFloat(lUpkeep[lIndex]);
		lGoal=Math.round(lRatio*lWorker/100000);
		
		lElement=document.getElementById('dProductionU'+lIndex);
		lReal=ptToFloat(lElement.value);
		lElement.value=ptToPrice(lReal);		

		lRatio=lReal/lGoal;
		if(lRatio>1) lRatio=1;
		
		lRatioTotal+=lRatio;
	}	
	lRatioTotal/=lUpkeep.length;
	
	for(lIndex=0;lIndex<lProduction.length;lIndex++)
	{
		lRatio=ptToFloat(lProduction[lIndex]);
		lValue=Math.round(lRatio*lWorker/100000*lRatioTotal);
		
		lElement=document.getElementById('dProduction'+lIndex);
		lElement.innerHTML=ptToPrice(lValue);		
	}
	
	window.status="Production successful calculated.";
	
	return lRatioTotal;
}

function CalcProductionSb()
{
	var lWorker;
	var lSelect;
	var lFields;
	var lIndex;
	var lValue;
	var lRatio;
	
	window.status="Calculate production ...";
	
	lRatio=CalcProduction();
	
	lElement=document.getElementById('dProductionWorker');
	lWorker=ptToFloat(lElement.value);

	lFields=document.getElementById('dProductionFields').value.split('|');
	
	lSelect=document.getElementById('dProductionField');
	lIndex=new Number(lSelect.value);
	
	lValue=Math.round(125*lWorker*lRatio/100000);

	lElement=document.getElementById('dProductionBonus');
	if(lFields[lIndex+4]==0)
	{
		lElement.style.display='none';

		lValue+=ptToFloat(document.getElementById('dProduction0').innerHTML);

		lElement=document.getElementById('dProduction0');
		lElement.innerHTML=ptToPrice(lValue);		
	}
	else
	{
		lElement.style.display='';

		lElement=document.getElementById('dProductionBonus0');
		lElement.innerHTML=ptToPrice(lValue);
		
		lElement=document.getElementById('dProductionBonus1');
		lElement.src=lFields[lIndex+2];
		
		lElement=document.getElementById('dProductionBonus2');
		lElement.innerHTML=lFields[lIndex+1];
		lElement.href=lFields[lIndex+3];
	}
	
	window.status="Production successful calculated.";
}

function CalcSkill()
{
	var lData;
	var lSkill;
	var lValue;
	var lStat;
	var lResult;
	var lTable;
	var lIndex1;
	var lIndex2;
	var lStyle;
	var lCount;
	var lRow;
	var lCell;
	var lPos;
	
	window.status="Calculating skill ...";
	
	lTable=document.getElementById("eResults");
	
	while(lTable.rows.length>1) lTable.deleteRow(1);
	
	lSkill=document.getElementById("eSkill");
	lSkill=parseInt(lSkill.options[lSkill.selectedIndex].value);
	
	lValue=parseInt(document.getElementById("eValue").value);
	if(isNaN(lValue)) lValue=10;
	if(lValue>999) lValue=999;
	document.getElementById("eValue").value=lValue;
		
	lData=document.getElementById("dMonsters").value.split('|');
	for(lIndex1=0;lIndex1<lData.length;lIndex1+=11)
	{
		lStat=parseInt(lData[lIndex1+lSkill]);
		if(lStat>lValue)
		{
			for(lIndex2=1;lIndex2<lTable.rows.length;lIndex2++)
			{
				switch(lSkill)
				{
					case 5: lPos=parseInt(lTable.rows[lIndex2].cells[2].innerHTML); break;
					case 3: lPos=parseInt(lTable.rows[lIndex2].cells[3].innerHTML); break;
					case 4: lPos=parseInt(lTable.rows[lIndex2].cells[4].innerHTML); break;
					case 6: lPos=parseInt(lTable.rows[lIndex2].cells[5].innerHTML); break;
					case 2: lPos=parseInt(lTable.rows[lIndex2].cells[6].innerHTML); break;
				}
				
				if(lPos>lStat) break;
			}
			
			lRow=lTable.insertRow(lIndex2);
			
			lCell=document.createElement("TD");
			lCell.innerHTML='<IMG src="'+lData[lIndex1+7]+'" alt=""/>';
			lRow.appendChild(lCell);
			
			lResult='<A href="'+lData[lIndex1+1]+'.html">';
			lResult+=lData[lIndex1];
			lResult+='</A>';
			if(lData[lIndex1+9].length>0)
			{
				lResult+='<BR><BR>';
				if(lData[lIndex1+9].indexOf('a')>=0) 
					lResult+='<IMG src="npc_aggr.png" title="Aggressive"/> ';
				if(lData[lIndex1+9].indexOf('b')>=0) 
					lResult+='<IMG src="npc_block.png" title="Blocking"/> ';
				if(lData[lIndex1+9].indexOf('c')>=0) 
					lResult+='<IMG src="npc_cloak.png" title="Cloaking ('+lData[lIndex1+10]+')"/> ';
				if(lData[lIndex1+9].indexOf('m')>=0) 
					lResult+='<IMG src="npc_move.png" title="Moving"/> ';
				if(lData[lIndex1+9].indexOf('p')>=0) 
					lResult+='<IMG src="npc_pardus.png" title="Pardus Core only"/>';
			}
			lCell=document.createElement("TD");
			lCell.innerHTML=lResult;
			lRow.appendChild(lCell);
			
			lRow.appendChild(AddSkill(lData[lIndex1+5],lSkill==5,""));
			lRow.appendChild(AddSkill(lData[lIndex1+3],lSkill==3,""));
			lRow.appendChild(AddSkill(lData[lIndex1+4],lSkill==4,""));
			lRow.appendChild(AddSkill(lData[lIndex1+6],lSkill==6,""));
			lRow.appendChild(AddSkill(lData[lIndex1+2],lSkill==2,""));
			lRow.appendChild(AddSkill(lData[lIndex1+8],false,"lightgreen"));
		}
	}
	
	lStyle='';
	for(lIndex1=1;lIndex1<lTable.rows.length;lIndex1++)
	{			
		lRow=lTable.rows[lIndex1];
		lRow.className=lStyle;
		
		lStyle=(lStyle.length>0) ? '' : 'mxtb3';
	}
	
	ptTranslateImages();
	lTable.style.display="";
	
	window.status="Skill successful calculated.";
}

function InitProductionSb()
{
	var lSelect;
	var lIndex;
	var lItems;
	
	lSelect=document.getElementById('dProductionField');
	
	lItems=document.getElementById('dProductionFields').value.split('|');
	for(lIndex=0;lIndex<lItems.length;lIndex+=5)
		mxOptionAdd(lSelect,lItems[lIndex],lIndex);
}

function InitSkill()
{
	var lSelect;
	var lResults;
	
	lSelect=document.getElementById("eSkill");
		
	mxOptionAdd(lSelect,"Tactics",5);
	mxOptionAdd(lSelect,"Hit Accuracy",3);
	mxOptionAdd(lSelect,"Maneuver",4);
	mxOptionAdd(lSelect,"Weaponry",6);
	mxOptionAdd(lSelect,"Engineering",2);

	lResults=document.getElementById("eResults");
	lResults.style.display="none";
}
