var actividadesJson 
var peso
var genero
new Ajax.Request('carregarActividades.php', {
		method:'post',
		onSuccess:function(transport) {
		 actividadesJson = transport.responseText.evalJSON(true);
		 actividadesJson = actividadesJson.actividades ;
	  }
});

function validate(form) {
	var er_numero = /^\d+$/;	
	peso = form.peso.value;
	var sexo = document.dados.sexo;	
	for (var i=0; i < sexo.length; i++)
	{
		if (sexo[i].checked)
		{
			genero = sexo[i].value;
		}
	}
	
	if (!genero) {
	alert ("Preencha o campo SEXO.");
	return false;
	}
	
	if (peso == "" || (!er_numero.exec(peso))) {
	alert ("Preencha o campo PESO.");
	form.peso.focus();
	return false;
	}
	return true;
}
var novas_actividades
function dofill( ) {
	$('ga_actividades').selectedIndex = "0";
	var novas_actividades = [];
	for(var c=0;c<actividadesJson.length; c++)	 {
		actividadesJson[c].ajsIndex = c;
		if(actividadesJson[c].id_cat == $('ga_categoria').value)
			novas_actividades.push(actividadesJson[c])
	}
	
	sf_removeAllOptions('ga_actividades');

	sf_addOption('ga_actividades',-1,"---",false)
	for(var c= 0; c < novas_actividades.length; c++) {
		sf_addOption('ga_actividades',novas_actividades[c].ajsIndex,novas_actividades[c].nome,false)
	}	
}

function dofillagain() {
		
	new Ajax.Request('carregarEscolhas.php', {
		method:'post',
		parameters:   $('ga_categorias').serialize(),
		onSuccess:function(transport) {
		 var getBack = transport.responseText.evalJSON(true);
		 //console.log(getBack)
	
		  }
	});
	
	document.categorias.reset();
}

function mostrar(){
	document.getElementById('ga_escolhas').style.display = "block";
	var peso = document.dados.peso.value;
}

function sf_addOption(selectBox,value,name,disabled) {
	disabled = disabled||false
	obj = $(selectBox)
	
	var y=document.createElement('option');
	y.text=name
	y.value = value
	y.disabled = disabled
	try {
		obj.add(y,null); // standards compliant
	}
	catch(ex)	{
		obj.add(y); // IE only
	}
}

function sf_removeAllOptions(selectBox) {
	obj = $(selectBox)
	x = $(selectBox).options
	currentLength = x.length;
	dif = currentLength
	myIndex = currentLength
	while(dif >=0) {
		obj.remove(myIndex)
		myIndex--;
		dif--;
	}
	
}

function sf_addInputfield(type,label, name, value, where,className) {
    var c = document.createElement('span')
    var box = document.createElement('input');
    c = $(c)
    box = $(box)
    box.type = type
    box.id=name
    box.name = name
	
	box.observe('keyup', eNumeroDin)

    box.value = value
    if(className)
        box.addClassName(className)
    c.update(label)
    c.className = 'sf_input'   
    $(where).insert(c)
    $(where).insert(box)
}
var alreadyAdded = [];
function adicionaItem() {
	selected = $('ga_actividades').value
	nActividade = actividadesJson[selected]
	if(selected == -1)
		alert('Escolha uma actividade')
	else if(alreadyAdded[nActividade.id] == 1)
		alert('Ja adicionou este item')
	else {
		
		var c = document.createElement('tr')
		c = $(c)
		c.id = "container_"+nActividade.id
		c.className="linha"
		
		var hiddenName = document.createElement('td')
		hiddenName = $(hiddenName)
		hiddenName.className = "largura"
		hiddenName.update(nActividade.nome)
		c.insert(hiddenName)
		
		var line = document.createElement('td')
		line = $(line)
		
		var hidden = document.createElement('span')
		hidden = $(hidden)
		hidden.setStyle({display:'none'})
		nActividade.valor = nActividade.valor.replace(",",".")
		hidden.update(nActividade.valor)
		hidden.id = 'calorias_'+nActividade.id
		line.insert(hidden)
		
		sf_addInputfield('text','', 'horas_'+nActividade.id, 0, line)
		
		line.insert(" h")
		sf_addInputfield('text','', 'minutos_'+nActividade.id, 0, line)
		
		line.insert(" m")
		
		var totalSpan = document.createElement('td')
		totalSpan = $(totalSpan)
		totalSpan.id="total_"+nActividade.id
		totalSpan.update(0)
		
		
		var hiddenValue = document.createElement('td')
		hiddenValue = $(hiddenValue)
		//hiddenValue.update(nActividade.nome)
		hiddenValue.insert(" kcal")
		
		var line1 = document.createElement('td')
		line1 = $(line1)
		

		var imgApagar = document.createElement('img')
		imgApagar = $(imgApagar)
		line1.insert(imgApagar)
		imgApagar.src='img/fechar.png'
		imgApagar.observe('click', apagar)
		c.insert(line)
		c.insert(totalSpan)
		c.insert(hiddenValue)
		c.insert(line1)
		$('ga_tabela_clientes').insert(c)
		
		$('horas_'+nActividade.id).actividadesIndex = nActividade.id
		imgApagar.actividadesIndex = nActividade.id
		$('minutos_'+nActividade.id).actividadesIndex = nActividade.id
		alreadyAdded[nActividade.id]= 1
		new Form.Element.Observer(
		  'horas_'+nActividade.id,
		  0.2,  // 200 milliseconds
		  calculaCalorias
		)
		new Form.Element.Observer(
		  'minutos_'+nActividade.id,
		  0.2,  // 200 milliseconds
		  calculaCalorias
		)
	}
	
}
function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
 return newnumber; // Output the result to the form field (change for your purposes)
}
var totalR
function calculaCalorias(el,value) {
	t = alreadyAdded.length
	totalR = 0;

	for(var i=0; i<alreadyAdded.length;i++) {
		 if(alreadyAdded[i] == 1) {
			activityId = i
			totalTarget = $("total_"+activityId)
			minutos = Number($('horas_'+activityId).value * 60) + Number($('minutos_'+activityId).value)
			total = minutos * Number( $('calorias_'+activityId).innerHTML ) * Number(peso)
			
			if(genero == "f") total = total - (total/10)
			
			totalR += total
			total = roundNumber(total,2)
			totalTarget.update(total)
		 }
	}
	$("ga_totCal").update(roundNumber(totalR,2))
}

function apagar(ev){
	el = ev.element()
	alreadyAdded[el.actividadesIndex] = 0
	$('container_'+el.actividadesIndex).remove()
}

function eNumero(valor){
	var numero = /^[0-9]*$/; 
	if (numero.test(valor.value)) return;
	valor.value = "";
}

function eNumeroDin(valor){
	elemento = valor.element()
	var numero = /^[0-9]*$/; 
	if (numero.test(elemento.value)) return;
	elemento.value = "";
}