var a, a2;
var errorRat,errorCom,errorPes,errorEmpty;
var errorC3Rec,errorC0Rec,errorC100P;
var langCom1,langCom2,langVen1,langVen2;


function ogNum(str) {
	var multi=1;
	var len=str.length;
	if (str[len-1].toLowerCase()=='k') {multi=1000; len-=1;}
	else {if (str[len-1].toLowerCase()=='m') {multi=1000000; len-=1;}}
	var n = despuntuar(str.substring(0,len));
	if ((isNaN(n))||(n<0)) {
		alert (errorCom);
		return 0;
	}
	else {return n*multi;}
}

function calc() {
	var rm=new Number(a[0][0].value);
	var rc=new Number(a[0][1].value);
	var rd=new Number(a[0][2].value);
	var cm=ogNum(a[1][0].value); a[1][0].value=puntuar(cm);
	var cc=ogNum(a[1][1].value); a[1][1].value=puntuar(cc);
	var cd=ogNum(a[1][2].value); a[1][2].value=puntuar(cd);
	var pm=new Number(a[2][0].value);
	var pc=new Number(a[2][1].value);
	var pd=new Number(a[2][2].value);
	var base_met = cm+cc/rc*rm+cd/rd*rm;
	if((cm==0)&&(pm>0)) {a[3][0].value = puntuar(Math.ceil(base_met*pm/100));} else {a[3][0].value='';}
	if((cc==0)&&(pc>0)) {a[3][1].value = puntuar(Math.ceil(base_met/rm*rc*pc/100));} else {a[3][1].value='';}
	if((cd==0)&&(pd>0)) {a[3][2].value = puntuar(Math.ceil(base_met/rm*rd*pd/100));} else {a[3][2].value='';}
	var csum = cm+cc+cd;
	var vsum = new Number(despuntuar(a[3][0].value))
	         + new Number(despuntuar(a[3][1].value))
	         + new Number(despuntuar(a[3][2].value));
	var npcc=5000;
	var ngcc=25000;
	a2[0].value=puntuar(Math.ceil(csum/npcc));
	a2[1].value=puntuar(Math.ceil(csum/ngcc));
	if (pm+pc+pd==100) {
		a2[2].value=puntuar(Math.ceil(vsum/npcc));
		a2[3].value=puntuar(Math.ceil(vsum/ngcc));
	}
	else {
		a2[2].value='?';
		a2[3].value='?';
	}
}

function set_rat(met,cri,deu) {
	a[0][0].value=met;
	a[0][1].value=cri;
	a[0][2].value=deu;
	calc();
}

function rat_calc(obj,defval) {
	if (obj.value=='') {return;}
	var num=new Number(obj.value);
	if ((isNaN(num))||(num<=0)) {
		alert (errorRat);
		obj.value=defval;
		obj.select();
	}
	else {calc();}
}

function rat_blur(obj,defval) {
	if(obj.value=='') {
		alert(errorEmpty);
		obj.value=defval;
		obj.focus();
		obj.select();
	}
}

function com_calc(num) {
	i1=num;
	i2=(num+1)%3;
	i3=(num+2)%3;
	
	a[2][i1].value=0;
	if ((a[1][i2].value=='0')&&(a[1][i3].value!='0')) {a[2][i2].value='100';}
	else
	if ((a[1][i3].value=='0')&&(a[1][i2].value!='0')) {a[2][i3].value='100';}
	else
	if(new Number(a[2][i2].value)+new Number(a[2][i3].value)!=100) {
		a[2][i2].value='100';
		a[2][i3].value='100';
	}
	
	calc();
}

function pes_focus(obj,num) {
	for (var i=0; i<3; i++) {
		if(i==num) {a[2][i].value=100;}
		else {a[2][i].value=0;}
	}
	obj.select();
	calc();
}

function pes_calc(obj,num) {
	var n=new Number(obj.value);
	if ((isNaN(n))||(n<0)||(n>100)) {
		alert (errorPes);
		pes_focus(obj,num);
	}
	else {
		obj.value=n;
		for (var i=0; i<3; i++) {
			if (i!=num) {
				if (a[1][i].value=='0') {a[2][i].value=100-new Number(a[2][num].value)}
			}
		}
		calc();
	}
}

function clean() {
	a[0][0].value=3;   a[0][1].value=2;   a[0][2].value=1;
	a[1][0].value=0;   a[1][1].value=0;   a[1][2].value=0;
	a[2][0].value=100; a[2][1].value=100; a[2][2].value=100;
	a[3][0].value='';  a[3][1].value='';  a[3][2].value='';
}

function blur_0(obj) {
	if (obj.value=='') {obj.value=0;}
}

function comp() {

	var iCom=new Array(3);
	var iComLen=0;
	var iVen=new Array(3);
	var iVenLen=0;
	for(var i=0; i<3; i++) {
		if(a[1][i].value!='0')
			{iCom[iComLen]=i; iComLen+=1;}
		else
			{if (a[2][i].value!='0') {iVen[iVenLen]=i; iVenLen+=1;}}
	}
	if (iComLen==3) {alert(errorC3Rec); return;}
	if (iComLen==0) {alert(errorC0Rec); return;}
	
	var sumPes=0;
	for(i=0; i<iVenLen; i++) {
		sumPes+=new Number(a[2][iVen[i]].value);
	}
	if (sumPes!=100) {alert(errorC100P); return;}
	
	var verb1,verb2;
	if (document.getElementById('zip_per').value=='com') {
		verb1=langCom1;
		verb2=langCom2;
	}
	else {
		verb1=langVen1;
		verb2=langVen2;
	}
	var sal='';
	sal+=verb1+' ...';
	for (i=0; i<iComLen; i++) {sal+='\n'+a[4][iCom[i]]+' : '+a[1][iCom[i]].value;}
	sal+='\n\n'+verb2+' ('+a[0][0].value+':'+a[0][1].value+':'+a[0][2].value+') ...';
	sal+='\n'+a[4][iVen[0]]+' : '+a[3][iVen[0]].value;
	if (iVenLen>1){
		sal+=' ('+a[2][iVen[0]].value+'%)';
		sal+='\n'+a[4][iVen[1]]+' : '+a[3][iVen[1]].value;
		sal+=' ('+a[2][iVen[1]].value+'%)';
	}
	document.getElementById('zip_tex').value=sal+'\n\nPowered by qogame.org';
}


