// JavaScript Document
/******* Actualizar Carrinho Serviços *******/
<!--

//var divid = 'output';
//var loadingmessage = '<br />A actualizar...';

function AJAX()
{
	var xmlHttp;
	try
  {
	  xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
	  return xmlHttp;
	}
	catch (e)
  {
	  try
    {
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
    	return xmlHttp;
	  }
  	catch (e)
    {
  	  try
      {
  	    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        return xmlHttp;
  	  }
    	catch (e)
      {
    	  alert("Your browser does not support AJAX!");
    	  return false;
    	}
  	}
	}
}

function formget(form, url, doisFormulariosServicos, numFormacoesCarrinho) 
{
  f = document.getElementById(form)
  var poststr = getFormValues(f);
  postData(url, poststr, doisFormulariosServicos, numFormacoesCarrinho);
}

function postData(url, parameters, doisFormulariosServicos, numFormacoesCarrinho)
{
  var xmlHttp = AJAX();
  
  xmlHttp.onreadystatechange =  function()
  {
    if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4)
    {
  	 //document.getElementById('carrinhoServicosDiv').innerHTML=loadingmessage;  
    }
    if (xmlHttp.readyState == 4) 
    {
      if (xmlHttp.status == 200) 
      {
   		  document.getElementById('carrinhoServicosDiv').innerHTML=xmlHttp.responseText;
   		  //Colocado aqui devido a serem duas funções assíncronas. A GetCarrinhoQuantidades() deve começar depois de se confirmar o sucesso da função formget(form, url)
        
        if(xmlHttp.responseText == '')
        {
          location.reload(true);
          return;
        }
        
        if(doisFormulariosServicos == 2)
        {
          //alert(doisFormulariosServicos);
          actualizaPagina(numFormacoesCarrinho);
          GetCarrinhoSubtotais();
        }
        else
        {
          doisFormulariosFormacoes = 5;
          actualizaPagina(numFormacoesCarrinho);
          GetCarrinhoSubtotaisDoisFormularios(doisFormulariosFormacoes, doisFormulariosServicos);
        }
        GetCarrinhoQuantidades();
      }
      else
      {
        alert('XmlHttpRequest error!');
      }
      checkBoxProvicos(getCookie("cookieTecadProvicos"));
    } 
  }
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(parameters);
}

function getFormValues(fobj)
{
  var str = "";
  var valueArr = null;
  var val = "";
  var cmd = "";
  
  for(var i = 0;i < fobj.elements.length;i++)
  {
    switch(fobj.elements[i].type)
    {
      case "text":
          str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
          break;

      case "select-one":
          str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
          break;
              
      case "hidden":
          str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
          break;
              
      case "checkbox":
          if(fobj.elements[i].checked == true)
          {
            str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&";
          }
          break;
    }
  }
  str = str.substr(0,(str.length - 1));
  return str;
}
//-->

/******* Actualizar Carrinho Formações *******/
<!--

//var divid = 'output';
//var loadingmessage = '<br />A actualizar...';

function formgetFormacoes(form, url, doisFormulariosFormacoes, numFormacoesCarrinho) 
{
  f = document.getElementById(form)
  var poststr = getFormValuesFormacoes(f);
  postDataFormacoes(url, poststr, doisFormulariosFormacoes, numFormacoesCarrinho);
}

