
var ics;var map;var mgr;var pts=[];var currMarker=undefined;var infoObj=undefined;var infoMarker=undefined;var showId=-1;function load(){_("loader").show();if(GBrowserIsCompatible()){var icBase=new GIcon(G_DEFAULT_ICON);icBase.iconSize=new GSize(32,37);icBase.shadow='';icBase.iconAnchor=new GPoint(16,34);icBase.infoWindowAnchor=new GPoint(16,2);ics=new Array();for(var i=0;i<7;i++){ics.push(new GIcon(icBase));}
ics[0].image="i/cl.png";ics[1].image="i/c.png";ics[2].image="i/r.png";ics[3].image="i/m.png";ics[4].image="i/tc.png";ics[5].image="i/tr.png";ics[6].image="i/tm.png";ics[0].iconSize=new GSize(55,55);ics[0].iconAnchor=new GPoint(28,28);map=new GMap2(document.getElementById("map"));map.setMapType(G_NORMAL_MAP);map.setCenter(new GLatLng(42.5,25.5),7);map.setUIToDefault();_("cbC").click(function(){loadObj()});_("cbL").click(function(){loadObj()});_("cbM").click(function(){loadObj()});_("cbT").click(function(){loadObj()});_("btnAdd").click(function(){add()});GEvent.addListener(map,"moveend",loadObj);loadObj();loadLast();if(document.location.hash!=''){var id=document.location.hash.substr(1,document.location.hash.length);if(id!=''){showPt(id);}}}else{alert("Твоят браузър не може да покаже картата!");}}
function getInfoWin(loc,obj){var msg="<div class='pop'><span class='center'><b>";if(obj.t==1){msg+="Статична камера";}else if(obj.t==2){msg+="Kамера в светофар";}else if(obj.t==3){msg+="Стоянка на КАТ или др.";}else{msg+="?"}
msg+='</b><br/>';if(obj.l==1){msg+='Нова!</br>';}
msg+='<img src="'+ics[obj.t].image+'"/>'+'<img src="i/s'+obj.s+'.png"/>';if(obj.v!=1){msg+='<div id="vctrl">Гласувай!<br/><br/>'+'<a href="#" class="vp" onclick="report('+obj.i+', true);return false;">Да</a>'+'<a href="#" class="vm" onclick="report('+obj.i+', false);return false;">Не</a>'+'</div>';}
msg+='</span>';if(obj.d!=0||obj.u!=0){msg+='<div class="votes">Гласове<br/>';if(obj.u!=0){msg+='<span class="vp">+'+obj.u+' </span>';}
if(obj.d!=0){msg+='<span class="vm">-'+obj.d+' </span>';}
msg+='</div>';}
if(isR){msg+='<a href="#" onclick="change(10, '+obj.i+');return false;">X</a>&nbsp;';msg+='<a href="#" onclick="change('+(obj.l==1?'11':'12')+', '+obj.i+');return false;">'+(obj.l==1?'Perm':'Temp')+'</a>';}
msg+='<i>#'+obj.i+'</i>';msg+='</div>';return msg;}
function getAddWindow(loc){var msg='<div class="pop" id="addblock">'+'<b>Нова точка</b><br/>'+'Премести маркера до желаното място<br/>'+'<label>'+'Тип'+'<select id="pType">'+'<option value="3">Стоянка на КАТ</option>'+'<option value="1">Статична камера</option>'+'<option value="2">Камера в светофар</option>'+'</select>'+'</label>'+'<label>'+'Ограничение на скоростта'+'<select id="pSpeed">'+'<option value="20">20</option>'+'<option value="30">30</option>'+'<option value="40">40</option>'+'<option value="50" selected="true">50</option>'+'<option value="60">60</option>'+'<option value="70">70</option>'+'<option value="80">80</option>'+'<option value="90">90</option>'+'<option value="100">100</option>'+'<option value="110">110</option>'+'<option value="120">120</option>'+'<option value="130">130</option>'+'</select> км/ч'+'</label>'+'<button onclick="doAdd()">Добави</button>'+'<button onclick="cancelAdd()">Откажи</button>'+'</div>';return msg;}
function report(id,up){loadStart();_('report.php?i='+id+'&t='+(up?'1':'0')).send(function(o){if(o.s){alert("Благодаря, твоят глас е приет!");infoMarker.closeInfoWindow();infoObj.v=1;if(up){infoObj.u++;}else{infoObj.d++;}
map.removeOverlay(infoMarker);map.addOverlay(infoMarker);GEvent.addListener(infoMarker,"click",click(infoObj,infoMarker));}else{alert("Съжалявам, нещо се обърка, опитай пак след малко!");}
loadEnd();},true,true);}
function change(t,id){loadStart();_('report.php?i='+id+'&t='+t).send(function(o){if(o.s){infoMarker.closeInfoWindow();if(t==10){}
alert("OK!");}else{alert("Съжалявам, нещо се обърка, опитай пак след малко!");}
loadEnd();},true,true);}
function doAdd(){if(currMarker){var loc=currMarker.getLatLng();var t=_('pType').value();var s=_('pSpeed').value();var q='la='+loc.lat()+'&lo='+loc.lng()+'&t='+t+'&s='+s;cancelAdd();loadStart();_('add.php?'+q).send(function(o){if(o.i!=0){var marker=new GMarker(loc,{icon:ics[t-0+3]});var obj={i:o.i,t:t,s:s,u:0,d:0};GEvent.addListener(marker,"click",click(obj,marker));map.addOverlay(marker);pts.push(marker);}else{alert("Съжалявам, точката не беше приета!");}
loadEnd();},true,true);}}
function handleDrag(loc){currMarker.openInfoWindowHtml(getAddWindow(loc));}
function cancelAdd(){if(currMarker){map.removeOverlay(currMarker);currMarker=undefined;}}
function add(){addAt(map.getCenter().lng(),map.getCenter().lat());}
function addAt(lng,lat){cancelAdd();currMarker=new GMarker(new GLatLng(lat,lng),{draggable:true});map.addOverlay(currMarker);handleDrag(map.getCenter());GEvent.addListener(currMarker,'dragend',function(loc){handleDrag(loc);});}
function click(obj,marker){return function(){infoMarker=marker;infoObj=obj;marker.openInfoWindowHtml(getInfoWin(marker.getLatLng(),obj));}}
function clickClust(marker){return function(){var zoom=map.getZoom()+2;if(zoom>19){zoom=19;}
map.setCenter(marker.getLatLng(),zoom);}}
function clearMap(){for(var i=0;i<pts.length;i++){if(pts[i]!=infoMarker){map.removeOverlay(pts[i]);}}
pts=[];if(infoMarker!=undefined){pts.push(infoMarker);}}
function getMapInfo(){var bounds=map.getBounds();var ne=bounds.getNorthEast();var sw=bounds.getSouthWest();return ne.lat()+","+ne.lng()+","+sw.lat()+","+sw.lng()+","+map.getZoom();}
function doMove(loc,id){return function(loc){_('move.php?i='+id+'&la='+loc.lat()+'&lo='+loc.lng()).send(function(o){if(o.s){alert("OK!");}else{alert("Съжалявам, нещо се обърка, опитай пак след малко!");}
loadEnd();},true,true);}}
function loadObj(){loadStart();var t=(_('cbT').checked()?'0':'')+
(_('cbC').checked()?'1':'')+
(_('cbL').checked()?'2':'')+
(_('cbM').checked()?'3':'');_('get.php?t='+t+'&m='+getMapInfo()).send(function(obj){clearMap();for(var o in obj){if(obj[o].x!=0){var loc=new GLatLng(obj[o].x,obj[o].y);var marker=undefined;if(obj[o].t!=0){marker=new GMarker(loc,{icon:ics[obj[o].t+(obj[o].l==1?3:0)],draggable:isR})
GEvent.addListener(marker,"click",click(obj[o],marker));if(isR){GEvent.addListener(marker,'dragend',doMove(loc,obj[o].i));}}else{marker=new LabeledMarker(loc,{icon:ics[0],labelText:obj[o].c,labelClass:'labels'});GEvent.addListener(marker,"click",clickClust(marker));}
map.addOverlay(marker);pts.push(marker);if(showId==obj[o].i&&obj[o].t!=0){infoMarker=marker;infoObj=obj[o];marker.openInfoWindowHtml(getInfoWin(marker.getLatLng(),obj[o]));showId=-1;}}}
loadEnd();},true,true);}
function loadLast(){loadStart();_('get.php?l=1').send(function(obj){var html="";for(var o in obj){if(obj[o].i!=-1){html+='<a href="#'+obj[o].i+'" onclick="javascript:showPt('+obj[o].i+')">#'+obj[o].i+'</a> ';}}
_("last").value(html);},true,true);}
function showPt(id){loadStart();_('get.php?i='+id).send(function(obj){if(obj.i!=-1){scroll(0,0);map.setCenter(new GLatLng(obj.x,obj.y),18);showId=obj.i;}else{alert("Тази точка не съществува или е изтрита!");loadEnd();}},true,true);}
function loadStart(){_('loader').show();}
function loadEnd(){_('loader').hide();}
