var isIE = (navigator.appName=="Microsoft Internet Explorer")?1:0;

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }7
 }
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}

function enviarMsg(actionType,action,form){
  action = action +'?msg='+ form.msg.value;
  xmlhttp.open(actionType,action,true);
   xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4) {
     form.msg.value = "";
    }
  }
  xmlhttp.send(null)

}

var submetido = false;
function submete(actionRequired){
  if (actionRequired == 'calcularQuantia') document.getElementById('valor').value = '';
  if (!submetido) {
    document.forms[0].actionRequired.value = actionRequired;
    document.forms[0].submit();
  } else {
    alert("Clique apenas 1 vez e aguarde.");
  }
  submetido = true;
}

function atualizaAprovador(matricula,nome){
	window.opener.document.getElementById("idAprovadorSobreposto").value=matricula;
	window.opener.document.getElementById("aprovadorSobreposto").value=nome;
	window.close();
}

function atualizaGabaritoDespesa(){
  document.getElementById('adiantamentoDisponivel').disabled = false;
	if (document.getElementById('idGabaritoDespesa').value == 10001 ||
		document.getElementById('idGabaritoDespesa').value == 10003){
		toggleBox('dadosViagem',1);
    document.getElementById('tdDadosViagem').style.height = 95;
	}else{
		toggleBox('dadosViagem',0);
    document.getElementById('tdDadosViagem').style.height = 0;
	}
	if (document.getElementById('idGabaritoDespesa').value == 10001 ||
		document.getElementById('idGabaritoDespesa').value == 10005){
    document.getElementById('adiantamentoDisponivel').disabled = true;
    document.getElementById('adiantamentoDisponivel').value = '1-SemAdiantamento';
	}
  



}

function atualizaTipoDespesa(limpaValor){
	//inicializa campos
	toggleBox('dadosLanche',0);
	toggleBox('dadosKm',0);
	toggleBox('dadosRefeicao',0);
	toggleBox('dadosTaxi',0);
	toggleBox('dadosExtra10',0);
	toggleBox('dadosPassAerea',0);
	toggleBox('dadosPernoite',0);
	toggleBox('dadosChequeHospedagem',0);
	toggleBox('dadosAdiantamento',0);
  toggleBox('dadosCidade',0);
  toggleBox('itemOrcamentario1',1);
  toggleBox('itemOrcamentario2',1);
  document.getElementById('tdItemOrcamentario1').style.height = 51;
  document.getElementById('tdItemOrcamentario2').style.height = 51;

  toggleBox('botaoCalculaQuantia',0);

	document.getElementById('valor').readOnly=false;
  document.getElementById('justificativa').readOnly=false;
  if (limpaValor) {
    document.getElementById('valor').value=''; 
    document.getElementById('justificativa').value='';
  }

	//valida campos
	if ((document.getElementById('tipoDespesa').value == 10012) ||
      (document.getElementById('tipoDespesa').value == 10025)){
		toggleBox('dadosLanche',1);
    toggleBox('botaoCalculaQuantia',1);
//		document.getElementById('valor').readOnly=true;
		document.getElementById('justificativa').readOnly=true;
    document.getElementById('tdTipoDespesa').style.height = 95;
	}
	else if ((document.getElementById('tipoDespesa').value == 10007) ||
           (document.getElementById('tipoDespesa').value == 10015)){
		toggleBox('dadosKm',1);
    toggleBox('botaoCalculaQuantia',1);
//		document.getElementById('valor').readOnly=true;
    document.getElementById('tdTipoDespesa').style.height = 65;
	}
	else if ((document.getElementById('tipoDespesa').value == 10016) ||
           (document.getElementById('tipoDespesa').value == 10033)){
		toggleBox('dadosRefeicao',1);
		toggleBox('dadosCidade',1);
    toggleBox('botaoCalculaQuantia',1);
//		document.getElementById('valor').readOnly=true;
		document.getElementById('justificativa').readOnly=true;
    document.getElementById('tdTipoDespesa').style.height = 125;
    document.getElementById('dadosCidade').style.top = 68;
	}
	else if ((document.getElementById('tipoDespesa').value == 10017) ||
           (document.getElementById('tipoDespesa').value == 10035)){
		toggleBox('dadosTaxi',1);
    document.getElementById('tdTipoDespesa').style.height = 65;
	}
	else if (document.getElementById('tipoDespesa').value == 10024){
		toggleBox('dadosExtra10',1);
		toggleBox('dadosCidade',1);
    toggleBox('botaoCalculaQuantia',1);
//		document.getElementById('valor').readOnly=true;
    document.getElementById('tdTipoDespesa').style.height = 95;
    document.getElementById('dadosCidade').style.top = 68;
	}
	else if (document.getElementById('tipoDespesa').value == 10028){
		toggleBox('dadosPassAerea',1);
    document.getElementById('tdTipoDespesa').style.height = 65;
	}
	else if (document.getElementById('tipoDespesa').value == 10032){
		toggleBox('dadosPernoite',1);
		toggleBox('dadosCidade',1);
    toggleBox('botaoCalculaQuantia',1);
    document.getElementById('tdTipoDespesa').style.height = 95;
    document.getElementById('dadosCidade').style.top = 68;
	}
	else if (document.getElementById('tipoDespesa').value == 10021){
		toggleBox('dadosChequeHospedagem',1);
    document.getElementById('tdTipoDespesa').style.height = 65;
	}
	else if (document.getElementById('tipoDespesa').value == 10004){
		toggleBox('dadosAdiantamento',1);
		toggleBox('dadosCidade',1);
    toggleBox('botaoCalculaQuantia',1);
    document.getElementById('tdTipoDespesa').style.height = 155;
    document.getElementById('dadosCidade').style.top = 128;
    toggleBox('itemOrcamentario1',0);
    toggleBox('itemOrcamentario2',0);
    document.getElementById('tdItemOrcamentario1').style.height = 0;
    document.getElementById('tdItemOrcamentario2').style.height = 0;
		document.getElementById('valor').readOnly=true;
	}
	else {
    if ((document.getElementById('tipoDespesa').value == "")||
        (document.getElementById('tipoDespesa').value == 10005)||
        (document.getElementById('tipoDespesa').value == 10006)){
      toggleBox('itemOrcamentario1',0);
      toggleBox('itemOrcamentario2',0);
      document.getElementById('tdItemOrcamentario1').style.height = 0;
      document.getElementById('tdItemOrcamentario2').style.height = 0;
    }
    document.getElementById('tdTipoDespesa').style.height = 25;
  }


}


