<!--//
function integerFieldInputHandler(e){
  if(event.keyCode < 48 || event.keyCode > 57) {
    event.keyCode = null;
  }
}
function dateFieldInputHandler(e){
  if (document.layers)
      key = e.which;
  else
      key = window.event.keyCode;
  //só aceira numeros e o "-"
  if((event.keyCode!=45) &&(event.keyCode < 48 || event.keyCode > 57)){
    event.keyCode = null;
  }
}
function decimalFieldInputHandler(e) {
  if (document.layers)
      key = e.which;
  else
      key = window.event.keyCode;


  var value = event.srcElement.value;
  if (key != 0){

    if (key > 57){
        // consome a tecla
        event.keyCode = null;
    }
    else if (key < 48){
      if (key == 44 || key == 46){

        // apresenta uma vírgula, apenas uma vez          
        if (value.indexOf(',') == -1)
          event.keyCode = 44; //incompleto
        else{
          // consome a tecla
          event.keyCode = null;
        }
      }
/*
      else if (key == 45){
        // apresenta só no início
        event.keyCode = null;

        var firstChar = (value.length > 0)?value.substring(0, 1):'';

        if (firstChar == '-'){
          event.srcElement.value = value.substring(1, value.length);
        }
        else{
          event.srcElement.value = '-' + event.srcElement.value;
        }
      }
*/      
      else{
        // consome a tecla
        event.keyCode = null;
      }
    }
  }
}


function executeOption(targ,selObj) {
  dest = selObj.options[selObj.selectedIndex].value;
  if (dest.length > 0) {
    eval(targ+".location='"+dest+"'");
  }
}

function executeOption2(targ,selObj,type,param) {
  dest = selObj.options[selObj.selectedIndex].value;
  if (dest.length > 0) {
  	if (type==1){
    	eval(targ+".location='"+dest+"'");
    }
    else{ 
    	if (type==2)
    		window.open(dest,null,param);
    }
  }
}


function askUser(obj){
  var result = confirm('Deseja remover o registo?');
  if (result){
    //obj.form.objectName.value="D";
  } 
  return result;
}

function setSearchString(element)
{
  var elements = document.getElementsByName("searchString");
  var size = elements.length;
  var i = 0;
  while(i != size)
  {
    if (elements[i] != element)
    {   
      elements[i].value = element.value;
    }
    i++;
  }
  return false;
}

function setSearchOption(op)
{
  var elements = document.getElementsByName("searchOp");
  var size = elements.length;
  var i = 0;
  
  while(i != size){
    elements[i].value = op;
    i++;
  }
}

function setFormActionToSearch(cmp) {
  cmp.form.action=searchAction;
}


function deleteRecordFromDB(dest){
	eval("window.location='"+dest+"'");
}

function selectAllOptions(obj){
  if(obj != null){
    for(i=0;i<obj.options.length;i++)
    obj.options[i].selected = true;		
  }
}


function unselectAllOptions(obj){
  if(obj != null){
    for(i=0;i<obj.options.length;i++)
      obj.options[i].selected = false;
  }
}


function tranferOption(origin, destiny) {
  tranferOptionWithoutSort(origin, destiny);
  
  sortSelect(destiny);
  sortSelect(origin);
  
}

function tranferOptionWithoutSort(origin, destiny) {
  for (i=0; i<origin.options.length; i++) {
    if(origin.options[i].selected) {

      var value = origin.options[i].value;
      var text = origin.options[i].text;

      origin.options[i] = null;
      destiny.options[destiny.options.length]=new Option (text,value);

      i=i-1;
    }
  }  
}


function sortSelect(obj){
  var arrayOptions = new Array();
  
  for (i=0; i< obj.options.length; i++)
  	arrayOptions[i] = obj.options[i];
  
  var arrayDesc = new Array();
  for (i=0; i<obj.options.length;i++){
  	arrayDesc[i] = obj.options[i].text;
  }
  
  arrayDesc.sort();
  
  for (x=obj.options.length-1; x>=0; x--){
    	obj.removeChild(obj.options[x]);
  }
  
  for (x=0; x<arrayDesc.length; x++){
    var found = "false";

    for (j=0; j<arrayOptions.length; j++){
      if (found == "false"){

        if (arrayDesc[x] == arrayOptions[j].text){
	  obj.add(new Option(arrayOptions[j].text, arrayOptions[j].value));			
	  found = true;
	}
      }
    }
  }   
}


/////////////////////////////////////////////
function openWindow(url,name,w,h,yn1,yn2,yn3,yn4,yn5,yn6,yn7) {
// PARAMETERS

t = ((screen.availHeight/2)-h/2);
l = ((screen.availWidth/2)-w/2);
if (w==0){
	w=screen.availWidth;
	l=0;
}
if (h==0){
	h=screen.availHeight;
	t=0;
}

var parameters = "width="+w+",height="+h+",top="+t+",left="+l+",toolbar="+yn1+",directories="+yn2+",status="+yn3+",scrollbars="+yn4+",resizable="+yn5+",menubar="+yn6+",location="+yn7+"";

// OPEN WINDOW
var varWin = window.open(url, name, parameters);
varWin.focus();
}
/////////////////////////////////////////////
var tab_on_className = 'tab_on';
var tab_off_className = 'tab_off';

