
(function($){$.InFieldLabels=function(label,field,options){var base=this;base.$label=$(label);base.label=label;base.$field=$(field);base.field=field;base.$label.data("InFieldLabels",base);base.showing=true;base.init=function(){base.options=$.extend({},$.InFieldLabels.defaultOptions,options);if(base.$field.val()!=""){base.$label.hide();base.showing=false;}else{base.$label.show();base.showing=true;}
base.$field.focus(function(){base.fadeOnFocus();}).blur(function(){base.checkForEmpty(true);}).bind('keydown.infieldlabel',function(e){base.hideOnChange(e);}).change(function(e){base.checkForEmpty();}).bind('onPropertyChange',function(){base.checkForEmpty();});};base.fadeOnFocus=function(){if(base.showing){base.setOpacity(base.options.fadeOpacity);};};base.setOpacity=function(opacity){base.$label.stop().animate({opacity:opacity},base.options.fadeDuration);base.showing=(opacity>0.0);};base.checkForEmpty=function(blur){if(base.$field.val()==""){base.prepForShow();base.setOpacity(blur?1.0:base.options.fadeOpacity);}else{base.setOpacity(0.0);};};base.prepForShow=function(e){if(!base.showing){base.$label.css({opacity:0.0}).show();base.$field.bind('keydown.infieldlabel',function(e){base.hideOnChange(e);});};};base.hideOnChange=function(e){if((e.keyCode==16)||(e.keyCode==9))return;if(base.showing){base.$label.hide();base.showing=false;};base.$field.unbind('keydown.infieldlabel');};base.init();};$.InFieldLabels.defaultOptions={fadeOpacity:0.5,fadeDuration:300};$.fn.inFieldLabels=function(options){return this.each(function(){var for_attr=$(this).attr('for');if(!for_attr)return;var $field=$("input#"+for_attr+"[type='text'],"+"input#"+for_attr+"[type='password'],"+"textarea#"+for_attr);if($field.length==0)return;(new $.InFieldLabels(this,$field[0],options));});};})(jQuery);

(function($){$.fn.loadingIndicator=function(action)
{$(this).each(function()
{var num_actions=$(this).data('num_actions');if(!num_actions){num_actions=0;}
if(action==='on'){num_actions++;$(this).show();}
else if(action==='on-if-off')
{if(num_actions===0){num_actions++;$(this).show();}}
else if(action==='off')
{num_actions--;if(num_actions<=0){num_actions=0;$(this).hide();}}
else if(action==='force-off')
{num_actions=0;$(this).hide();}
$(this).data('num_actions',num_actions);});return this;};})(jQuery);