function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
	if(document.layers)	   //NN4+
	{
	   document.layers[szDivID].visibility = iState ? "show" : "hide";
	}
	else if(document.getElementById)	  //gecko + IE 5+
	{
		var obj = document.getElementById(szDivID);
		obj.style.visibility = iState ? "visible" : "hidden";
		obj.style.height = iState ? "auto" : "0";
		if (!isIE) {
			obj.style.top = 0;
		}
	}
	else if(document.all)	// IE 4
	{
		document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
		document.all[szDivID].style.height = iState ? "auto" : "0";
	}

}


function atualizaJustificativa(){
	var texto='';	
  var tipoDespesa = document.getElementById('tipoDespesa').value;

	if (tipoDespesa == 10025){
		texto = ''+document.getElementById('qtdeLanche').value + ' lanche(s). De '+document.getElementById('dataInicial').value+' '+document.getElementById('horaInicioLanche').value+' até '+document.getElementById('dataFinal').value+' '+document.getElementById('horaFimLanche').value+'.'+texto;
	}
  else if (tipoDespesa == 10012){
		texto = ''+document.getElementById('qtdeLanche').value + ' lanche(s). De '+document.getElementById('dataInicial').value+' '+document.getElementById('horaInicioLanche').value+' até '+document.getElementById('dataFinal').value+' '+document.getElementById('horaFimLanche').value+'. Serviço em horário extraordinário.'+texto;
	}
	else if (tipoDespesa == 10016){
		texto = ''+document.getElementById('qtdeRefeicao').value + ' refeição(ões) em '+ document.getElementById('cidade').value + '. De '+document.getElementById('dataInicial').value+' '+document.getElementById('horaInicioRefeicao').value+' até '+document.getElementById('dataFinal').value+' '+document.getElementById('horaFimRefeicao').value+'. Serviço em horário extraordinário.'+texto;
	}
	else if (tipoDespesa == 10033){
		texto = ''+document.getElementById('qtdeRefeicao').value + ' refeição(ões) em '+ document.getElementById('cidade').value + '. De '+document.getElementById('dataInicial').value+' '+document.getElementById('horaInicioRefeicao').value+' até '+document.getElementById('dataFinal').value+' '+document.getElementById('horaFimRefeicao').value+'.'+texto;
	}
	else if (tipoDespesa == 10024){
		texto = ''+document.getElementById('qtdeExtra10').value + ' diária(s) em '+ document.getElementById('cidade').value + '.'+texto;
	}
	else if (tipoDespesa == 10032){
		texto = ''+document.getElementById('qtdePernoite').value + ' pernoite(s) em '+ document.getElementById('cidade').value + '.'+texto;
	}

	var textoOriginal = document.getElementById('justificativa').value;

//	var posIni, posFim;
//	posIni = textoOriginal.indexOf('[');
//	posFim = textoOriginal.indexOf(']');
//	document.getElementById('justificativa').value = textoOriginal.substr(0,posIni)+texto+textoOriginal.substr(posFim+1,texto.length);
  if (texto != '') {
    document.getElementById('justificativa').value = texto;
  }
}