function postDataFormacoes(url, parameters, doisFormulariosFormacoes, numFormacoesCarrinho)
{
  var xmlHttpFormacoes = AJAX();
  
  xmlHttpFormacoes.onreadystatechange =  function()
  {
    if(xmlHttpFormacoes.readyState > 0 && xmlHttpFormacoes.readyState < 4)
    {
  	 //document.getElementById('carrinhoServicosDiv').innerHTML=loadingmessage;  
    }
    if (xmlHttpFormacoes.readyState == 4) 
    {
      if (xmlHttpFormacoes.status == 200) 
      {
   		  document.getElementById('carrinhoFormacaoDiv').innerHTML=xmlHttpFormacoes.responseText;
   		  //setTimeout('GetCarrinhoQuantidades()',1000);
   		  //Colocado aqui devido a serem duas funções assíncronas. A GetCarrinhoQuantidades() deve começar depois de se confirmar o sucesso da função formgetFormacoes(form, url)
   		  
   		  if(xmlHttpFormacoes.responseText == '')
        {
          location.reload(true);
          return;
        }
        
        if(doisFormulariosFormacoes == 2)
        {
          actualizaPagina(numFormacoesCarrinho);
   		    GetCarrinhoSubtotais();
   		  }
   		  else
   		  {
   		    doisFormulariosServicos = 5;
   		    actualizaPagina(numFormacoesCarrinho);
   		    GetCarrinhoSubtotaisDoisFormularios(doisFormulariosFormacoes, doisFormulariosServicos);
   		  }
   		  GetCarrinhoQuantidades();
      }
      else
      {
        alert('XmlHttpRequest error!');
      }
      checkBoxFormacao(getCookie("cookieTecadFormacao"));
    }
  }
    xmlHttpFormacoes.open("POST", url, true);
    xmlHttpFormacoes.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttpFormacoes.setRequestHeader("Content-length", parameters.length);
    xmlHttpFormacoes.setRequestHeader("Connection", "close");
    xmlHttpFormacoes.send(parameters);
}

