//==================================
function afFinishAction(data,ok,bad,type){
	try{
		var dados = eval(data);
		if(dados){
			if( (dados[0].id != 0 && arguments[arguments.length-1] == 4) || (dados[0].id == 0 && arguments[arguments.length-1] != 4) ){
				parent.htcWinCloseandEnable('pnl');
				if(!arguments.length > 3){
					eval(arguments[4]).innerHTML = bad;
				}else{
					if(window.opener)
						(type == 'winstd')?window.opener.afDialog(bad,'Aviso!','btOkOnly'):alert(bad);
					else
						(type == 'winstd')?parent.afDialog(bad,'Aviso!','btOkOnly'):alert(bad);
				}
			}else{
				afGridReload();
				parent.htcWinCloseandEnable('pnl');
				/*if(window.opener)
					(type == 'winstd')?window.opener.afDialog(ok,'Aviso!','btOkOnly'):alert(ok);
				else
					(type == 'winstd')?parent.afDialog(ok,'Aviso!','btOkOnly'):alert(ok);*/
			}
		}else{
			status = 'ERRO \n- Formato de invalido';
		}
	}catch(e){
		status = 'ERRO - FA \n- ' + e.description;
	}
}

function afGridCallBack(dg,af,fkey,state,key,tipo,acao,w,h,dados){
	var params = '';
	params += 'dgID='+dg;
	params += '&'+ af +'_acao='+state;
	params += '&afNome='+af;
	params += '&afGrid=true';
	params += '&keyValue='+key;
	params += '&forKeyValue='+fkey;
	switch(tipo){
		case 'popup':
			if(acao.indexOf('?') != -1)
				htcPopUp('pop_'+af,acao+'&'+params, 0, 0, w, h);
			else
				htcPopUp('pop_'+af,acao+'?'+params, 0, 0, w, h);
		break;
		case 'htcwin':
			var b = new htcBrowserInfo();
			if(Request.QueryString('subWin') == 'true'){
				Obj('htcWin').style.left = '10px';
				Obj('htcWin').style.top = '10px';
			}else{		
				Obj('htcWin').style.left = parseInt((b.screenWidth / 2) - (w / 2)) + 'px';
				Obj('htcWin').style.top = (b.screenHeight / 2) - parseInt(h / 2) - 100 + 'px';
			}
			Obj('htcWin').style.height = (h+40) + 'px';
			Obj('htcWin').style.width = (w+20) + 'px';
			Obj('htcWin').style.display = 'block';
			(acao.indexOf('?') != -1)?acao = acao+'&'+params:acao = acao+'?'+params;
			Obj('htcAllDisabled').style.display = 'block';
			Obj('htcAllDisabled').style.height = b.fullHeight + 'px';
			Obj('htcWin_conteudo').innerHTML = '<iframe width="'+w+'" height="'+h+'" src="'+acao+'" scrolling="no" frameborder="0" marginheight="0" marginwidth="0" allowtransparency="no"></iframe>'
			Obj('htcWin_titulo').innerHTML = '';
		break;
		case 'winstd':
			htcWinOpenandDisable();
			(acao.indexOf('?') != -1)?acao = acao+'&'+params:acao = acao+'?'+params;
			htcPanel('frame','&nbsp;','close',acao,w,h,null,'center');
			break;
			
	}
	
}

