var contextPath = "/unopar";
var process;
function out(){process = setTimeout(hide, 700);}
function over(){if(process){clearTimeout(process);process=null;}}
function hide(){hideSelects(true); $('submenu').style.display = 'none';$('mainmenu').style.display = 'none';}

function hideSelects(b){
	$$('select').each(function (i){ i.setStyle({'visibility' : b?'visible':'hidden'});});
	$$('input').each(function (i){ i.setStyle({'visibility' : b?'visible':'hidden'});});
}

Element.addMethods('SELECT', {
	queryFilter: function (element, query){
		element = $(element);
		element.selectedIndex = -1;
		if(!this.allElements){
			this.allElements = $A(element.options); 
		}
        var sel = this.allElements.filter(function(e){
        	e = $(e);
        	element.insert(e);	
        	return !e.firstChild || e.firstChild.data.toLowerCase().indexOf(query.toLowerCase()) < 0;
        }).map(Element.remove);
        return this.allElements.size() - sel.size();
	}  
});

function showLoader(){if($('loading')) $('loading').style.display='';}
function hideLoader(){if($('loading')) $('loading').style.display='none';}

function sm(){
	var url = contextPath+'/menu/getmenu.action';
	if($('mainmenu').innerHTML == ''){
		new Ajax.Request(url, {method: 'post',
						onComplete: function(req){
										var lst = eval(req.responseText);
										if(lst.length>0){
											for(var i = 0; i < lst.length; i++){
												$('mainmenu').innerHTML += '<a onmouseover="javascript:over()" onmouseout="javascript:out()" id="_'+lst[i].siinCd+'" href="javascript:ssm('+lst[i].siinCd+')">'+lst[i].siinDs+'</a>';
											}
	                                   		$('mainmenu').style.display = '';
										}else{
	                                   		$('submenu').style.display = 'none';
										}
									}
		});
	}
	var src = $('menu');
	var offset = Position.cumulativeOffset(src);
	$('submenu').style.display = 'none';
	$('mainmenu').toggle();
	hideSelects($('mainmenu').style.display=='none');
	$('mainmenu').style.top = (offset[1]+Element.getHeight(src))+'px';
	$('mainmenu').style.left = offset[0]+'px';
}


function ssm(id){
    var url = contextPath+'/menu/getsubmenu.action';
    var pars = 'insisint.siinCd='+id;
	new Ajax.Request(url, {
		method: 'post',
     	parameters: pars,
		onError: function(){alert('Erro');},
		onComplete: function(req){
			$('submenu').innerHTML = '';
			var lst = eval(req.responseText);
			if(lst.length>0){
				for(var i = 0; i < lst.length; i++){
					if(!lst[i].actiBoManutencao){
						$('submenu').innerHTML += '<a onmouseover="javascript:over()" onmouseout="javascript:out()" href="'+contextPath+'/'+lst[i].actiDsAction+'">'+lst[i].actiDsMenu+'</a>';
					}else{
						$('submenu').innerHTML += '<a onmouseover="javascript:over()" onmouseout="javascript:out()" href=\'\'>'+lst[i].actiDsMenu+' <span style="color:red">Manutenção</span></a>';
					}
				}
            	var src = $('_'+id);
            	var offset = Position.cumulativeOffset(src);
                $('submenu').style.top = (offset[1]+Element.getDimensions(src).height/2)+'px';
				if(offset[1] + Element.getDimensions($('submenu')).height > document.viewport.getDimensions()[1]){
                    $('submenu').style.top = (offset[1]+Element.getDimensions(src).height/2) - Element.getDimensions($('submenu')).height +'px';
				}else{
                    $('submenu').style.top = (offset[1]+Element.getDimensions(src).height/2)+'px';
				}
                $('submenu').style.left = (offset[0]+Element.getDimensions(src).width-10)+'px';
                $('submenu').style.display = '';
			}else{
                $('submenu').style.display = 'none';
			}
		}
	});
}

// Busca de cidades
function buscaCidade(selectElement){
	buscaCidadeTipo(selectElement, '');
}

function buscaCidadeTipo(selectElement, muniTp){
	if (selectElement.value == -1) {
		selectElement.selectedIndex = 0;
		var q = window.prompt("Pesquisa de cidades:", "Digite parte do nome da cidade", true);
		if(q && q.length > 2){
			var url = '/unopar/common/buscaCidades.action';
			var pars = 'query='+likeStr(q)+'&muniTp='+muniTp;
			new Ajax.Request(url, {
				method: 'post',
			parameters: pars,
			onComplete: function(req){
				fillCombo(eval(req.responseText), selectElement)
			},
			onFailure: hideLoader});
			return false;
		}
	}
}
function fillCombo(list, combo){
	if(!list || list.length==0){
		alert('Nenhum item localizado!');
	}else{
		combo.options.length=3;
		for(var i = 0; i < list.length; i++){
			combo.options[i+3] = new Option(list[i].descricao +(list[i].info?' - '+list[i].info:''), list[i].id);
		}
	}
	combo.selectedIndex = 0;
}

