/** 
 * Calc JS File, for PercentAge 1.0
 * by Bruno Augusto
 * (c) 2007 Jack!
 * All rights reserved 
*/

function calcular()
{
	if( checkForm() )
	{
		var form			=	document.getElementById( 'percentAge' );
		
		var info;
		
		var percentual		=	parseFloat( form.percentual.value == '' ? 0 : form.percentual.value );
		var attacks			=	parseInt( form.attacks.value );
		
		var units			=	parseFloat( form.units.value == '' ? 0 : form.units.value );
		var fraction		=	form.fraction;

		var origin		=	document.getElementById( 'percentAge' ).origin.selectedIndex;
		var forces		=	document.getElementById( 'percentAge' ).forces.selectedIndex;

		//-----------------------------------------------------------------
		
		// Alerta Desproporcionalidade
		
		if( ( units % attacks ) > 0 )
		{
			info			=	'A quantidade de soldados especificada não resultará uma divisão proporcional entre todos os ataques.';
			info		   +=	'\n';
			info		   +=	'Isto significa que a última parcela percentual de unidades será diferente de ' + percentual + '%';
			info		   +=	'\n\n';
			info		   +=	'Clique OK para prosseguir ou Cancelar para corrigir o valor especificado.';
			
			if( confirm( info ) )
			{
				if( origin == 0 )
				{
					// Calcular a porcentagem para depois exibir o alerta.
					
					fraction.value	=	Math.ceil( ( percentual / 100 ) * units );
					document.getElementById( 'units' ).style.border = '1px solid #000000';
					
					// Desabilitando Botão de Ação
					// Prevenção contra duplicação de confirm()
					
					document.getElementById( 'calcula' ).disabled = true;
					
					alert( 'Agora a PercentAge irá calcular as Forças de Ataque e Defesa, mas para isso é preciso escolher uma origem no menu acima.' );
					
					return false;
				}
				else if( origin != 0 && forces == 0 )
				{
					info	=	'Não foi selecionado nenhuma unidade militar no menu \'Soldado\'';
					info   +=	'\n';
					info   +=	'Isto significa que não será possível calcular as Forças de Ataque e Defesa do percentual de tropas destacadas.';
					info   +=	'\n\n';
					info   +=	'Clique OK para voltar e selecionar uma unidade no menu.';
					
					alert( info );
					
					return false;
				}
				else
				{
					calculateForces( origin, forces );	
				}
				
			}
			else
			{
				document.getElementById( 'units' ).style.border = '1px solid #FF0000';
				document.getElementById( 'units' ).focus();
			}
		}
		else
		{
			fraction.value	=	Math.ceil( ( percentual / 100 ) * units );
			
			if( origin == 0 )
			{
				// Calcular a porcentagem para depois exibir o alerta.
				
				fraction.value	=	Math.ceil( ( percentual / 100 ) * units );
				document.getElementById( 'units' ).style.border = '1px solid #000000';
				
				// Desabilitando Botão de Ação
				// Prevenção contra duplicação de confirm()
				
				document.getElementById( 'calcula' ).disabled = true;
				
				alert( 'Agora a PercentAge irá calcular as Forças de Ataque e Defesa, mas para isso é preciso escolher uma origem no menu acima.' );
				
				return false;
			}
			else if( origin != 0 && forces == 0 )
			{
				info	=	'Não foi selecionado nenhuma unidade militar no menu \'Soldado\'';
				info   +=	'\n';
				info   +=	'Isto significa que não será possível calcular as Forças de Ataque e Defesa do percentual de tropas destacadas.';
				info   +=	'\n\n';
				info   +=	'Clique OK para voltar e selecionar uma unidade no menu.';
				
				alert( info );
				
				return false;
			}
			else
			{
				calculateForces( origin, forces );	
			}			
		}
			
		//-----------------------------------------------------------------
	}
}