/*
	*************************************** Ajax.js V0.002 **************************************
	Autor: Chrysthian Akihiro
	Última Alteração em: 14:52 25/6/2008
	*********************************************************************************************
*/

var fila=[]; // fila de conexões
var idx = 0; // indice atual da fila

/*
 * Inicia o processo de Resposta do servidor incluindo a requisição numa fila
 *  From: http://elcio.com.br/ajax/2/?i=5 (alterada)
 */

function handleResponseText( id, url, parameters, target ){
	fila[fila.length]=[id, url, parameters, target];
    if((idx+1)==fila.length)run();
}

/*
 *	Executa os ítens pendentes da fila de requisições
 */
function run(){
	var url = fila[idx][1] + fila[idx][2];
	var notice = null;

	var myAjax =  new Ajax.Request( url, {
		method: 'post',
		onSuccess: function(transport) {

      //alert(transport.responseText);
			switch( fila[idx][3] ){

				case "div":
						notice = $(fila[idx][0]);
						notice.update(transport.responseText);

            //alert(context);

            //se for login recarrega a página para trazer o menu
            if(context == "1")
              window.location.reload(true);

						break;
				case "hint":

						if (transport.responseText != "0"){
							Element.setOpacity( fila[idx][0], 1 );
							$(fila[idx][0]).innerHTML = transport.responseText;
						}
						break;
				case "response":
						setFields( transport.responseText );
						break;
        case "alert":
            alert( transport.responseText );
            break;
				case "subscription_cnpj":

            resposta = transport.responseText;
            resposta = resposta.split("|");

						$("codInscricaoPJ").value = resposta[0];
            $("anoInscricaoPJ").value = resposta[1];

						confirmarInscricao(fila[idx][0]);
						break;
				case "subscription_cpf":
						break;
     
        case "subscription_update":
            alert(transport.responseText);
            window.location.reload();
            EscondeMensagemAguarde();
          break;
            
        case "event_complement":
            alert(transport.responseText);
            EscondeMensagemAguarde();
          break;
        case "checkServer":
/*
              alert("Total em banco:" + transport.responseText);
              alert("Total de incrições preenchidas:" + fila[idx][0]);
              alert("é Igual? "+ fila[idx][0] == transport.responseText);
*/

              if(fila[idx][0] == transport.responseText){
                processSubscriptionLogics();
              }else{
                setTimeout("checkServer();",2500);
              }

            break;
				case "billet":
            resposta = transport.responseText;
            resposta = resposta.split("|");

						if(fila[idx][0])
              window.location.href = serverPath + "modules/external/comprovanteInscricao.php?codEvento=" + $("codEvento").value +"&codInscricao="+ resposta[0] + "&anoInscricao="+ resposta[1];
						else
//							window.open( serverPath + "modules/external/boleto.php?codEvento=" + $("codEvento").value +"&codInscricao="+ transport.responseText);
//							window.location.href = serverPath + "modules/external/boleto.php?codEvento=" + $("codEvento").value +"&codInscricao="+ resposta[0] + "&anoInscricao="+ resposta[1];
              window.location.href = serverPath + "modules/external/formaPagamento.php?codEvento=" + $("codEvento").value +"&codInscricao="+ resposta[0] + "&anoInscricao="+ resposta[1];

						clearAll();
						break;
				default:
						alert("parâmetro desconhecido: " + fila[idx][3] );
			}

		},
		onFailure:function(transport) {
			EscondeMensagemAguarde();
			alert(" Status: " + transport.status +" - " + transport.statusText + " URL: " + url);
		},
		onComplete:function(){
			idx++;
			EscondeMensagemAguarde();
			if( idx<fila.length )setTimeout("run()",100);
		}
	});

}