Event.observe(window, 'load', peaInicializacao, false);

var numeroId = 0;

function peaInicializacao()
{
	numeroId++;
	Element.hide('acadwebLoader');
}

var quadrado = Class.create();

quadrado.prototype = {
	
	initialize: function(id) {
		
	    this.width = this.options.width;
	    this.height = this.options.height;
		
		Window.register(this);
	
	}
	
}

function peaNovoNumeroId()
{
	return numeroId++;
}

function callInProgress (xmlhttp) {
	
	switch (xmlhttp.readyState) {
		case 1: 
		case 2: 
		case 3: return true;
				break;
				
		default: return false;
				 break;
	}
	
}

var peaGlobais = {

	onCreate: function(request) { 
		
		Effect.Appear('acadwebLoader',{duration: 0.15, queue: 'end'});		
		
		request['timeoutId'] = window.setTimeout(
		
			function() {
				
				if (callInProgress(request.transport)) {
					
					request.transport.abort();
					
					if (request.options['onFailure']) {
						request.options['onFailure'](request.transport, request.json);
					}
					
				}
				
			},
			
			60000
		);		
		 
	},

	onComplete: function() {
		
		
		if(Ajax.activeRequestCount == 0){
			Effect.Fade('acadwebLoader',{duration: 0.15, queue: 'end'});
		}
		
 		window.clearTimeout(request['timeoutId']);
 		
	}
	
};

Ajax.Responders.register(peaGlobais);

peaRequisicao = function(resp,url,div,form)
{

	funcRetorno = function(req) { 
		
		if (resp == 'input') {
			$(div).value = req.responseText;	
		}
		
		if (resp == 'div') {
			var conteudo = $(div);
			conteudo.update(req.responseText);
		}
		
		if (resp == 'null') {

		}
		
	};
	
	funcRetornoErro = function(req) {
		
		if (resp == 'input') {
			$(div).value = req.responseText;	
		}
		
		if (resp == 'div') {
			var conteudo = $(div);
			conteudo.update(req.responseText);
		}
		
		if (resp == 'header') {

		}		
		
	}
	
	if (form != false) {
		
		var args = Form.serialize(form);
	
		var opcoes = {
						method: 'post' ,
						parameters: args,
						onSuccess: funcRetorno,
						onFailure: funcRetornoErro,
					    onError: peaErro,
					    onTimeOut: peaErroTimeOut,
					    on404: peaErro404
					 };	

	} else {
		
		var opcoes = {
						onSuccess: funcRetorno,
						onFailure: peaErroFalha,
					    onError: peaErro,
					    onTimeOut: peaErroTimeOut,
					    on404: peaErro404
					 };	
	}
	
	var myAjax = new Ajax.Request(url,opcoes);

}

function serializacaoLista(id)
{
    element = 'questoesavaliacao';
    var options = Object.extend(Sortable.options(element), arguments[1] || {});
	$('fQuestoes').value = Sortable.sequence(element, arguments[1]).map(function(item) {return encodeURIComponent(item);}).join('x');

}

function avTrocaVisualizacaoBoxAvancada()
{
	if ($('rbAvanc').checked) {
		Element.show('boxSelecaoAvancada');
	} else {
		Element.hide('boxSelecaoAvancada');		
	}
	
}

function peaErro(arg)
{
	alert('Houve um erro na comunicação com o servidor.\nAguarde alguns instantes e tente novamente (EError)');	
	Effect.Fade('pea_loader',{duration: 0.15, queue: 'end'});	
	die();	
}

function peaErroFalha(arg)
{
	alert('Houve uma falha na comunicação com o servidor.\nAguarde alguns instantes e tente novamente (EFailure) '+arg.status);	
	Effect.Fade('pea_loader',{duration: 0.15, queue: 'end'});	
	die();	
}

function peaErro404(arg)
{
	alert('A acao requisitada nao existe. Contate o suporte. (E404)');
	Effect.Fade('pea_loader',{duration: 0.15, queue: 'end'});	
	die();
}

function peaErroTimeOut(arg)
{
	alert('O servidor está demorando muito para responder à requisição.\nAguarde alguns instantes e tente novamente (ETimeOut)');	
	Effect.Fade('pea_loader',{duration: 0.15, queue: 'end'});	
	die();	
}