

function ToggleDisplay(id) {
	if(!document.getElementById(id)) return false;
	if(document.getElementById(id).style.display == 'undefined') return false;
	if(document.getElementById(id).style.display == 'none') document.getElementById(id).style.display = '';
	else document.getElementById(id).style.display = 'none';
}

function GetXmlHttpObject() {
 var xmlHttp=null;
	try {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer
	  try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
  }
	return xmlHttp;
}


function urlencode(str) {
str = escape(str);
str = str.replace('+', '%2B');
str = str.replace('%20', '+');
str = str.replace('*', '%2A');
str = str.replace('/', '%2F');
str = str.replace('@', '%40');
return str;
}

function urldecode(str) {
str = str.replace('+', ' ');
str = unescape(str);
return str;
}


markedRowIndex = 0;
oldRowIndex = 0;

function highlightRow(theRow, theClass)	{
	if(typeof(theRow.className) == 'undefined' || typeof(theRow.style) == 'undefined' || typeof(theRow.cells) == 'undefined')
		return false;
	theRow.className = theClass;
	//if(markedRowIndex == theRow.rowIndex) return true;
	//alert(theRow.rowIndex);
	//var row_cells_cnt	= theRow.cells.length;
	//for(var c = 0; c < row_cells_cnt; c++) theRow.cells[c].className = theClass;
	//return true;
}

function highlightObj(Obj, theClass)	{
	if(typeof(Obj.style) == 'undefined') return false;
	Obj.className = theClass;
	return true;
}

function highlightCell(radio)	{
	if(typeof(radio.style) == 'undefined') return false;
	pai = radio.form[radio.name];
	for(i=0; i<pai.length; i++) {
		if(pai[i].checked) document.getElementById(pai[i].value).className = "td2";
		else document.getElementById(pai[i].value).className = "td4";
	}
	return true;
}

function markRow(theRow,theClass)	{
	if(typeof(theRow.rowIndex) == 'undefined' || typeof(theRow.parentNode) == 'undefined') return false;
	if(markedRowIndex != 0) oldRowIndex = markedRowIndex;
	markedRowIndex = theRow.rowIndex;
	if(oldRowIndex > 0 && oldRowIndex != markedRowIndex) {
		oldRow = theRow.parentNode.rows[oldRowIndex];
		for(var c = 0; c < oldRow.cells.length; c++) oldRow.cells[c].className = theClass;
	}
	return true;
}

function myform_submit(form, obj) {
	mybutton_disable(obj);
	form.submit();
}

function mybutton_disable(obj) {
	if(typeof(obj.className) != 'undefined' || typeof(obj.innerHTML) != 'undefined') {
		obj.className = "holdbutton";
		obj.innerHTML = LG_HOLD+"...";
		obj.disabled = true;
	}
	else obj.disabled = true;
	return true;
}

function myfield_disable(obj) {
	if(typeof(obj.className) != 'undefined') {
		obj.style.backgroundColor = '#eeeeee';
		obj.style.color = '#7e7e7e';
	}
	obj.disabled = true;
}

function myfield_enable(obj) {
	if(typeof(obj.className) != 'undefined') {
		obj.style.backgroundColor = '#ffffff';
	}
	obj.disabled = false;
}

function JS_trimLeft(s) {
	var whitespaces = " \t\n\r";
	for(n = 0; n < s.length; n++) { 
		if (whitespaces.indexOf(s.charAt(n)) == -1) 
			return (n > 0) ? s.substring(n, s.length) : s; 
	}
	return("");
}
function JS_trimRight(s){
	var whitespaces = " \t\n\r";
	for(n = s.length - 1; n  > -1; n--) { 
		if (whitespaces.indexOf(s.charAt(n)) == -1) 
			return (n < (s.length - 1)) ? s.substring(0, n+1) : s; 
	}
	return("");
}
function JS_trim(s) {
	return ((s == null) ? "" : JS_trimRight(JS_trimLeft(s))); 
}