function afDialog(mensagem,titulo,acao,pos,neg,h,w){
	var valid = false;
	var botoes = '';
	(neg && neg != 'undefined')?neg+=',htcWinCloseandEnable(\'pnl\');':neg='htcWinCloseandEnable(\'pnl\');';
	(pos && pos != 'undefined')?pos+=',htcWinCloseandEnable(\'pnl\');':pos='htcWinCloseandEnable(\'pnl\');';
	switch(acao){
		case 'btOkOnly':
			valid = true;
			botoes = '<input type="button" value=" OK " onClick="'+ pos +'" id="htcDialogButton">';
			break;
		case 'btOkCancel':
			valid = true;
			botoes = '<input type="button" value=" OK " onClick="'+ pos +'" id="htcDialogButton">';
			botoes += ' &nbsp; &nbsp; &nbsp; <input type="button" value=" Cancel " onClick="'+ neg +'" id="htcDialogButton">';
			break;
		case 'btYesNo':
			valid = true;
			botoes = '<input type="button" value=" Sim " onClick="'+ pos +'" id="htcDialogButton">';
			botoes += ' &nbsp; &nbsp; &nbsp; <input type="button" value=" Não " onClick="'+ neg +'" id="htcDialogButton">';
			break;
	}
	if(valid){
		var corpo = '<table width="100%" border="0" cellspacing="1" cellpadding="2">' + 
					'<tr><td id="htcDialogText">'+ mensagem +'&nbsp;</td></tr>' + 
					'<tr><td id="htcDialogText">&nbsp;</td></tr>' + 
					'<tr><td id="htcDialogText">'+ botoes +'</td></tr>' + 
					'</table>'
		
		if(!w){w=250}
		if(!h){h=50}
		//TESTE
		htcPanel('conteudo',titulo,'',corpo,w,h,null,'center');
		htcWinOpenandDisable();		
	}
}

function htcWinOpenandDisable(){
	if(document.all){
		for(var i= 0;i<document.frames.length;i++){
			var e = document.frames[i].document.getElementsByTagName('SELECT');
			for(var j=0;j<e.length;j++){e[j].style.visibility='hidden'};
		}
		var e = _geltn('SELECT');
		for(var i=0;i<e.length;i++){e[i].style.visibility='hidden'};
		Obj('htcAllDisabled').style.height = ((screen.height > document.body.scrollHeight)?'99.9%':document.body.scrollHeight + 'px');
		Obj('htcAllDisabled').style.width = '99.9%';
	}
	Obj('htcAllDisabled').style.display = 'block';
}


function htcWinCloseandEnable(tipo){
	if(Obj('htcWin').style.display == 'block'){Obj('htcWin').style.display = 'none'}
	if(document.all){
		for(var i= 0;i<document.frames.length;i++){
			var e = document.frames[i].document.getElementsByTagName('SELECT');
			for(var j=0;j<e.length;j++){e[j].style.visibility='visible'};
		}
		var e = _geltn('SELECT');
		for(var i=0;i<e.length;i++){e[i].style.visibility='visible'};
	}
	if(tipo){if(tipo=='pnl'){win_control.closeWin('all')}}
	Obj('htcAllDisabled').style.display = 'none';
}

function afGridReload(){
	if(window.opener){
		window.opener.renewAllGrids(Request.QueryString('dgID'));
		setTimeout('self.close()',500);
	}else if(parent.dgaID){
		parent.renewAllGrids(Request.QueryString('dgID'));
		parent.htcWinCloseandEnable();
	}else if(dgaID){
		renewAllGrids(Request.QueryString('dgID'));
		htcWinCloseandEnable();
	}else{
		history.go(-1);
	}

}

//====================================================================================

function limitChars(fld,cont,lim){
	if(fld){
		if(fld.value.length > lim)
			fld.value = fld.value.substring(0,lim);
		cont.innerHTML = lim - fld.value.length; 
	}
}

function afComboCallBack(acao,depcmb,valsel,params){
	if(valsel == '0'){
		limpaCombo(eval('document.'+depcmb));
		menCombo(eval('document.'+depcmb),'sem itens encontrados',0)
	}else{
		htcGet(acao,null,true,params,'fillCombo(result,document.'+depcmb+')','data');
	}
}

//====================================================================================
// define the addEvent(oElement, sEvent, sCmd, bAppend) function
//function $addEvent(o, _e, c, _b)
function addSkip(to,from,size){
	var c = "(this.value.length >= "+ size +")?"+ to +".focus():true;";
	var x = (from["onkeyup"]) ? from["onkeyup"].toString() : "";
	x = x.substring(x.indexOf("{")+1, x.lastIndexOf("}"));
	x = (x + c) + "\n";
	return from["onkeyup"] = (!!window.Event) ? new Function("event", x) : new Function(x);
}