var $location_lat,$location_lng,$search_form,$sort_type,$search_location,$search_keyword;var search_obj={get_new_events:function()
{$("#search_indicator").loadingIndicator('on-if-off');$('#tweetup_list_cont').html('');if(!this.lat_lng_is_set()&&$search_location.val()!==''){this.lookup_search_location();return false;}
$.ajax({type:"POST",url:$search_form.attr('action'),data:$search_form.serialize(),success:this.new_events_received,error:this.get_events_error});return false;},pageinate_submit:function()
{$("#search_indicator").loadingIndicator('on');var $page_form=$('#pagination_form');$.ajax({type:"POST",url:$page_form.attr('action'),data:$page_form.serialize(),success:this.new_events_received,error:this.get_events_error});$('#tweetup_list_cont').html('');return false;},new_events_received:function(data,textStatus)
{$('#tweetup_list_cont').html(data);map_obj.add_markers();$("#search_indicator").loadingIndicator('off');},get_events_error:function(XMLHttpRequest,textStatus,errorThrown)
{alert('An error occurred. '+textStatus);$("#search_indicator").loadingIndicator('off');},lat_lng_is_set:function()
{return($location_lat.val()!==''&&$location_lng.val()!=='');},lookup_search_location:function()
{if(!map_obj.get_point($search_location.val(),this.set_search_location_lat_lng)){alert("Geocoding error. Can't lookup address");}},set_search_location_lat_lng:function(point)
{if(!point){alert("Couldn't find the location");return false;}
$location_lat.val(point.y);$location_lng.val(point.x);$search_form.submit();},location_changed:function()
{$location_lat.val('');$location_lng.val('');},point_from_lng_lat:function(){return new GLatLng($location_lat.val(),$location_lng.val(),true);}};var map_obj={initialize_map:function(){if(window.GBrowserIsCompatible&&GBrowserIsCompatible())
{this.map=new GMap2(document.getElementById("location_map"));this.map.addControl(new GSmallMapControl());this.map.addControl(new GMapTypeControl());this.geocoder=new GClientGeocoder();this.add_markers();}},add_markers:function()
{this.map.clearOverlays();$("#message").appendTo(this.map.getPane(G_MAP_FLOAT_SHADOW_PANE));$("#message").hide();this.latlngbounds=new GLatLngBounds();$('#tweetup_list > li[lat]').each(this.createMarker).hover(this.show_marker);if(!this.latlngbounds.isEmpty()){var zoom_level=Math.min(this.map.getBoundsZoomLevel(this.latlngbounds),15);this.map.setCenter(this.latlngbounds.getCenter(),zoom_level);}
else if(search_obj.lat_lng_is_set()){this.set_center(search_obj.point_from_lng_lat());}},createMarker:function()
{$el=$(this);var point=new GLatLng($el.attr('lat'),$el.attr('lng'));var marker=new GMarker(point);var msg_html=$el.children('.marker_text').html();GEvent.addListener(marker,"click",function(marker){map_obj.displayPoint(marker,msg_html);});map_obj.map.addOverlay(marker);$el.data('marker',marker);map_obj.latlngbounds.extend(point);},displayPoint:function(marker,html)
{$("#message").hide();var point=(marker.x)?marker:marker.getLatLng();var markerOffset=map_obj.map.fromLatLngToDivPixel(point);$("#message").show().css({top:markerOffset.y+1,left:markerOffset.x-118}).html(html);map_obj.map.panTo(point);},show_marker:function()
{var marker=$(this).data('marker');GEvent.trigger(marker,"click",marker);},geocode_location_result:function(point)
{if((point.y||false)&&(point.x||false))
{$('#location_lat').val(point.y);$('#location_lng').val(point.x);}},get_point:function(address,callback)
{if(this.geocoder)
{this.geocoder.getLatLng(address,function(point){if(point){callback(point);}else{callback(false);}});return true;}
return false;},add_point:function(point){var marker=new GMarker(point);this.map.addOverlay(marker);},set_center:function(point){this.map.setCenter(point,7);this.map.checkResize();}};function paginate_link(offset)
{var $page=$('#page_page');var page_num=$page.val()||0;var new_page=parseInt(page_num,10)+offset;if(isNaN(new_page)){new_page=0;}
$page.val(new_page);search_obj.pageinate_submit();}
function locations()
{$('#locations_list a[class!=do_search]').live('click',function(e){e.preventDefault();$('#locations_indicator').loadingIndicator('on');$('#locations_list').html('');$('#locations_list').load(this.href,{},function(){$('#locations_indicator').loadingIndicator('off');});});$('#locations_list a.do_search').live('click',function(e){e.preventDefault();$search_location.val(this.title).change();$('#sort_options > a[name=distance]').click();$search_form.submit();});$('#locations_indicator').loadingIndicator('on');$('#locations_list').load('/search/location',{},function(){$('#locations_indicator').loadingIndicator('off');});}
$(function(){$("label").inFieldLabels();$("#search_indicator").loadingIndicator('on');$location_lat=$('#location_lat');$location_lng=$('#location_lng');$sort_type=$('#sort_type');$search_location=$('#search_location');$search_keyword=$('#search_keyword');$search_form=$('#search_form');$search_form.submit(function(e){return search_obj.get_new_events();});$search_location.change(search_obj.location_changed);var $sort_option_links=$('#sort_options > a');$sort_option_links.click(function(e)
{e.preventDefault();$sort_option_links.removeClass('selected');$(this).addClass('selected');if($sort_type.val()!=this.name)
{$sort_type.val(this.name);$search_form.submit();}});if($sort_type.val()!==''){$sort_option_links.filter('[name='+$sort_type.val()+']').click();}else{$sort_option_links.filter(':first').click();}
map_obj.initialize_map();$('#pageinate_previous').live('click',function(e){paginate_link(-1);});$('#pageinate_next').live('click',function(e){paginate_link(1);});locations();$("#search_indicator").loadingIndicator('off');});

function calculate_time_zone(){var rightNow=new Date();var jan1=new Date(rightNow.getFullYear(),0,1,0,0,0,0);var june1=new Date(rightNow.getFullYear(),6,1,0,0,0,0);var temp=jan1.toGMTString();var jan2=new Date(temp.substring(0,temp.lastIndexOf(" ")-1));temp=june1.toGMTString();var june2=new Date(temp.substring(0,temp.lastIndexOf(" ")-1));var std_time_offset=(jan1-jan2)/(1000*60*60);var daylight_time_offset=(june1-june2)/(1000*60*60);var dst;if(std_time_offset==daylight_time_offset){dst="0";}else{var hemisphere=std_time_offset-daylight_time_offset;if(hemisphere>=0)
std_time_offset=daylight_time_offset;dst="1";}
return{'std_time_offset':convert_tz(std_time_offset),'dst':dst};}
function convert_tz(value){var hours=parseInt(value);value-=parseInt(value);value*=60;var mins=parseInt(value);value-=parseInt(value);value*=60;var secs=parseInt(value);var display_hours=hours;if(hours==0){display_hours="+00";}else if(hours>0){display_hours=(hours<10)?"+0"+hours:"+"+hours;}else{display_hours=(hours>-10)?"-0"+Math.abs(hours):hours;}
mins=(mins<10)?"0"+mins:mins;return display_hours+":"+mins;}
function set_tz_dropdown(element)
{if(element&&element.selectedIndex==0)
{tz_obj=calculate_time_zone();var i;for(i=0;i<element.options.length;i++){if(element.options[i].title==tz_obj.std_time_offset+","+tz_obj.dst){element.selectedIndex=i;break;}}}}
function send_tz(url){if(!url){return;}
$.post(url,calculate_time_zone());}
function set_tz_show_link_text()
{var tz_select_text=$('#time_zone :selected').text();if(tz_select_text==''){show_tz_options_container();}else{$('#tz_show_link').html(tz_select_text);}}
$(function()
{var tz_dropdown=$('#time_zone');if(tz_dropdown.length>0)
{set_tz_dropdown(tz_dropdown[0]);var tz_show_link=$('#tz_show_link');if(tz_show_link.length>0)
{set_tz_show_link_text();tz_show_link.click(function(){$('#tz_options_container').show();$('#tz_show_link_container').hide();return false;});}}
if(typeof(UPDATE_TZ)!='undefined'&&UPDATE_TZ){send_tz(BASEURL+'session/time_zone');}});