// Busca de pessoas
function buscaPessoas(selectElement){
	buscaPessoas(selectElement, '');
}

function buscaPessoas(selectElement, perfis){
	//Novo cadastro
	if (selectElement.value == -2) {
		window.open("/unopar/common/cadastraPessoaForm.action?combo="+selectElement.name, null, "top=100, left=200, height=280, width=473, status=no, toolbar=no, menubar=no, location=no");
	}

	//Localizar por nome
	if (selectElement.value == -1) {
		var q = '';
		if(q = window.prompt("Pesquisa de pessoas:", "Digite parte do nome da pessoa!", true)){
			var url = '/unopar/common/buscaPessoas.action';
			var pars = 'query='+likeStr(q);
			
			if(perfis && perfis.length>0){
				perfis = $w(perfis);
				for(var i = 0; i < perfis.length; i++){
						pars += '&gepfCd='+perfis[i];
				}
			}

			new Ajax.Request(url, {method: 'post',
				parameters: pars,
				onComplete: function(req){
					fillCombo(eval(req.responseText), selectElement)
				},
				onFailure: hideLoader});
		}
	}
	
	//Localizar por codigo
	if (selectElement.value == -3) {
		var q = '';
		if(q = window.prompt("Pesquisa de pessoas:", "Digite o código do funcionário!", true)){
			var url = '/unopar/common/buscaFuncionario.action';
			var pars = {
						'funcCd' : q
					   };
			
			new Ajax.Request(url, {method: 'post',
				parameters: pars,
				onComplete: function(req){
					fillCombo(eval(req.responseText), selectElement)
				},
				onFailure: hideLoader});
		}
	}
}

// Busca de profissoes
function buscaProfissoes(selectElement){
	if (selectElement.value == -1) {
		selectElement.selectedIndex = 0;
		var q = window.prompt("Pesquisa de Profissões:", "Digite parte do nome da profissão ", true);
		if(q && q.length > 3){
			var url = '/unopar/common/buscaProfissoes.action';
			var pars = 'query='+likeStr(q);
			new Ajax.Request(url, {
				method: 'post',
				parameters: pars,
				onComplete: function(req){
					fillCombo(eval(req.responseText), selectElement)
				},
				onFailure: hideLoader});
			return false;
		}
	}
}
function likeStr(str){
	return str.replace(/[^0-9A-Za-z ]/g, '_').toUpperCase();
}

function setupToolTip(field, text){
	this.tip = new Element("DIV");
	this.tip.id = 'tip';
	this.tip.setStyle({
		backgroundColor:'#FFF',
		padding:'5px',
		border:'1px solid #000',
		position:'absolute'
	});
	this.tip.hide();
	document.body.appendChild(this.tip);
	this.field = $(field);
	if(!this.field) return;
	if(text==null || text==""){
		text = field.readAttribute('title');
	}
	$(field).removeAttribute('title');
	this.field.observe('mousemove', function(event){
		if(!this.field) return;
		this.tip.update(text);
		this.tip.setStyle({
			top: Event.pointerY(event)+15+'px',
			left: Event.pointerX(event)+15+'px'
		});
		this.tip.show();
	}.bindAsEventListener(this));
	this.field.observe('mouseout',	function(event){
		this.tip.hide();
	}.bindAsEventListener(this));
}

function setupToolTipByClassName(className, text){
	var elements = document.getElementsByClassName(className);
	if(elements){
		elements.each(
			function(e){
				setupToolTip(e, text);
			}
		);
	}
}

var item=0;
function addAnexo(tipo){
	item++;
	var dv = document.createElement('div');
	dv.setAttribute('id', item);
	var link = document.createElement('a');
	link.setAttribute('href','javascript: remAnexo(\''+item+'\','+tipo+');');
	link.appendChild(document.createTextNode(' '));
	var img = document.createElement('img');
	img.setAttribute('src', '/unopar/images/form_cancel.gif');
	img.setAttribute('border', 0);
	link.appendChild(img);
	var inpt = document.createElement('input');
	inpt.setAttribute('type','file');
	inpt.setAttribute('name', 'anexo');
	inpt.setAttribute('size',50);
	dv.appendChild(inpt);
	dv.appendChild(link);
	$('anexos'+tipo).appendChild(dv);
}

function remAnexo(item, tipo){
	var a = $(item);
	var b = $('anexos'+tipo);
	b.removeChild(a);
}

function getUserInfo(geusCd){
	var openedWindow = window.open('/unopar/message/getuserinfo.action?geuser.geusCd='+geusCd, 'Informações', 'resize=no,width=400,height=225');
}

function hideUserInfo(){
	document.body.removeChild($('info'));
}