function JS_isBlank(field, strBodyHeader) {
	strTrimmed = JS_trim(field.value);
	if (strTrimmed.length > 0) return false;
	alert("\"" + strBodyHeader + "\" "+LG_REQUIRED_FIELD);
	field.focus();
	return true;
}

function JS_isBlank2(field, strBodyHeader) {
	strTrimmed = JS_trim(field.value);
	if (strTrimmed.length > 0) return false;
	return true;
}

function JS_invChars(field, strBodyHeader, chars) {
	for (i=0; i < chars.length; i++) { 
		if(field.value.indexOf(chars.charAt(i)) != -1) {
			alert(LG_INVALID_CHAR+" - \""+chars.charAt(i)+"\" - "+LG_IN_FIELD+" \"" + strBodyHeader + "\"");
			field.focus();
			return true;
		}
	}
	return false;
}

function JS_isChecked(field, strBodyHeader) {
	for(i=0; i<field.length; i++) {
		if(field[i].checked) return true;
	}
	alert("\"" + strBodyHeader + "\" "+LG_REQUIRED_CHOICE);
	//field[0].focus();
	return false;
}

function JS_isSelected(field, strBodyHeader) {
	if(field[field.selectedIndex].value == "") {
		alert("\"" + strBodyHeader + "\" "+LG_REQUIRED_CHOICE);
		field.focus();
		return false;
	}
	else return true;
}


function JS_isNumber(field, strBodyHeader) {
	var strVal = JS_trim(field.value);
	if (strVal.length == 0 || strVal.length > 999) return false;
	var 	x = 0;
	for (i=0;i < strVal.length; i++) { 
		if (strVal.charAt(i) >= '0' && strVal.charAt(i) <= '9') x++;
	}
	if (strVal.length > x) {
		alert(LG_INCORRECT_VALUE_FOR_FIELD+" \""+ strBodyHeader + "\".");
		field.focus();
		return false;
	} else {
		return true;
	}
}

function JS_isCodPostal(field4, field3, strBodyHeader) {
	strVal4 = JS_trim(field4.value);
	if(strVal4.length == 4) {
		for(i=0;i < strVal4.length; i++) { 
			if(strVal4.charAt(i) < '0' || strVal4.charAt(i) > '9') break;
		}
		if(i == strVal4.length) {
			strVal3 = JS_trim(field3.value);
			if(strVal3.length == 3) {
				for(i=0;i < strVal3.length; i++) { 
					if(strVal3.charAt(i) < '0' || strVal3.charAt(i) > '9') break;
				}
				if(i == strVal3.length) return true;
			}
		}
	}
	alert(LG_INCORRECT_VALUE_FOR_FIELD+" \""+ strBodyHeader + "\". "+LG_USE_FORMAT+" \"1234-567\"");
	field4.focus();
	return false;
}

function JS_isPhone(field) {
	strVal = JS_trim(field.value);
	first = strVal.charAt(0);
	if(strVal.length == 9 && parseInt(strVal) == strVal && (first == "2" || first == "9" || first == "3")) {
		return true;
	}
	return false;
}

function JS_isValidNum(field, len, strBodyHeader) {
	strVal = JS_trim(field.value);
	if(strVal.length == len) {
		for(i=0;i < strVal.length; i++) { 
			if(strVal.charAt(i) < '0' || strVal.charAt(i) > '9') break;
		}
		if(i == strVal.length) return true;
	}
	alert(LG_INCORRECT_VALUE_FOR_FIELD+" \""+ strBodyHeader + "\". "+LG_MUST_CONTAIN+" "+len+" "+LG_NUMBERS_WITHOUT_SPACES);
	field.focus();
	return false;
}

function JS_isDate(field, strBodyHeader) {
	//date format YYYY-MM-DD
	var strVal = JS_trim(field.value);
	data = strVal.split("-");
	if(data.length == 3) {
		if(data[0] > 1900 && data[1] > 0 && data[1] < 13 && data[2] > 0 && data[2] < 32) return true;
	}
	alert(LG_INCORRECT_VALUE_FOR_FIELD+" \"" + strBodyHeader + "\". "+LG_USE_FORMAT+" \"AAAA-MM-DD\".");
	field.select();
	field.focus();
	return false;
}