function getFormValuesFormacoes(fobj)
{
  var str = "";
  var valueArr = null;
  var val = "";
  var cmd = "";
  
  for(var i = 0;i < fobj.elements.length;i++)
  {
    switch(fobj.elements[i].type)
    {
      case "text":
          str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
          break;

      case "select-one":
          str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
          break;
              
      case "hidden":
          str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
          break;
              
      case "checkbox":
          if(fobj.elements[i].checked == true)
          {
            str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&";
          }
          break;
    }
  }
  str = str.substr(0,(str.length - 1));
  return str;
}
//-->
/************* Carrinhos Quantidades *************/  
function GetCarrinhoQuantidades()
{
  xmlhttpQuantidades=GetXmlHttpObject();
  if (xmlhttpQuantidades==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url="getcarrinhoquantidades.php";
  url=url+"?sid="+Math.random();
  xmlhttpQuantidades.onreadystatechange=stateChanged;
  xmlhttpQuantidades.open("GET",url,true);
  xmlhttpQuantidades.send(null);
}
  
function stateChanged()
{
  if (xmlhttpQuantidades.readyState==4)
  {
    //alert(xmlhttpQuantidades.responseText);
    document.getElementById("carrinhoQuantidadesDiv").innerHTML=xmlhttpQuantidades.responseText;
  }
}
  
function GetXmlHttpObject()
{
  if (window.XMLHttpRequest)
    {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
    }
  if (window.ActiveXObject)
    {
      // code for IE6, IE5
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
  return null;
}

/******** Function to update Formações cart after chosing paypal as payment method**********/
function PaypalFormacao(fromNum, numFormacoesCarrinho)
{
  if(document.getElementById('paypalFormacoes').checked == true)
  {
    document.getElementById('carrinhoActionFormacao').value='paypalDesconto';
    document.getElementById('carrinhoCodigoPromocaoFormacao').value = document.getElementById('promocaoCodigo').value;
    formgetFormacoes('carrinhoFormFormacao', 'doFormacoes.php', fromNum, numFormacoesCarrinho);
  }
  else if(document.getElementById('paypalFormacoes').checked == false)
  {
    document.getElementById('carrinhoActionFormacao').value='paypalDescontoNull';
    document.getElementById('carrinhoCodigoPromocaoFormacao').value = document.getElementById('promocaoCodigo').value;
    formgetFormacoes('carrinhoFormFormacao', 'doFormacoes.php', fromNum, numFormacoesCarrinho);
  }
}
function PaypalFormacaoOthers(fromNum, selected, numFormacoesCarrinho)
{
  if(document.getElementById('paypalFormacoes').checked == true)
  {
    document.getElementById('carrinhoActionFormacao').value='paypalDesconto';
    document.getElementById('carrinhoActionFormacaoSelected').value=selected;
    document.getElementById('carrinhoCodigoPromocaoFormacao').value = document.getElementById('promocaoCodigo').value;
    formgetFormacoes('carrinhoFormFormacao', 'doFormacoes.php', fromNum, numFormacoesCarrinho);
  }
  else if(document.getElementById('paypalFormacoes').checked == false)
  {
    document.getElementById('carrinhoActionFormacao').value='paypalDescontoNull';
    document.getElementById('carrinhoActionFormacaoSelected').value=selected;
    document.getElementById('carrinhoCodigoPromocaoFormacao').value = document.getElementById('promocaoCodigo').value;
    formgetFormacoes('carrinhoFormFormacao', 'doFormacoes.php', fromNum, numFormacoesCarrinho);
  }
}

/************* Carrinhos Quantidades *************/  
function GetCarrinhoSubtotaisDoisFormularios(doisFormulariosFormacoes, doisFormulariosServicos)
{
  xmlhttpSubtotaisDoisFormularios=GetXmlHttpObject();
  if (xmlhttpSubtotaisDoisFormularios==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  
  if(doisFormulariosServicos == 1)
  {
    var montanteServicos=document.getElementById('montanteServicos') != null ?document.getElementById('montanteServicos').value:0;
    var descontosTotalServicos=document.getElementById('descontosTotalServicos') != null ?document.getElementById('descontosTotalServicos').value:0;
    var ivaServicos=document.getElementById('ivaServicos')!=null?document.getElementById('ivaServicos').value:0;
    var subtotalServicos=document.getElementById('subtotalServicos')!=null?document.getElementById('subtotalServicos').value:0;
    var portesContinenteServicos=document.getElementById('portesContinenteServicos')!=null?document.getElementById('portesContinenteServicos').value:0;
  }
  if(doisFormulariosFormacoes == 1)
  {
    var montanteFormacoes=document.getElementById('montanteFormacoes')!=null?document.getElementById('montanteFormacoes').value:0;
    var descontosTotalFormacoes=document.getElementById('descontosTotalFormacoes')!=null?document.getElementById('descontosTotalFormacoes').value:0;
    var ivaFormacoes=document.getElementById('ivaFormacoes')!=null?document.getElementById('ivaFormacoes').value:0;
    var subtotalFormacoes=document.getElementById('subtotalFormacoes')!=null?document.getElementById('subtotalFormacoes').value:0; 
  }
  
  var url="getcarrinhosubtotais.php";
  url = url+"?montanteServicos="+montanteServicos+"&descontosTotalServicos="+descontosTotalServicos+"&ivaServicos="+ivaServicos+"&subtotalServicos="+subtotalServicos+"&portesContinenteServicos="+portesContinenteServicos+"&montanteFormacoes="+montanteFormacoes+"&descontosTotalFormacoes="+descontosTotalFormacoes+"&ivaFormacoes="+ivaFormacoes+"&subtotalFormacoes="+subtotalFormacoes;
  //alert(url);
  url=url+"&sid="+Math.random();
  xmlhttpSubtotaisDoisFormularios.onreadystatechange=stateChangedSubtotaisDoisFormularios;
  xmlhttpSubtotaisDoisFormularios.open("GET",url,true);
  xmlhttpSubtotaisDoisFormularios.send(null);
}
  
function stateChangedSubtotaisDoisFormularios()
{
  if (xmlhttpSubtotaisDoisFormularios.readyState==4)
  {
    document.getElementById("carrinhoTotalContasFimDiv").innerHTML=xmlhttpSubtotaisDoisFormularios.responseText;
  }
}
/************* Carrinhos Quantidades Dois Formularios*************/  
function GetCarrinhoSubtotais()
{
  xmlhttpSubtotais=GetXmlHttpObject();
  if (xmlhttpSubtotais==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  
  var montanteServicos=document.getElementById('montanteServicos')!=null?document.getElementById('montanteServicos').value:0;
  var descontosTotalServicos=document.getElementById('descontosTotalServicos')!=null?document.getElementById('descontosTotalServicos').value:0;
  var ivaServicos=document.getElementById('ivaServicos')!=null?document.getElementById('ivaServicos').value:0;
  var subtotalServicos=document.getElementById('subtotalServicos')!=null?document.getElementById('subtotalServicos').value:0;
  var portesContinenteServicos=document.getElementById('portesContinenteServicos')!=null?document.getElementById('portesContinenteServicos').value:0;                                                         
  var montanteFormacoes=document.getElementById('montanteFormacoes')!=null?document.getElementById('montanteFormacoes').value:0;
  var descontosTotalFormacoes=document.getElementById('descontosTotalFormacoes')!=null?document.getElementById('descontosTotalFormacoes').value:0;
  var ivaFormacoes=document.getElementById('ivaFormacoes')!=null?document.getElementById('ivaFormacoes').value:0;
  var subtotalFormacoes=document.getElementById('subtotalFormacoes')!=null?document.getElementById('subtotalFormacoes').value:0; 
  
  var url="getcarrinhosubtotais.php";
  url = url+"?montanteServicos="+montanteServicos+"&descontosTotalServicos="+descontosTotalServicos+"&ivaServicos="+ivaServicos+"&subtotalServicos="+subtotalServicos+"&portesContinenteServicos="+portesContinenteServicos+"&montanteFormacoes="+montanteFormacoes+"&descontosTotalFormacoes="+descontosTotalFormacoes+"&ivaFormacoes="+ivaFormacoes+"&subtotalFormacoes="+subtotalFormacoes;
  //alert(url);
  url=url+"&sid="+Math.random();
  xmlhttpSubtotais.onreadystatechange=stateChangedSubtotais;
  xmlhttpSubtotais.open("GET",url,true);
  xmlhttpSubtotais.send(null);
}
  
function stateChangedSubtotais()
{
  if (xmlhttpSubtotais.readyState==4)
  {
    document.getElementById("carrinhoTotalContasFimDiv").innerHTML=xmlhttpSubtotais.responseText;
  }
}


/************* Actualiza a página caso seja adicionado alguma formação *************/  

function actualizaPagina(formacoesNum)
{
  xmlhttpActualizarPagina=GetXmlHttpObject();
  if (xmlhttpActualizarPagina==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  
  var url="getActualizarPagina.php";
  url = url+"?formacaoNum="+formacoesNum;
  //alert(url);
  url=url+"&sid="+Math.random();
  xmlhttpActualizarPagina.onreadystatechange=stateChangedActualizarPagina;
  xmlhttpActualizarPagina.open("GET",url,true);
  xmlhttpActualizarPagina.send(null);
}

  
function stateChangedActualizarPagina()
{
  if (xmlhttpActualizarPagina.readyState==4)
  {
    if(xmlhttpActualizarPagina.responseText == 'reload')
    {
      location.reload(true);
      return;
    }
    //document.getElementById("carrinhoTotalContasFimDiv").innerHTML=xmlhttpActualizarPagina.responseText;
  }
}
/************  ************/
function checkBoxProvicos(checkBoxProvicosVar)
{
  switch(checkBoxProvicosVar)
  {
    case "multibancoServicos":
      cleanMetodoPagamentoServicos('multibancoServicos', 'paypalServicos', 'tranferenciaServicos', 'cobrancaServicos');
      break;
    case "tranferenciaServicos":
      cleanMetodoPagamentoServicos('tranferenciaServicos', 'multibancoServicos', 'paypalServicos', 'cobrancaServicos');
      break;
    case "cobrancaServicos":
      cleanMetodoPagamentoServicos('cobrancaServicos', 'multibancoServicos', 'tranferenciaServicos', 'paypalServicos');
      break;
    case "paypalServicos":
      cleanMetodoPagamentoServicos('paypalServicos', 'multibancoServicos', 'tranferenciaServicos', 'cobrancaServicos');
      break;
    default:
      cleanMetodoPagamentoServicos('multibancoServicos', 'paypalServicos', 'tranferenciaServicos', 'cobrancaServicos');
  }
}
function checkBoxFormacao(checkBoxFormacoesVar)
{
  switch(checkBoxFormacoesVar)
  {
    case "multibancoFormacao":
      cleanMetodoPagamentoFormacao('multibancoFormacao', 'dataFormacao','paypalFormacoes');
      break;
    case "dataFormacao":
      cleanMetodoPagamentoFormacao('dataFormacao', 'paypalFormacoes','multibancoFormacao');
      break;
    case "paypalFormacoes":
      cleanMetodoPagamentoFormacao('paypalFormacoes', 'dataFormacao','multibancoFormacao');
      break;
    default:
      cleanMetodoPagamentoFormacao('multibancoFormacao', 'dataFormacao','paypalFormacoes');
  }
}

