var br = "\n";

function getElementsByClassName(strClass)
{
  var ret = new Array();
  var tag = arguments[1] || "*";
  var node = arguments[2] || document;
  var base = node.getElementsByTagName(tag);
  var tBase = base.length;
  for(var i = 0; i < tBase; i++)
  {
    var aClass = base[i].className.split(" ");
    var taClass = aClass.length;
    for(var j = 0; j < taClass; j++)
    {
      if(aClass[j] == strClass)
      {
        ret[ret.length] = base[i];
        break;
      }
    }
  }
  return ret;
}


function getObjInnerText(obj) {
	return (obj.innerText) ? obj.innerText : (obj.textContent) ? obj.textContent : ""
}

function checknif(nif)
{
	var field = document.getElementById(nif);
	var nif = field.value;
	var fValue = parseInt(nif);
	if (isNaN(fValue) || (fValue.toString() != nif) || (nif.length>9))
		return "- NIF inválido";
	else
		return "";
}

function check_form()
{
	var obrigs = getElementsByClassName('obrigatorio');
	var txt = "";
	for (var i=0; i<obrigs.length; i++)
	{
		var campo = document.getElementById(obrigs[i]['htmlFor']);
		if (campo.type == 'text')
		{
			if (campo.value == '')
			{
				txt = txt + " " + getObjInnerText(obrigs[i]) + br;
			}
		}
	}
	if (txt != '')
	{
		txt = "- Deve preencher todos os campos requiridos:\r\n"+txt;
	}
	for (var i=0; i<validators.length; i++)
	{
		var val = validators[i];
		var msg = "";
		eval("msg = "+val[1]+"('"+val[0]+"')");
		if (msg != "") txt = txt + br + msg;
	}
	if (txt != '')
	{
		alert("Por favor corrija os erros indicados:\r\n"+txt);
		return false;
	}
	return true;
}

// Usado no formulário da encomenda para actualizar o TOTAL quando mudamos a quantidade
// de um artigo
function update_total(este)
{
	var dados = getElementsByClassName("tr-dados");
	var total = 0;
	for (var i=0; i<dados.length; i++)
	{
		var total_td = dados[i];
		var qtd = parseInt(total_td.childNodes[3].getElementsByTagName("input")[0].value, 10);
		var preco_txt = total_td.childNodes[2].childNodes[0].data;
		preco = parseFloat(preco_txt.replace(',','.'));
		if (isNaN(qtd))
		{
			qtd = 1;
			total_td.childNodes[3].getElementsByTagName("input")[0].value = '1';
		}
		total += qtd*preco;
	}
	var total_td = document.getElementById('encomenda-total');
	var total_node = total_td.childNodes[0];
	var total_txt = total.toString()
	// 2 casas decimais
	if (total_txt.indexOf('.') == -1)
	{
		total_txt = total_txt + ".00";
	}
	else if ( (total_txt.length > total_txt.indexOf('.') + 3))
	{
		total_txt = total_txt.substring(0,total_txt.indexOf('.')+3);
	}
	total_node.data = total_txt.replace('.',',') + " \u20AC";
}

function init_form()
{
	var sbmt = document.getElementById('action-submit');
	if (sbmt) sbmt.onclick=check_form;
}

var validators = new Array();
addLoadEvent(init_form);
