var DataAccessInterface=Class.create({
init:function(controler)
{
this.controler=controler;
this.callQueue=new Array();
this.onQueue=false;
},
timeoutDelay:45,
callQueue:null,
onQueue:null,
nTimeout:null,
getData:function(action,params,method)
{
with(this)
{
method=method==null?'get':method;
if(DataAccessInterface.documentReady)
{
controler.innerLoading
?(this.loadingElement=$('<div class="innerLoading"></div>').appendTo(controler.element.lista).show())|console.log(this.loadingElement,controler.element)
:LoadingIndicator.show();
startTimeout();
if(method=="post")
{
params.url=DataAccessInterface.sources[controler.type][action];
$.ajax(
{
type:method,
url:DataAccessInterface.sources[controler.type].bridgeUrl,
data:params,
dataType:'json',
cache:false,
success:createDelegate(this,this.onAjaxSuccess),
error:createDelegate(this,this.onAjaxError)
});
}
else{
$.ajax(
{
type:method,
url:DataAccessInterface.sources[controler.type][action],
data:params,
dataType:'jsonp',
cache:false,
success:createDelegate(this,this.onAjaxSuccess),
error:createDelegate(this,this.onAjaxError)
});
}
console.log("executando: "+controler.type);
}
else
{
enqueue(action,params);
}
}
},
enqueue:function(action,params)
{
with(this)
{
console.log("enfileirando: "+controler.type);
callQueue.push({action:action,params:params});
if(!onQueue)
{
$(createDelegate(this,this.onDocReady));
onQueue=true;
}
}
},
onDocReady:function()
{
with(this)
{
DataAccessInterface.documentReady=true;
console.log("Documento carregado: "+controler.type);
for(var k=0;k<callQueue.length;k++)
{
getData(callQueue[k].action,callQueue[k].params);
}
callQueue=new Array();
}
},
onAjaxSuccess:function(response)
{
this.controler.innerLoading
?this.loadingElement.hide()
:LoadingIndicator.hide();
this.stopTimeout();
if(response.Status==0)
{
console.log("DAI: SUCESSO ");
var data=response.Data;
if(data.constructor==Array)
data={data:data}
$(this).trigger('data',data);
}
else
{
Message.show(response.Message);
}
return response;
},
onAjaxError:function(e)
{
LoadingIndicator.hide();
this.stopTimeout();
console.log("DAI: ERROR ");
$(this).trigger('error',e);
Message.show(e);
},
stopTimeout:function()
{
clearTimeout(this.nTimeout);
},
startTimeout:function()
{
this.stopTimeout();
this.nTimeout=setTimeout(createDelegate(this,this.timeoutError),this.timeoutDelay*1000);
},
timeoutError:function()
{
this.onAjaxError("Ocorreu um erro processando sua solicitação. Tente novamente mais tarde.");
}
});
DataAccessInterface.documentReady=false;
DataAccessInterface.sources=
{
Comentarios:{
get:DATA_URL+'/servico/Comentario/json/listComentarios.aspx',
send:DATA_URL+'/servico/Comentario/json/sendComentario.aspx',
del:DATA_URL+'/servico/comentario/json/deleteComentario.aspx'
},
Pessoas:{get:DATA_URL+'/servico/Pessoa/json/ListaDestaqueHome.aspx'},
Amigos:{get:DATA_URL+'/servico/Amigo/json/manageAmigo.aspx'},
Amigo:{RefuseAdd:DATA_URL+'/servico/amigo/json/manageAmigo.aspx'},
Institucional:{get:DATA_URL+'/servico/Institucional/json/GetInstitucional.aspx'},
Banners:{get:DATA_URL+'/servico/Banner/json/getBannersZone.aspx'},
Plano:{get:DATA_URL+'/servico/Plano/json/GetPlano.aspx'},
Banner:{click:WALK_URL+'/servico/clickConteudo.aspx'},
AjaxForm:
{
faleConosco:DATA_URL+'/servico/faleConosco/sendContato.aspx'
},
Cadastro:{
get:DATA_URL+'/servico/config/json/getestados.aspx'
},
Perfil:{
get:DATA_URL+'/servico/perfil/json/getPerfil.aspx',
changePhoto:DATA_URL+'/servico/perfil/json/changePhoto.aspx',
send:DATA_URL+'/servico/perfil/json/setPerfilInformacao.aspx',
bridgeUrl:BRIDGE_POST_URL,
Add:DATA_URL+'/servico/Amigo/json/manageAmigo.aspx',
RefuseAdd:DATA_URL+'/servico/Amigo/json/manageAmigo.aspx',
state:DATA_URL+'/servico/config/json/getestados.aspx'
},
SolicitacoesAmizade:{get:DATA_URL+'/servico/amigo/json/manageAmigo.aspx'},
SolicitacaoAmizade:{get:DATA_URL+'/servico/amigo/json/manageAmigo.aspx'},
Mensagens:{
get:DATA_URL+'/servico/mensagem/json/manageMensagem.aspx',
Add:DATA_URL+'/servico/mensagem/json/manageMensagem.aspx'
},
MicroBlogs:{
get:DATA_URL+'/servico/microblog/json/listMicroBlogs.aspx',
send:DATA_URL+'/servico/microblog/json/setMicroBlog.aspx',
del:DATA_URL+'/servico/micro	blog/json/deleteMicroBlog.aspx'
},
MicroBlog:{get:DATA_URL+'/servico/microblog/json/getMicroBlog.aspx'},
AlbumFotos:
{
get:DATA_URL+'/servico/foto/json/manageFoto.aspx'
},
AlbumFoto:
{
get:DATA_URL+'/servico/foto/json/manageFoto.aspx'
},
Albuns:
{
get:DATA_URL+'/servico/foto/json/manageFoto.aspx',
del:DATA_URL+'/servico/foto/json/manageFoto.aspx'
},
Album:
{
get:DATA_URL+'/servico/foto/json/manageFoto.aspx'
},
AlbumEditar:{
get:DATA_URL+'/servico/foto/json/manageFoto.aspx',
post:DATA_URL+'/servico/foto/json/saveAlbum.aspx',
bridgeUrl:BRIDGE_POST_URL
},
Foto:
{
get:DATA_URL+'/servico/foto/json/manageFoto.aspx'
},
PlanoHistoricos:{
get:DATA_URL+'/servico/plano/json/listHistoricoPlanos.aspx'
},
Downloads:{
get:DATA_URL+'/servico/download/json/listDownloads.aspx'
},
Download:{
click:WALK_URL+'/servico/clickConteudo.aspx',
get:DATA_URL+'/servico/download/json/getDownload.aspx'
},
Rankings:{get:DATA_URL+'/servico/download/json/getRanking.aspx'},
Beta:{get:WEB_URL+'/servico/setBeta.aspx'},
PerguntasFrequentes:{
get:DATA_URL+'/servico/perguntafrequente/json/listPerguntasFrequentes.aspx'
},
Videos:{
get:DATA_URL+'/servico/Videos/json/listVideos.aspx',
Delete:DATA_URL+'/servico/Videos/json/deleteVideo.aspx'
},
Video:{get:DATA_URL+'/servico/Videos/json/getVideo.aspx'},
ComunidadeVideo:{get:DATA_URL+'/servico/comunidade/json/manageComunidadeVideo.aspx'},
ComunidadeVideos:{get:DATA_URL+'/servico/comunidade/json/manageComunidadeVideo.aspx'},
Comunidades:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx'
},
Membros:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx'
},
Membro:
{
Add:DATA_URL+'/servico/mensagem/json/manageMensagem.aspx',
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx'
},
Comunidade:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx'
},
ComunidadeEditar:{
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx',
post:DATA_URL+'/servico/comunidade/json/saveComunidade.aspx',
bridgeUrl:BRIDGE_POST_URL
},
ComunidadeTopicos:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidadeTopico.aspx'
},
ComunidadeTopico:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidadeTopico.aspx'
},
ComunidadeFotos:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidadeFoto.aspx'
},
ComunidadeFoto:{get:DATA_URL+'/servico/comunidade/json/manageComunidadeFoto.aspx'},
Moderador:{
get:DATA_URL+'/servico/moderacao/json/moderaConteudo.aspx'
},
ComunidadeSolicitacoesIngresso:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx'
},
ComunidadesRelacionadas:
{
get:DATA_URL+'/servico/comunidade/json/manageComunidade.aspx'
},
ResultadoDiaDoFlamenguista:{get:DATA_URL+'/servico/DiaDoFlamenguista/json/getResultado.aspx'},
Atividades:{get:DATA_URL+"/servico/atividade/json/manageAtividade.aspx"}
};
DataAccessInterface.getRequestParams=function(
orderColumn,
orderDirection,
pageIndex,
pageSize,
tags,
qtdTotal,
IdConteudo,
vocabulario
)
{
var data={
o:orderColumn,
d:orderDirection,
p:pageIndex,
s:pageSize,
t:tags,
pl:PessoaLogada==null?0:PessoaLogada.Id,
pp:IdPessoaPagina==null?0:IdPessoaPagina,
q:qtdTotal,
c:IdConteudo==null?0:parseInt(IdConteudo),
v:vocabulario==null?'':vocabulario
};
return data;
}
var LoadingIndicator=
{
ctShow:0,
el:null,
init:function()
{
if(this.el==null)
this.el=$('#loadIndicator');
},
show:function()
{
with(this)
{
init();
ctShow++;
el.show();
}
},
hide:function()
{
with(this)
{
ctShow--;
if(ctShow<=0)el.hide();
}
}
};