//====================================================================================

function fillCombo(dados,target,onFinish){
	//var dados = eval(valores);
	limpaCombo(target);

	if(dados){
		if(dados.length <= 20){
			for(var i = 0;i < dados.length;i++)
				menCombo(target,dados[i].label,dados[i].value);
		}else{
			var cnt = 0;
			var cnt2 = 0;
			while(cnt < dados.length){
				(cnt+20 > dados.length)?cnt2 = dados.length:cnt2 = cnt + 20;
				for(var i = cnt;i < (cnt2);i++)
					menCombo(target,dados[i].label,dados[i].value);
				cnt = cnt2;
			}
		}
	}
	try{
		afSubValues();
		target.fireEvent('onchange');
	}catch(e){
		try{
		target.fireEvent('onchange');
		}catch(e1){
			status = e1.description;	
		}
	}
	
	if(onFinish)
		eval(onFinish);

}

function limpaCombo(sender){
	if(sender.tagName == 'SELECT'){
		for(var i = sender.options.length;i >= 0;i--)
			sender.remove(i);
	}else{
		status = 'SENDER NAO ENCONTRADO - limpaCombo';
	}
}

function pesquisaCombo(sender,valor,seleciona){
	if(sender.tagName == 'SELECT'){
		if(sender.options.length > 0){
			for(var i = 0;i < sender.options.length;i++)
				if(sender.options[i].value == valor){
					if(seleciona)
						sender.options[i].selected = true;
					else
						return true;
				}
			return false;
		}else{
			return false;	
		}
	}else{
		status = 'SENDER NAO ENCONTRADO - pesquisaCombo';
	}
}

function menCombo(sender,men,valor){
	if(sender.tagName == 'SELECT'){
		var elem = document.createElement('OPTION');
		elem.text = men;
		elem.value = valor;
		try{
			sender.add(elem);
		}catch(e){
			try{
				sender.add(elem,null);
			}catch(e1){
				status = 'Erro';
			}
		}
	}else{
		status = 'SENDER NAO ENCONTRADO - menCombo';
	}
}

function addOptionWR(origem,destino){ //add with remove
	for(var a = origem.options.length - 1;a >= 0;a--){
		if(origem.options[a].selected){
			menCombo(destino,origem.options[a].text,origem.options[a].value);
			origem.remove(a);
		}
	}
}

function cmbSelectAll(cmb){
	for(var a = 0;a < cmb.options.length;a++){
		cmb.options[a].selected = true;
	}
}


function cmbToUp(obj){

	var ponteiro,tempv,tempt;
	ponteiro = obj.selectedIndex;
	if(ponteiro > 0){
		//item acima
		tempt = obj.options[ponteiro - 1].text;
		tempv = obj.options[ponteiro - 1].value;
		
		obj.options[ponteiro - 1].text  = obj.options[ponteiro].text;
		obj.options[ponteiro - 1].value = obj.options[ponteiro].value;
		
		obj.options[ponteiro].text  = tempt;
		obj.options[ponteiro].value = tempv;
	
		//corrige(obj,false);	
		
		obj.options[ponteiro - 1].selected = true;
	}

}

function cmbToDown(obj){

var ponteiro,tempv,tempt;
ponteiro = obj.selectedIndex;
if((ponteiro + 1) < obj.length){
	
	//item acima
	tempt = obj.options[ponteiro + 1].text;
	tempv = obj.options[ponteiro + 1].value;
	
	obj.options[ponteiro + 1].text  = obj.options[ponteiro].text;
	obj.options[ponteiro + 1].value = obj.options[ponteiro].value;
	
	obj.options[ponteiro].text  = tempt;
	obj.options[ponteiro].value = tempv;
	
	cmbCorrige(obj,false);
	
	obj.options[ponteiro + 1].selected = true;
}

}

//correção para as duas ultimas funcoes
function cmbCorrige(obj,al){
	if(obj.options.length){
		for(a = 0;a < obj.options.length;a++){
//			alert('a : ' + a);
			obj.options[a].selected = al;		
		}
	}
}

