/* FUNÇÕES GERAIS */

function highlightRow (element, color) {
  while (element.tagName.toUpperCase() != 'TR' && element != null)
    element = document.all ? element.parentElement : element.parentNode;
  if (element)
    element.bgColor = color;
}

function TogglePanel(objecto) {
	
  var itemtotoggle = $(objecto);
	
	if (itemtotoggle.className == 'visible') {
		itemtotoggle.className = 'hidden';
	} else {
		itemtotoggle.className = 'visible';
	}
	
}

/*	ADICIONA TEXTO A CAIXAS DE TEXTO	*/
function addText (nomedacaixa, texto, sep) {

	var caixa = $(nomedacaixa);
	
	if (trimAll(caixa.value) != '') {
		caixa.value = texto + sep + caixa.value;
	} else {
		caixa.value = texto + caixa.value;
	}	
	
}

/*	CONTADORES DE CARACTERES	*/
function updateCharCount(textField, displayArea, maxChars) {
	
	var textField = $(textField);
	var displayArea = $(displayArea);
	
	if (textField.value.length > maxChars) {
		textField.value = textField.value.slice(0, maxChars);
	}
	
	displayArea.innerHTML = textField.value.length+" caracteres (máximo "+maxChars+")";
	
}

/*	AVISO DE LIMITE DE CARACTERES	*/
function limitText(field, maxlimit) {
	
	var field = $(field);
	
	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);
		alert('Este campo tem como limite ' + maxlimit + ' caracteres.');
	}
	
} 
/*	fim - CONTADORES DE CARACTERES	*/

function updateIVACount(textField, displayArea, rate) {

	var textField = $(textField);
	var displayArea = $(displayArea);
	
	price = replace(textField.value,',','.');
	
	value = eval(price) * (1 + (rate / 100));
	value = Math.round(value * 100) / 100;
/*
	FALTA TRANSFORMAR O PONTO (.) NUMA VIRGULA (,)
*/
/*	value = replace(value, ',', '.'); */
	
	displayArea.innerHTML = 'Preço c/ IVA: € <b>'+ value + '</b>' ;
}



function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function confirmDelete(delUrl,Message) {
  if (confirm(Message)) {
    document.location = delUrl;
  }
}

function confirmForm(form,Message) {
  if (confirm(Message)) {
    form = document.getElementById(form);
	form.Send.value = 'true';
    form.submit();
  }
}

function getFileName (string) {
	var tr = string
	len = tr.length
	rs = 0
	for (i = len; i > 0; i--) {
		vb = tr.substring(i,i+1)
		if (vb == "/" && rs == 0) {
			return tr.substring(i+1,len)
		rs = 1
		}
	} 
}

function trimAll(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function checkBoxes (form, check) {
  for (var c = 0; c < form.elements.length; c++)
    if (form.elements[c].type == 'checkbox')
      form.elements[c].checked = check;

//EXEMPLO <input type="checkbox" name="checkbox" value="checkbox" onClick="checkBoxes(this.form, this.checked)">	  
	  
}

/* FIM - FUNÇÕES GERAIS */

/* INDEX E LOGIN */

function SetFocus() {

	var username = $('username');
	
	Field.activate(username);
	
}

/* FIM - INDEX E LOGIN */

/* DREAMWEAVER */

function MM_validateForm() { //v4.1
//	FUNÇÃO DEFAULT DO DREAMWEAVER MAS COM VALIDAÇÃO A ESPAÇOS EM BRANCO NOS CAMPOS OBRIGATÓRIOS
//	NECESSITA DA FUNÇÃO trimAll
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((trimAll(val=val.value))!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' deve conter um endereço de e-mail válido.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' deve conter um número.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' é necessário.\n'; }
  } if (errors) alert('Ocorreram os seguintes erros:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_setTextOfTextfield(objName,x,newText) { //v3.0
  var obj = MM_findObj(objName); if (obj) obj.value = newText;
}

/* FIM DREAMWEAVER */