var context_on_className = 'context_tr_on';
var context_off_className = 'context_tr_off';

function gotoContext(objField){
	var tab_default = "tab_1";
	if (objField != undefined){
		if(objField.value==''){
			objField.value = tab_default;
		}
		objTab = document.getElementById(objField.value);
		if (objTab != undefined){
			switchContext(objTab);
		}else{
			objField.value = tab_default;
		}
	}
}
function gotoContextValue(objValue){
	var tab_default = "tab_1";
	if (objValue == undefined){
		objValue = tab_default;
	}
	objTab = document.getElementById(objValue);
	if (objTab != undefined){
		switchContext(objTab);
	}
}
function setContext(objTab, objField) {
	objField.value = objTab.id;
}
function switchContext(obj) {

  if (obj.className == tab_on_className) return false;

  // Get all header td's
    var objTab = document.getElementById('tab');
    var objTabColumns = objTab.getElementsByTagName("TD");

  // Get only the header td's who start with 'tab_'
    var objTabColumnsList = new Array();
    var intCount = 0;
    for (x=0; x<objTabColumns.length; x++){
      if (objTabColumns[x].id.substr(0,4) == 'tab_') {
        objTabColumnsList[intCount] = objTabColumns[x];
        intCount++;
      }
    }
    
  // Get all context td's
    var objContext = document.getElementById('context');
    var objContextColumns = document.getElementsByTagName("TR");

  // Get only the context td's who start with 'context_'
    var objContextColumnsList = new Array();
    var intCount = 0;
    for (x=0; x<objContextColumns.length; x++){
      if (objContextColumns[x].id.substr(0,8) == 'context_') {
        objContextColumnsList[intCount] = objContextColumns[x];
        intCount++;
      }
    }

    for (i=0; i<objTabColumnsList.length; i++) {
      if(objTabColumnsList[i].id == obj.id){
        objTabColumnsList[i].className = tab_on_className;
        objContextColumnsList[i].className = context_on_className
      }else{
        objTabColumnsList[i].className = tab_off_className;
        objContextColumnsList[i].className = context_off_className
      }
    }
    
}
/////////////////////////////////////////////


function selectOption(selObj, way){

	var options = selObj.options;
	var size = options.length;

	for (i=0; i<size; i++){
				
    if (options[i].selected == true){  
    	// previous option
    	if ((way==-1) && (i>0)){
    		options[i].selected = false;
    		options[i-1].selected = true;    		
    		return true;
    	}
    	// next option
    	if ((way==1) && (i<size-1)){
    		options[i].selected = false;
				options[i+1].selected = true;					
				return true;
			}
    }		    
	}		
	
	return false;

}

////
//Para os filtros
function switchButtonBar(obj, objSwicthTo){
	if (obj != '[object]' || objSwicthTo != '[object]') return false;

	var strAux = obj.className;
	obj.className=objSwicthTo.className;
	objSwicthTo.className=strAux;

}

////
//trim
function trim(str){
	return str.replace(/^\s*|\s*$/g,"");
}

////
//Desactivar botões
function disableButton(buttonName){
	objPreviousButton = document.getElementsByName(buttonName);
	if(objPreviousButton != 'undefined'){
		size = objPreviousButton.length;
		for(i=0;i<size;i++){
			objPreviousButton[i].disabled='true';
		}
	}
}

////
//pesquisar
function checkSearchString(inputField){
  // Retirar a percentagem do fim da string
  if (inputField.value.substring(inputField.value.length-1,inputField.value.length) == '%'){
    inputField.value = inputField.value.substring(0, inputField.value.length-1);
    gotoEndOf(inputField);
    checkSearchString(inputField);
  }
  if (inputField.value.substring(0,1) == '%'){
    inputField.value = inputField.value.substring(1, inputField.value.length);
    gotoEndOf(inputField);
    checkSearchString(inputField);
  }
  setSearchString(inputField);
} 
function submitSearch(button, start, end){
  button.form.way.value = '';
  button.form.listId.value = '';
  var searchStringInput = button.parentElement.children['searchString'];
  if (searchStringInput.value != ''){
    checkSearchString(searchStringInput);
    if (start) searchStringInput.value = '%' + searchStringInput.value;
    if (end) searchStringInput.value = searchStringInput.value + '%';
  }
  setSearchString(searchStringInput);
}
////

////
//setOnEnd
function gotoEndOf(inputField) {
	tr = inputField.createTextRange();
	tr.collapse(false);
	tr.select();
}
////

//-->

function openWin(url, topPx, leftPx, widthPx, heightPx) {
	var params = '';
	
	params += 'toolbar=0,';
	params += 'status=0,';
	params += 'scrollbars=1,';
	params += 'menubar=0,';
	params += 'location=0,';
	params += 'resizable=1,';
	params += 'top=' + topPx + 'px,';
	params += 'left=' + leftPx + 'px,';
	params += 'width=' + widthPx + 'px,';
	params += 'height=' + heightPx + 'px';

	window.open(url, null, params);
}

function openDefaultWindow(url) {
	openWin(url, 100, 100, 10, 10);
}
