//criar automaticamente no formulário os campos para controle de foco
function criarCamposFoco() {
    //verificar se o campo ainda não foi criado
    if (document.getElementById('nextFoco') == undefined) {
        with (document.forms[0]) {
            //campo do próximo foco
            var cmp = document.createElement("input");
            cmp.type='hidden';
            cmp.name='nextFoco';
            cmp.id='nextFoco';
            cmp.value='';
            appendChild(cmp);
            
            //campo do foco default
            var cmp = document.createElement("input");
            cmp.type='hidden';
            cmp.name='nextFocoDef';
            cmp.id='nextFocoDef';
            cmp.value='';
            appendChild(cmp);						
        }
    }
}
                    
//gravar as informações nos campos para enviar o foco após recarregar a página
function defineOnLoadFoco(objFoco, objFocoDef) {
	var nomeFoco;
	var nomeFocoDef;
	//verificar o tipo informado no parâmetro
	if (typeof(objFoco) == 'string') {
		nomeFoco = objFoco;
	}
	else if (objFoco != undefined) {
		nomeFoco = objFoco.name;
	}
	//campo opcional
	if (typeof(objFocoDef) == 'string') {
		nomeFocoDef = objFocoDef;
	}
	else if (objFocoDef != undefined) {
		nomeFocoDef = objFocoDef.name;
	}
	//
    criarCamposFoco(); //função para criar os campos necessários no formulário
    with (document.forms[0]) {
        //se definiu o primeiro campo
        if (objFoco != undefined) {
            //gravar o nome do campo no hidden 'nextFoco', 
            //que representa o próximo campo a receber foco ao recarregar a página
            nextFoco.value = nomeFoco;
            //verifica se foi definido um campo default caso o principal não esteja disponível
            if (objFocoDef != undefined) {
                //gravar o nome no hidden 'nextFocoDef',
                //que reprsenta o campo a receber o foco caso o principal não esteja disponível
                nextFocoDef.value = nomeFocoDef;
            }
        }
    }
}

//envia o foco para o objeto 'obj' se o objeto não estiver readOnly e disabled,
//caso contrário tenta enviar para um objeto 'objDef' opcional caso tenha definido no parâmetro.    
function onLoadFoco(obj, objDef,objIframe){
	var objFoco;

    if( obj != empty() ){
    	//verificar se é possível consultar pelo ID
    	objFoco = document.getElementById(obj);
    	//se não encontrar, tentar recuperar pelo nome
    	if (objFoco == null || objFoco == undefined) {
    		objFoco = document.getElementsByName(obj)[0];
    	}
    	//enviar o foco caso encontre o campo em uma das tentativas acima
    	if (objFoco != undefined) {
            if (!objFoco.readOnly && !objFoco.disabled) {
            	objFoco.focus();
                return;
            }
    	}
    	//campo opcional a receber o foco, caso o principal não exista ou esteja desabilitado
        if (objDef != empty()) {
        	//verificar se é possível consultar pelo ID
        	objFoco = document.getElementById(objDef);
        	//se não encontrar, tentar recuperar pelo nome
        	if (objFoco == null || objFoco == undefined) {
            	objFoco = document.getElementsByName(objDef)[0];
        	}        	
        	if (objFoco != undefined) {
        		objFoco.focus();
        		return;
        	}
        }
    }

    if( objIframe != empty()&& objIframe == true){
  
    	focoDivInput();
    }else{
    
    	enviaFocoPrimCampo()
    }
    	
  // enviaFocoPrimCampo();
}

//enviar foco para o primeiro campo de um formulário
function enviaFocoPrimCampo() {
	var form = document.forms[0]; //utilizar o primeiro form da página
	if (form != undefined) {
		var objCampos = form.elements; //retorna um array com todos os campos do formulário
		if (objCampos != undefined && objCampos.length > 0) {
			for (var i = 0; i < objCampos.length; i++) {
				var obj = objCampos[i];
				var tipo = obj.type; 
				//verificar se conseguiu obter o tipo do campo
				if (tipo != undefined) {
					//verificar se o tipo é um 'select' (pode ser select-one ou select-multiple) ou um 'text'
					//e se não está como somente-leitura (select não possui esta propriedade) e não esteja desabilitado
					if ( (obj.type.indexOf('select') >= 0 || obj.type == 'text') 
								&& (obj.readOnly == undefined || obj.readOnly == false) 
								&& obj.disabled == false) {
						obj.focus();
						break;
					}
				}
			}
		}
	}	
}

function focoDivInput (){
	var lista = document.getElementsByTagName('input');
	for (var i = 0; i < lista.length; i++){
	  if (lista[i].type!='hidden' && lista[i].disabled == false) {
	      lista[i].focus();
	    break;
	  }
	}}