function calculaDias() {
 var Dias="";
 var objDate1 = stringToDate(document.getElementById('dataInicial').value,0);
 var objDate2 = stringToDate(document.getElementById('dataFinal').value,0);
 if (objDate1 != null && objDate2 != null) {
   Dias = getDays(objDate1,objDate2);
   document.getElementById('dias').value=Dias;
 }
}

function getDays(date1, date2) {
  if ((date1 == null) && (date2 == null))
    return 0;
  else if ((date1 != null) && (date2 == null))
    return 1;
  else if ((date1 == null) && (date2 != null))
    return 0;
  else {
    var msPerDay = 86400000;
    date1.setHours(00);
    date1.setMinutes(00);
    date1.setSeconds(00);
    date2.setHours(00);
    date2.setMinutes(00);
    date2.setSeconds(00);

    var days = (date2.getTime() - date1.getTime()) / msPerDay;
    return (Math.round(days) + 1);

  }
}

function isInt(str) {

  var ch=str.substring(0,1);
  if ((ch <= "0") || (ch > "9")) {
    return false;
  }
  for (var i = 1; i < str.length; i++) {
    ch = str.substring(i, i+1);
    if ((ch < "0") || (ch > "9")) {
      return false;
    }
  }
  return true;
}

function stringToDate(date_string, error_msg) {
  if (date_string == "") {
    return null;
  }
  var day     = null;
  var tmp_day = null;
  var month   = null;
  var tmp_month = null;
  var year    = null;
  var del1    = null;
  var del2    =  null;

  tmp_day       = date_string.substring(0,2);

  tmp_month = date_string.substring(3,5);

  year      = date_string.substring(6,10);

  del1      = date_string.substring(2,3);

  del2      = date_string.substring(5,6);

  if (((del1 >= "0") && (del1 <= "9")) || ((del1 >= "A") && (del1 <= "z")) ||
      ((del2 >= "0") && (del2 <= "9")) || ((del2 >= "A") && (del2 <= "z"))) {
	if (error_msg)
          alert("Informe a data neste formato: dd/MM/yyyy.");
	return null;
  }

 if ((tmp_month.length == 2) && (tmp_month.charAt(0) == "0")) {
    month = tmp_month.substring(1,2);
 } else {
    month = tmp_month;
 }

 if ((tmp_day.length == 2) && (tmp_day.charAt(0) == "0")) {
    day = tmp_day.substring(1,2);

 } else {
    day = tmp_day;
 }

 if ((!isInt(day)) ||
      (!isInt(month)) ||
      (!isInt(year))) {
	if (error_msg)
          alert("Informe a data neste formato: dd/MM/yyyy.");
	return null;
  }

  if ((month < 1) || (month > 12)) {
	if (error_msg)
	  alert("Informe uma data válida.");
	return null;
  }
  if (day < 1) {
	if (error_msg)
	  alert("Informe uma data válida.");
	return null;
  }

  if ((year < 1900) || (year > 2050)) {
	if (error_msg)
	  alert("Informe uma data válida.");
	return null;
  }
  if ((month == 1) || (month == 3) || (month == 5) ||
    (month == 7) || (month == 8) || (month == 10) ||
    (month == 12)) {
	if (day > 31) {
		if (error_msg)
		  alert("Informe uma data válida.");
		return null;
	}
  } else if (month == 2) {
	if ((year % 4) == 0) {
		if (day > 29) {
			if (error_msg)
			  alert("Informe uma data válida.");
			return null;
		}
	} else {
		if (day > 28) {
			if (error_msg)
			  alert("Informe uma data válida.");
			return null;
		}
	}

  } else {

	if (day > 30) {
		if (error_msg)
		  alert("Informe uma data válida.");
		return null;
	}
  }

  var objDate = new Date(year, month-1, day, 00, 00, 00);
  return objDate;

}

