;(function($){var app=new Sammy.Application(function(){with(this){this.use(Sammy.Template);element_selector='#mapsystem';var map;var onmarker;var latestDataLoaded=false;var mode;var celebPath;var confirmedflag;var lastfrag;var spotList=[];var celebSpotList=[];var userSpotList=[];var gmarkers=[];var gIndexes=new Array();var markerBounds;var targetMarkerPosition;var infowindow=new google.maps.InfoWindow();var confirmedIcon='/images/greenmarker.png';var targetIcon='/images/targetmarker.png';var regShadow=new google.maps.MarkerImage('http://maps.gstatic.com/intl/en_us/mapfiles/shadow50.png',new google.maps.Size(37,34),new google.maps.Point(0,0),new google.maps.Point(10,34));this.bind('reload-spots',function(){infowindow.close();this.redirect('#/map');});get('#/map',function(){with(this){if(!latestDataLoaded){initialDataLoad(this);}
hidePanelContent();hideTabNavigation();$("#standardtabs").show();$("#standardtabs").css('visibility','visible');$("#globalSpots").show();$("#globalSpots").css('visibility','visible');checkTabHighlighting('#globalSpotsTab');if((mode!="latestspots")&&(typeof mode!='undefined')){repopulateMarkers();setMapStandardSpot();}
mode="latestspots";var api=$("#globalSpots div.scrollable").scrollable();api.next(0)
api.prev(0);}});get('#/feed',function(){with(this){if(!latestDataLoaded){initialDataLoad(this);}
hidePanelContent();hideTabNavigation();$("#standardtabs").show();$("#standardtabs").css('visibility','visible');$("#papTrack").show();$("#papTrack").css('visibility','visible');checkTabHighlighting('#papTrackTab');if((mode!="latestspots")&&(typeof mode!='undefined')){repopulateMarkers();setMapStandardSpot();}
mode="latestspots";var api=$("#papTrack div.scrollable").scrollable();api.next(0)
api.prev(0);}});function enableStandardTabs(context){onTab=$("#standardtabs .on");var standardTab=$("#standardtabs li");standardTab.css("cursor","pointer");standardTab.click(function(){link=($(this).find('a').attr('href'));context.redirect(link);onTab.removeClass("on");onTab.find('a').removeClass("on");$(this).addClass("on");$(this).find('a').addClass("on");onTab=$(this);})}
function hideTabNavigation(){$("#standardtabs").hide();$("#usertabs").hide();$("#celebtabs").hide();}
function checkTabHighlighting(target){if(onTab.find('a').attr('id')!=target){onTab.removeClass("on");onTab.find('a').removeClass("on");$(target).addClass("on");var parentTab=$(target).parent();parentTab.addClass("on");onTab=parentTab;}}
function hidePanelContent(){$("#globalSpots").hide();$("#papTrack").hide();$("#userDetails").hide();$("#celebDetails").hide();$("#syserrorDetails").hide();$("#noresultDetails").hide();}
function enableScrollBars(){$('.nextPage').css("cursor","pointer");$('.prevPage').css("cursor","pointer");$(function(){$("#globalSpots div.scrollable").scrollable({vertical:true,size:17,clickable:false});$("#papTrack div.scrollable").scrollable({vertical:true,size:5,clickable:false});$("#celebDetails div.scrollable").scrollable({vertical:true,size:14,clickable:false});$("#userDetails div.scrollable").scrollable({vertical:true,size:14,clickable:false});});}
get('#\/map\/([0-9]+)',function(){with(this){infowindow.close();lastfrag=Number(params['splat']);var activemarker=null;checkTabHighlighting('#globalSpotsTab');if(mode!="latestspots"){repopulateMarkers();}
mode="latestspots";for(var i=gmarkers.length-1;i>=0;i--){if(gmarkers[i][1]==lastfrag){activemarker=gmarkers[i][0];gposition=i;break;}};if(activemarker){for(var i=spotList.length-1;i>=0;i--){if(spotList[i][0]==lastfrag){var spotkey=i;break;}};activemarker.setIcon(highlightIcon);activemarker.setShadow(regShadow);map.setZoom(17);geoposition=decodeLine(spotList[spotkey][2]);targetMarkerPosition=new google.maps.LatLng(geoposition[0],geoposition[1]);map.setCenter(targetMarkerPosition);openBubble(activemarker,lastfrag,spotList);onmarker=gmarkers[gposition][0];spotList[spotkey][5]==0?confirmedflag=false:confirmedflag=true;}else{clearMarkers();clearPanels();displayLoading();spotList=new Array();gIndexes=new Array();gmarkers=new Array();var context=this;hideTabNavigation();hidePanelContent();$("#standardtabs").show();$("#standardtabs").css('visibility','visible');$("#globalSpots").show();$("#globalSpots").css('visibility','visible');$.ajax({type:"POST",url:'/spots/individualspot',data:{id:lastfrag},dataType:'json',async:false,timeout:(10000),success:function(json){if(json.papstream.status=="success"){var items=json.papstream.items;var count=-1;markerBounds=new google.maps.LatLngBounds();latestDataLoaded=true;$.each(items,function(i,item){var data=new Array(item.id,item.clb,item.geo,mysqlTimeStampToDate(item.tme),item.dng,item.con,item.pid,item.tip);item.img?data.push(item.img):null;spotList.push(data);geoposition=decodeLine(item.geo);var point=new google.maps.LatLng(geoposition[0],geoposition[1]);addMarker(point,item.id,spotList,item.con,item.tip);});map.setZoom(15);map.setCenter(targetMarkerPosition);populatePanels();}else if(json.papstream.status=="noresults"){latestDataLoaded=true;clearPanels();context.partial('/templates/noresults.html',{},function(rendered){$('#globalSpots .items').append(rendered);$('#papTrack .items').append(rendered);});setMapStandardSpot();}},error:function(objAJAXRequest,strError){alert(">>AJAX TIMEOUT ERROR"+strError);latestDataLoaded=false;}});}}});get('#/map/celeb/:name',function(){with(this){mode="celeb";displayLoading();infowindow.close();celebSpotList=new Array();clearMarkers();hideTabNavigation();hidePanelContent();$("#celebtabs").show();$("#celebtabs").css('visibility','visible');$("#celebDetails").show();$("#celebDetails").css('visibility','visible');$.ajax({type:"POST",url:'/spots/celebspots',data:{'celeb':unescape(params['name'])},dataType:'json',async:false,timeout:(10000),success:function(json){if(json.papstream.status=="success"){$('#celebDetails .panelinfo h2').html('<a href="#/map/celeb/'+urlencodeName(json.papstream.clb)+'">'+json.papstream.clb+'</a>');$('#celebDetails .ipapcount h3').html(json.papstream.cnt);if(json.papstream.cnt==1){$('#celebDetails .ipapcount h4').html('iPap');}
$('#celebDetails .ipapdistance h3').html(json.papstream.dis);parseItems(json.papstream.items,celebSpotList,json.papstream.clb,this);setCelebMap();addCelebTemplates();}else if(json.papstream.status=="noresults"){}else{partial('add_maintainance.html');}},error:function(objAJAXRequest,strError){alert(">>AJAX TIMEOUT ERROR"+strError);}});}});get('#/map/user/:name',function(){with(this){mode="user";displayLoading();infowindow.close();userSpotList=new Array();clearMarkers();hideTabNavigation();hidePanelContent();$("#usertabs").show();$("#usertabs").css('visibility','visible');$("#userDetails").show();$("#userDetails").css('visibility','visible');$.ajax({type:"POST",url:'/spots/userspots',data:{'user':unescape(params['name'])},dataType:'json',async:false,timeout:(10000),success:function(json){if(json.papstream.status=="success"){$('#userDetails .panelinfo h2').html('<a href="#/map/user/'+urlencodeName(json.papstream.usr)+'">'+json.papstream.usr+'</a>');$('#userDetails .ipaps h3').html(json.papstream.ups);$('#userDetails .confirmed h3').html(json.papstream.cps);$('#userDetails .assists h3').html(json.papstream.ast);if(json.papstream.ups==1){$('#userDetails .ipaps h4').html('iPap');}
if(json.papstream.cps==1){$('#userDetails .confirmed h4').html('confirmed iPap');}
if(json.papstream.ast==1){$('#userDetails .assists h4').html('assist');}
parseItems(json.papstream.items,userSpotList,json.papstream.usr);if((json.papstream.ups==0)&&(json.papstream.cps==0)){setMapStandardSpot();}else{map.fitBounds(markerBounds);}
addUserTemplates();}else if(json.papstream.status=="noresults"){}else{partial('add_maintainance.html');}},error:function(objAJAXRequest,strError){alert(">>AJAX TIMEOUT ERROR"+strError);}});}});function setCelebMap(){var pathCoordinates=new Array();for(var i=0;i<celebSpotList.length;i++){if(celebSpotList[i][7]==0){geoposition=decodeLine(celebSpotList[i][2]);var point=new google.maps.LatLng(geoposition[0],geoposition[1]);pathCoordinates.push(point);}}
celebPath=new google.maps.Polyline({path:pathCoordinates,strokeColor:"#FF766a",strokeOpacity:1.0,strokeWeight:1});celebPath.setMap(map);map.fitBounds(markerBounds);}
function parseItems(items,targetarray,extravar){gmarkers=new Array();markerBounds=new google.maps.LatLngBounds();$.each(items,function(i,item){if(mode=='user'){var data=new Array(item.id,item.clb,item.geo,mysqlTimeStampToDate(item.tme),item.dng,item.con,extravar,0);item.img?data.push(item.img):null;targetarray.push(data);}else if(mode=='celeb'){var data=new Array(item.id,extravar,item.geo,mysqlTimeStampToDate(item.tme),item.dng,item.con,item.pid,item.tip)
item.img?data.push(item.img):null;targetarray.push(data);}else{var data=new Array(item.id,item.clb,item.geo,mysqlTimeStampToDate(item.tme),item.dng,item.con,item.pid,item.tip);item.img?data.push(item.img):null;targetarray.push(data);}
geoposition=decodeLine(item.geo);var point=new google.maps.LatLng(geoposition[0],geoposition[1]);addMarker(point,item.id,targetarray,item.con,item.tip);});}
function addMarker(point,markerId,targetarray,confirmed,tipoff){markerBounds.extend(point);if(lastfrag==markerId){targetMarkerPosition=point;setTimeout(function(){openBubble(marker,markerId,targetarray)},1000);}
if(confirmed!=0){var marker=new google.maps.Marker({position:point,map:map,shadow:regShadow,icon:confirmedIcon});}else if(tipoff==1){var marker=new google.maps.Marker({position:point,map:map,shadow:regShadow,icon:targetIcon});}else{var marker=new google.maps.Marker({position:point,map:map});}
gmarkers.push([marker,markerId]);gIndexes[markerId]=true;google.maps.event.addListener(marker,'click',function(){openBubble(marker,markerId,targetarray);});}
function repopulateMarkers(){clearMarkers();markerBounds=new google.maps.LatLngBounds();var items=spotList;$.each(items,function(i,item){geoposition=decodeLine(item[2]);var point=new google.maps.LatLng(geoposition[0],geoposition[1]);markerBounds.extend(point);addMarker(point,item[0],spotList,item[5],item[7]);});}
function clearMarkers(){for(var i=0;i<gmarkers.length;i++){gmarkers[i][0].setMap(null);}
gmarkers=new Array();gIndexes=new Array();try{celebPath.setMap(null);}catch(err){}}
function addCelebTemplates(){var api=$("#celebDetails div.scrollable").scrollable();api.getItems().remove();for(var i=0;i<celebSpotList.length;i++){(function(i){if(celebSpotList[i][7]!=1){celebSpotList[i][5]!=0?conclass="celeb confirmed":conclass="celeb";api.getItemWrap().append('<div class="celebitem"><span class="'+conclass+'">iPapped by: '+celebSpotList[i][6]+'</span><span class="user">'+celebSpotList[i][3]+'</span></div>');}else{api.getItemWrap().append('<div class="celebitem"><span class="celeb tipoff">TIP OFF</span><span class="user">'+celebSpotList[i][3]+'</span></div>');}
var celebItem=$('#celebDetails .celebitem').eq(i);celebItem.css("cursor","pointer");celebItem.mouseover(function(){$(this).css('background-color','#ffffd2');})
celebItem.mouseout(function(){$(this).css('background-color','#ececec');})
var markerno=celebSpotList[i][0];celebItem.click(function(){myclick(markerno);return false;});})(i);}
api.reload();api.next(0)
api.prev(0);};function addUserTemplates(){var api=$("#userDetails div.scrollable").scrollable();api.getItems().remove();for(var i=0;i<userSpotList.length;i++){(function(i){userSpotList[i][5]!=0?conclass="celeb confirmed":conclass="celeb";api.getItemWrap().append('<div class="useritem"><span class="'+conclass+'">'+userSpotList[i][1]+'</span><span class="user">'+userSpotList[i][3]+'</span></div>');var userItem=$('#userDetails .useritem').eq(i);userItem.css("cursor","pointer");userItem.mouseover(function(){$(this).css('background-color','#ffffd2');})
userItem.mouseout(function(){$(this).css('background-color','#ececec');})
var markerno=userSpotList[i][0];userItem.click(function(){myclick(markerno);return false;});})(i);}
api.reload();api.next(0)
api.prev(0);};function displayLoading(){}
function addMap(){var myOptions={zoom:18,mapTypeControl:false,mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel:false}
map=new google.maps.Map(document.getElementById("map_canvas"),myOptions);addListeners();$('#map_canvas').append('<div id="citylinks"><div class="wrapper"><a href="#" rel="lon">London</a></div><div class="wrapper"><a href="#" rel="can">Cannes</a></div><div class="wrapper"><a href="#" rel="la">LA</a></div></div>');var citylink=$('#citylinks a');citylink.click(function(){city=($(this).attr('rel'));centerMap(city);return false;})}
function centerMap(loc){switch(loc){case'lon':var myLatlng=new google.maps.LatLng(51.51962961696844,-0.15089035034179688);map.setCenter(myLatlng);map.setZoom(13);break;case'la':var myLatlng=new google.maps.LatLng(34.02335591726823,-118.24722290039062);map.setCenter(myLatlng);map.setZoom(13);break;case'can':var myLatlng=new google.maps.LatLng(43.553,7.024);map.setCenter(myLatlng);map.setZoom(15);break;case'ny':var myLatlng=new google.maps.LatLng(40.725925340669626,-73.99137496948242);map.setCenter(myLatlng);map.setZoom(14);break;case'none':var myLatlng=new google.maps.LatLng(google.loader.ClientLocation.latitude,google.loader.ClientLocation.longitude);map.setCenter(myLatlng);map.setZoom(14);break;default:break;}}
function setMapStandardSpot(){if(google.loader.ClientLocation){var cc=google.loader.ClientLocation.address.country_code;var reg=google.loader.ClientLocation.address.region;if(cc=="US"){if(reg=="CA"){centerMap('la');}else{centerMap('ny');}}else if(cc=="GB"){centerMap('lon');}else{centerMap('none');}}else{centerMap('lon');}}
function addListeners(){if((mode!='user')&&(mode!='celeb')){google.maps.event.addListener(map,'idle',function(){});}}
function openBubble(m,id,arr){for(var i=arr.length-1;i>=0;i--){if(arr[i][0]==id){targetkey=i;break;}};infowindow.close();infowindow.setContent(' ');infowindow.setContent(generateBubbleContent(arr[targetkey][1],arr[targetkey][3],arr[targetkey][4],arr[targetkey][5],arr[targetkey][6],arr[targetkey][7],arr[targetkey][8]));infowindow.open(map,m);$("a[rel='cbox']").colorbox({transition:"elastic",initialWidth:250,initialHeight:300,opacity:0.9});}
function generateBubbleContent(celeb,timeofpap,doing,confirmed,ipaper,tipoff,img){confirmed!=0?constring='<h3 class="confirmed">Sighting confirmed</h3>':constring='';if(tipoff!=0){tipstring='<h3 class="tipoff">Sneaky Tip-off</h3>';ipaperstring='<h3>'+timeofpap+'</h3>';}else{tipstring='';ipaperstring='<h3>iPapped by: <a href="#/map/user/'+urlencodeName(ipaper)+'">'+ipaper+'</a> '+timeofpap+'</h3>';}
if(img!=undefined){imgstring='<div id="imagecont"><a href="/media/'+img+'.jpg" rel="cbox"><div id="mag"></div><img src="/media/'+img+'_thumb.jpg"/></a></div>'
width='490px';}else{imgstring='';width='340px';}
var contentString='<div class="bubble" style="width:'+width+'">'+
imgstring+'<div id="bubblewds"><h2><a href="#/map/celeb/'+urlencodeName(celeb)+'">'+celeb+'</a></h2>'+
ipaperstring+
constring+
tipstring+'<p>'+doing+'</p>'+'</div></div>';return contentString;}
function urlencodeName(name){return name.replaceAll(" ","_");}
function myclick(targ){for(var i=gmarkers.length-1;i>=0;i--){if(gmarkers[i][1]==targ){activemarker=gmarkers[i][0];gposition=i;break;}};google.maps.event.trigger(activemarker,"click");}
function initialDataLoad(context){$.ajax({type:"POST",url:'/spots/latestspots',data:{},dataType:'json',async:false,timeout:(10000),success:function(json){if(json.papstream.status=="success"){var items=json.papstream.items;var count=-1;markerBounds=new google.maps.LatLngBounds();latestDataLoaded=true;$.each(items,function(i,item){count++;var data=new Array(item.id,item.clb,item.geo,mysqlTimeStampToDate(item.tme,item.tip),item.dng,item.con,item.pid,item.tip);item.img?data.push(item.img):null;spotList.push(data);geoposition=decodeLine(item.geo);var point=new google.maps.LatLng(geoposition[0],geoposition[1]);addMarker(point,item.id,spotList,item.con,item.tip);});setMapStandardSpot();populatePanels();}else if(json.papstream.status=="noresults"){latestDataLoaded=true;clearPanels();context.partial('/templates/noresults.html',{},function(rendered){$('#globalSpots .items').append(rendered);$('#papTrack .items').append(rendered);});setMapStandardSpot();}},error:function(objAJAXRequest,strError){alert(">>AJAX TIMEOUT ERROR"+strError);latestDataLoaded=false;}});}
function clearPanels(){$('#globalSpots .items').html('');$('#papTrack .items').html('');}
function populatePanels(){clearPanels();for(var i=0;i<spotList.length;i++){(function(i){spotList[i][5]!=0?conclass="celeb confirmed":conclass="celeb";if(spotList[i][7]!=0){conclass="celeb tipoff";}
$('#globalSpots .items').append('<div class="localitem"><span class="'+conclass+'">'+spotList[i][1]+'</span><span class="user">'+spotList[i][3]+'</span></div>');var globalItem=$('#globalSpots .localitem').eq(i);globalItem.css("cursor","pointer");globalItem.mouseover(function(){$(this).css('background-color','#ffffd2');})
globalItem.mouseout(function(){$(this).css('background-color','#ececec');})
var markerno=spotList[i][0];globalItem.attr({id:markerno})
globalItem.click(function(){myclick(markerno);return false;});})(i);}
var api=$("#globalSpots div.scrollable").scrollable();api.next(0)
api.prev(0);for(var i=0;i<spotList.length;i++){(function(i){spotList[i][5]!=0?constring='<h3 class="confirmed">Confirmed</h3>':constring='';if(spotList[i][7]!=0){tipstring='<h3 class="tipoff">Tip-off</h3>';ipaperstring='<h3>'+spotList[i][3]+'</h3>';}else{tipstring='';ipaperstring='<h3>iPapped by: <a href="#/map/user/'+urlencodeName(spotList[i][6])+'">'+spotList[i][6]+'</a> '+spotList[i][3]+'</h3>';}
$('#papTrack .items').append('<div class="paptrackitem"><h2><a href="#/map/celeb/'+urlencodeName(spotList[i][1])+'">'+spotList[i][1]+'</a></h2>'+constring+''+tipstring+''+ipaperstring+'<p>'+spotList[i][4]+'</p><div class="bottom"></div></div>');var papTrackItem=$('#papTrack .paptrackitem').eq(i);papTrackItem.css("cursor","pointer");papTrackItem.mouseover(function(){$(this).css('background-color','#ffffd2');})
papTrackItem.mouseout(function(){$(this).css('background-color','#ececec');})
var markerno=spotList[i][0];papTrackItem.click(function(event){if(event.target.href==undefined){myclick(markerno);}});})(i);}
var api=$("#papTrack div.scrollable").scrollable();api.next(0)
api.prev(0);}
bind('run',function(){with(this){addMap();enableStandardTabs(this);enableScrollBars();}});}});$(function(){app.run('#/map');});})(jQuery);$(document).ready(function(){$('.slide_up').bind('click',function(){if(window.pageYOffset>$('#mapsystem').offset().top){$('html,body').animate({scrollTop:$('#mapsystem').offset().top},500);}});$('.statlist li').each(function(index){$(this).css("cursor","pointer");$(this).mouseover(function(){$(this).addClass("on");$(this).find('a').addClass("on");})
$(this).mouseout(function(){$(this).removeClass("on");$(this).find('a').removeClass("on");})
$(this).click(function(){link=($(this).find('a').attr('href'));$(location).attr('href',link);if(window.pageYOffset>$('#mapsystem').offset().top){$('html,body').animate({scrollTop:$('#mapsystem').offset().top},500);}})});});function reload(){$('#mapsystem').trigger('reload-spots');}
function ptlink(event){alert('trigged');event.stopPropagation();}