function JS_isEmail(field, strBodyHeader) {
	if(JS_isBlank(field, strBodyHeader)) return false;
	var strMsg = ""; 
	var chAt  = '@'; 
	var chDot = '.'; 
	var strEmailAddr = JS_trim(field.value);
	   if (strEmailAddr.length == 0) return true;
	   if (strEmailAddr.indexOf(" ") == -1)
	   {
	       var iFirstAtPos = strEmailAddr.indexOf(chAt);
	       var iLastAtPos = strEmailAddr.lastIndexOf(chAt);
	       if (iFirstAtPos > 0 && iFirstAtPos < (strEmailAddr.length - 1) &&iFirstAtPos == iLastAtPos) {
		   // look for '.' there must be at least one char between '@' and '.'
		   var iDotPos = strEmailAddr.indexOf(chDot, iFirstAtPos + 1);
		   if (iDotPos > (iFirstAtPos + 1) && iDotPos < (strEmailAddr.length -1)) return true;
	       }
	   }
	   alert(LG_INVALID_EMAIL_ADDRESS+" \"" + strBodyHeader + "\"");
		 field.select();
	   field.focus();
	   return false;
}

function JS_isEmail2(str) {
	var strMsg = ""; 
	var chAt  = '@'; 
	var chDot = '.'; 
	var strEmailAddr = JS_trim(str);
	   if (strEmailAddr.length == 0) return true;
	   if (strEmailAddr.indexOf(" ") == -1)
	   {
	       var iFirstAtPos = strEmailAddr.indexOf(chAt);
	       var iLastAtPos = strEmailAddr.lastIndexOf(chAt);
	       if (iFirstAtPos > 0 && iFirstAtPos < (strEmailAddr.length - 1) &&iFirstAtPos == iLastAtPos) {
		   // look for '.' there must be at least one char between '@' and '.'
		   var iDotPos = strEmailAddr.indexOf(chDot, iFirstAtPos + 1);
		   if (iDotPos > (iFirstAtPos + 1) && iDotPos < (strEmailAddr.length -1)) return true;
	       }
	   }
	   return false;
}

function JS_makeParent(rid) { 
	document.Com.ParentRid.value = rid;
}

var clicked = 0;
LG_HOLD = "Aguarde";
LG_REQUIRED_FIELD = "é um campo obrigatório. Por favor, preencha esse campo.";
LG_REQUIRED_CHOICE = "é um campo obrigatório. Por favor, indique a sua opção.";
LG_INVALID_CHAR = "Carácter inválido";
LG_IN_FIELD = "no campo";
LG_INCORRECT_VALUE_FOR_FIELD = "Valor incorrecto para o campo";
LG_USE_FORMAT = "Utilize o formato";
LG_MUST_CONTAIN = "Deve conter";
LG_NUMBERS_WITHOUT_SPACES = "digitos sem espaços.";
LG_INVALID_EMAIL_ADDRESS = "Endereço de Email inválido. Por favor, escreva um endereço de Email válido no campo";


function getWindowSize() {
	if (typeof(window.innerHeight) == 'number') {
		windowSize = new Array(window.innerWidth, window.innerHeight);
	}
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
			windowSize = new Array(document.documentElement.clientWidth, document.documentElement.clientHeight);
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowSize = new Array(document.body.clientWidth, document.body.clientHeight);
			}
		}
	}
	return windowSize;
}

function setFooter() {
	if(document.getElementById) {
		if(typeof(windowSize) == "undefined" || windowSize == null) {
			windowSize = getWindowSize();
			document.getElementById('floatdiv').style.left = (windowSize[0] - 106 + pad_left) + 'px';
		}
		if (document.body.scrollTop < 100) {
			document.getElementById('floatdiv').style.visibility = 'hidden';
			return true;
		}
		if (document.body.scrollTop > 100) {
			document.getElementById('floatdiv').style.visibility = 'visible';
			document.getElementById('floatdiv').style.top = (document.body.scrollTop + windowSize[1] - 30 + pad_top) + 'px';
			return true;
		}
	}
}





