/*
------------------------envio:
idCategoriadoMapa:'categoria do mapa',
idItemdoMapa:'item do mapa',
idCategoriaBusca:'categoria da busca',
qtItemMostra:3
lat1:
lon1:
lat2:
lon2:

------------------------reposta:
imagem
título
n.chubabas
descricao
lista ranking
[texto,link]

Praia do Forte
155 Chubabas

- 1º lugar no Ranking de são paulo
- 10º lugar no Ranking Geral
- 15º lugar no Ranking Feminino

*/

var GetMarkers = {
	_loaderImg:'/img/ico_loading.gif',
	mapObj:null,
	_label:null,
	_parameters:null,
	_allMarkers:[],
	_onInit:null,
	_onSuccess:null,
	_onError:null,
	_dynPar:null,
	init:function($obj){
		if($obj){
			this._loaderImg = $obj._loaderImg || this._loaderImg;
			this.mapObj = $obj.mapObj || this.mapObj;
			this._label = $obj.label || 'defLabel';
			this._url = $obj.url || null;
			this._parameters = $obj.par || {};
			this._dynPar = typeof($obj.dynamicPar) == 'function' ? $obj.dynamicPar : null;
			this._onSuccess = $obj.onSuccess || null;
			this._onError = $obj.onError || null;
			this._url = $obj.url || null;
		}
		if(!$(this._label)){
			createElm(null,[
				'div',{id:this._label,style:'position:absolute;top:-100px;left:-100px;visibility:hidden;'},''
			]);
			this._label = $(this._label);
		}
		pImg(this._loaderImg);
	},
	call:function($obj){
		if($obj){
			this._url = $obj.url || this._url;
			if(typeof($obj.par) == 'object'){
				for(var i in $obj.par){
					this._parameters[i] = $obj.par[i];
				}
			}
		}
		if(this._dynPar){
			for(var i in this._dynPar()){
				this._parameters[i] = this._dynPar()[i];
			}
		}
		var _this = this;
		this.removeCreatedMarkers();
		ajaxRun({
			url: _this._url,
			parameters: _this._parameters,
			encrypt:false,
			onInit:function(e){
				if(!$('icoMapLoader')){
					if(typeof(_this._onInit) == 'function'){
						_this._onInit();
					}else{
						createElm(null,[
							'div',{id:'icoMapLoader', style:'position:absolute;top:'+findPos(_this.mapObj.getMapDomElm())[1]+'px;left:'+findPos(_this.mapObj.getMapDomElm())[0]+'px;background:#fff;width:'+_this.mapObj.getMapDomElm().offsetWidth+'px;height:'+_this.mapObj.getMapDomElm().offsetHeight+'px;text-align:center;'},[
								'img',{src:_this._loaderImg,style:'margin-top:'+(_this.mapObj.getMapDomElm().offsetHeight/2)+'px;'}
							]
						]);
					}
				}
			},
			onFinish:function(r,e){
				
				if($('icoMapLoader'))delElm($('icoMapLoader'));

				if(r[0]){
					if(typeof(_this._onSuccess) == 'function'){
						_this._onSuccess(_this,r,_this._label);
					}
				}else{
					if(typeof(_this._onError) == 'function'){
						_this._onError(_this,r,_this._label);
					}
				}
			}
		});
	},
	recordCreatedMarkers:function($marker){
		this._allMarkers[this._allMarkers.length] = $marker;
	},
	removeCreatedMarkers:function(){
		for(var i=0; i<this._allMarkers.length; i++){
			this.mapObj.removeMarker(this._allMarkers[i]);
			fb.info(this._allMarkers[i]);
		}
		this._allMarkers = [];
	}
};

/**************************************
 * SHOW LABEL FUNCTION
 **************************************/
function showLabel(scope,r,label){
	function applyHandlers(map,obj){
		scope.recordCreatedMarkers('marker'+i);
		scope.mapObj.addMarker('marker'+i,{
			pos:[obj.pos[0],obj.pos[1]],
			icon:{
				image:'/img/img_'+obj.link.split('/')[1]+'.gif',
				iconSize:[19, 20]
			},
			iconOver:'/img/img_'+obj.link.split('/')[1]+'.gif',
			mouseover:function(pos){
				label.innerHTML = '';
				if(obj.img){
					createElm(label,[
						'img',{src:obj.img,alt:unescape(obj.tit),title:unescape(obj.tit)}
					]);
				}
				createElm(label,[
					'div',{id:'labelContText'},[
						'h4',{'class':'fvd'},unescape(obj.tit)
					],[
						'p',{},[
							'strong',{'class':'fvd'},obj.oyos+' fãs'
						]
					]
				]);
				if(obj.txt){
					for(var i=0; i<obj.txt.length; i++){
						createElm($('labelContText'),[
							'p',{'class': (i == obj.txt.length-1 ? 'mb10' : '')},unescape(obj.txt[i])
						]);
					}
				}
				if(obj.ranking){
					createElm(label,[
						'ul',{id:'labelLst','class':'lstTraco'},''
					]);
					for(var i=0; i<obj.ranking.length; i++){
						createElm($('labelLst'),[
							'li',{},obj.ranking[i].posicao+'º lugar no ',[
								'a',{href:obj.ranking[i].link},unescape(obj.ranking[i].ranking)
							]
						]);
					}
				}
				map.insertElm({
					elm:label,
					pos:pos,
					delay:.5
				});
			},
			mouseout:function(pos){
				map.removeElm({
					elm:label
				});
			},
			click:function(pos){
				document.location.href = obj.link;
			}
		});
	}
	
	for(var i=0; i<r[1].length; i++){
		applyHandlers(scope.mapObj,r[1][i]);
	}
}