function abreCalendario(campo) {
  window.open('calendario.do?nomeCampo='+campo,'Calendario','status=no,width=300,height=210').focus();
}

function abrePopupAprovador() {
  centroCusto = document.getElementById('centroCusto').value;
  idEmpregado = document.getElementById('idEmpregado').value;
  url = 'aprovadorSobreposto.do?centroCusto='+centroCusto+'&idEmpregado='+idEmpregado+'&nomeAprovador='+document.getElementById('aprovadorSobreposto').value;
  if (centroCusto = "")
    alert("Por favor informe um centro de custo.");
  else
    window.open(url,'AprovadorSobreposto','status=no,width=750,height=400,scrollbars=1');
}

function barrastatus(msg) {
 window.status = msg;
 return true;
}


function limpabarrastatus() {
 window.status = "Smart Web - Gerenciamento de Energia Elétrica e Utilidades";
 return true;
}

//Referência: http://www.javascript-fx.com/
//Move a DIV Relogio.

function JSFX_FloatDiv(id, sx, sy)
{		
	var ns = (navigator.appName.indexOf("Netscape") != -1);
	var d = document;
	var px = document.layers ? "" : "px";	
	var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
	
	window[id + "_obj"] = el;
	if(d.layers)el.style=el;
	el.cx = el.sx = sx;
	el.cy = el.sy = sy;
	el.sP=function(x,y){this.style.left=x+px;this.style.top=y+px;};
	el.init=false;
	el.flt=function()
	{
		var pX, pY;
		pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 
		document.documentElement && document.documentElement.clientWidth ? 
		document.documentElement.clientWidth : document.body.clientWidth;
		pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
		document.documentElement.scrollTop : document.body.scrollTop;
		if(this.sy<0) 
		pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? 
		document.documentElement.clientHeight : document.body.clientHeight;
		this.cx += (pX + this.sx - this.cx)/8;this.cy += (pY + this.sy - this.cy)/8;
		if(!this.init)
		{
			this.init=true;
			this.cx = pX+this.sx;
			this.cy = pY+this.sy;
		}
		this.sP(this.cx, this.cy);
		setTimeout(this.id + "_obj.flt()", 20);
	}
	return el;
}

//Referência: http://www.pregao.to.gov.br/
//Refresh no conteúdo do campo INPUT TEXT dentro da DIV Relogio.
function clock() 
{ 		
	timeStr = document.getElementById("inputRelogio").value;
	
	hours = parseInt(timeStr.substring(0,2),10);
    minutes = parseInt(timeStr.substring(3,5),10);
    seconds = parseInt(timeStr.substring(6,8),10) + 1;

	if (seconds == 60) {
        seconds = 0;
        minutes = minutes + 1;
	}

	if (minutes == 60) {
        minutes = 0;
        hours = hours + 1;
		if (hours == 24) {
			hours = 0;
		}
	}
   
    timeStr = ((hours < 10) ? "0" : "") + hours;
    timeStr += ((minutes < 10) ? ":0" : ":") + minutes;
    timeStr += ((seconds < 10) ? ":0" : ":") + seconds;
     
	document.getElementById("inputRelogio").value = timeStr;
	 
	setTimeout("clock()",999);
 }

function barrastatus(msg) {
 window.status = msg;
 return true;
}


function limpabarrastatus() {
 window.status = "Smart Web - Gerenciamento de Energia Elétrica e Utilidades";
 return true;
}

