//	scripts.js  					//
// 	SPEM (C) Tecnosaluta 2006, 2007 //

var nbsp = 160;    // non-breaking space char
var node_text = 3; // DOM text node-type
var emptyString = /^\s*$/
var proceed = 2;
var current = "";
// replaces whitespace in beginning or end with blank
function trim(str) {
  return str.replace(/^\s+|\s+$/g, '')
};
// second level navigation bar
function subnav() {
	if (current != 	"")
		$(current).className = "vis";
}
// second level navigation bar
function change_subnav(id) {
	if (current == "") {
		$(id).className = "vis";
		current = id;
	}
	else if (current != "") {
		if (id != current && $(id).className != "vis") {
			$(current).className= "unvis";
			$(id).className = "vis";
			current = id;
		}
	}
}
function collapse() {
	if (current != "")
		$(current).className = "unvis";
	current = "";
}
function dim(id) {
}
function undim(id) {
}
function getelementsByPrefix(inPrefix,inRoot){
	var elem_array = new Array;
	if(typeof inRoot.firstChild!= 'undefined'){
		var elem = inRoot.firstChild;
		while (elem!= null){
			if(typeof elem.firstChild!= 'undefined'){
				elem_array = elem_array.concat(getelementsByPrefix(inPrefix,elem));
			}
			if(typeof elem.id!= 'undefined'){
				var reg = new RegExp ( '^'+inPrefix+'.*' );
				if(elem.id.match(reg)){
					elem_array.push(elem);
				}
			}
			elem = elem.nextSibling;
		}
	}
	return elem_array;
} 


// shows forms hints
function hint(div) {
	var opt = {
		duration: 2.0,
		from: 0.0,
		to: 100.0,
		duration: 2.0,
		from: 100.0,
		to: 0.0,
		beforeSetup:  function(t) {
			$(div).style.display = 'inline';
		}
	}
	new Effect.Opacity(div, opt);
}
// alters between maximized div and minimized div
function maxmin(pre, div) {
	if ($(pre+div).style.display=="none")
		maximize(pre, div);
	else minimize(pre, div);
}
// shows a news text
function maximize(pre, what) {
	showMe(pre+what);
	$('xpnd_'+what).className = "xpnd minimize";
}
// hides a news text
function minimize(pre, what) {
	$('xpnd_'+what).className = "xpnd maximize";
	hideMe(pre+what);
}
// blinds down 'what' div
function showMe(what) {
 	Effect.BlindDown(what, {duration:0.2});
};
// blinds up 'what' div
function hideMe(what) {
 	Effect.BlindUp(what, {duration:0.2});
};
// alternating subnavbar items
function hideButOne(a){
  var divs = new Array(3);
  divs[0]="educ";
  divs[1]="divulg";
  divs[2]="spem";
  if(a != curnav){
	curnav = a;
	if(a == "") {
      divs.forEach(function h(element){
        $(element).className="unvis";
      });
    }
    else {
	  divs.forEach(function h(element){
        $(element).className="unvis";
        $(curnav).className="vis";
      });
	}
  }
}
// clears wForm and blinds up 'what' div
function blindnclear(wForm, what) {
	hideMe(what);
	resForm(wForm);
};
// resets form
function resForm(wForm) {
	document.forms[wForm].reset();
}
// redirects to url
function goTo(url) {
	window.location = url;
}
//
function commonCheck (field, name, reqd) {
	if (!document.getElementById)
		return true;  // not available on this browser - leave validation to the server
	if (emptyString.test(field.value)) {
		if (reqd) {
			alert ('Por favor, preencha o campo "' + name +'".');
			return false;
		}
		else {
			return true;
		}
	}
	return proceed;
}
// validates text in forms
function validateText(field, name) {
 	var stat = commonCheck (field, name, true);
	if (stat != proceed) return stat;
	return true;
};
// validates emails in forms
function validateEmail(field) {
	var tfld = trim(field.value);
	var email = /^[^@]{2,}@[^@.]+\.[^@]*\w\w$/
	if (!email.test(tfld)) {
		alert('O email introduzido não é válido');
		return false;
	}
	return true;
};
// validates files
function validateFile(row, nome, ficheiro) {
	var display = document.getElementById(row).style.display;
	if (display == "block" || display == "table-row") {
		if (!validateText(nome, 'Nome') || !validateText(ficheiro, 'Ficheiro')) {
			return false;
		}
	}
	return true;
}
//  checks empty fields in creating admin form
function noEF(wForm, wDiv) {
	var nempty = true;
	var len = document.forms[wForm].elements.length;
	for (i = 0; i < 4; i++) {
		if (document.forms[wForm].elements[i].value == "") {
				nempty = false;
		}
	}
	if (!nempty) {
		alert("Por favor preencha todos os campos");
		Effect.BlindUp(wDiv);
	}
	return retval;
}
//  checks empty fields in creating admin form
function validateRadio(field) {
	var itemchecked = false;
	for (var j = 0 ; j < field.length ; ++j) {
		if (field[j].checked) {
			itemchecked = true;
			break;
		}
	}
	if (!itemchecked) { 
		alert("Tem de indicar que tipo de reunião se trata (nacional ou internacional).");
		return false;
	   }
	return true;
}
// clears form values
function clearValue(id) {
	document.getElementById(id).value=" ";
}
// warn!!
function warn(id, tag) {
	var w = 400; 
	var h = 195;
	var lpos = (screen.width) ? (screen.width-w)/2 : 0;
	var tpos = (screen.height) ? (screen.height-h)/2 : 0;
	window.open('/inc/warning.php?tag='+tag+'&id='+id, 'Atencao', 'height='+h+', width='+w+', scrollbars=0,top='+tpos+', left='+lpos+'');
}
// parent window does stuff
function pWork(url) {
		self.opener.location = url;
		self.close();
}
// Adicionar ficheiros anexados 
function addFile() {
	var abriu = false;
	var layers = new Array(5);
	layers[0] = "ficheiro_1";
	layers[1] = "ficheiro_2";
	layers[2] = "ficheiro_3";
	layers[3] = "ficheiro_4";
	layers[4] = "ficheiro_5";
	for (var i=0; i<layers.length; i++) {
		// ie...
		if (document.all) {
			var layer = document.all[layers[i]].style;
			var typeDisplay = "block";
		} else {
			var layer = document.getElementById(layers[i]).style;
			var typeDisplay = "table-row";
		}
		if (layer.display == "") {
			abriu = true;
			layer.display = typeDisplay;
			break;
		}
	}
	if (!abriu) alert('Número máximo de ficheiros!');
};
// Remover ficheiros anexados
function remFile() {
	var layers = new Array(5);
	layers[0] = "ficheiro_1";
	layers[1] = "ficheiro_2";
	layers[2] = "ficheiro_3";
	layers[3] = "ficheiro_4";
	layers[4] = "ficheiro_5";
	for (var i=(layers.length-1); i>=0; i--) {
		if (document.all) {
			var layer = document.all[layers[i]].style;
		}
		else {
			var layer = document.getElementById(layers[i]).style;
		}
		if (layer.display == "block" || layer.display == "table-row") {
			layer.display = "";
			break;
		}
	}
};