
jQuery.noConflict();function toggle(id,s_open,s_closed){menu='m'+id;sub='s'+id;if(Element.hasClassName(sub,'open')){Element.removeClassName(sub,'open');Element.addClassName(sub,'closed')
Element.update(menu,s_open)}else if(Element.hasClassName(sub,'closed')){Element.removeClassName(sub,'closed');Element.addClassName(sub,'open')
Element.update(menu,s_closed)}}
function toggleControls(toggle,controls){toggle=$(toggle);if(toggle.type=='checkbox'){for(var i=0;i<controls.length;i++){if(toggle.checked){Element.hide(controls[i]);}else{Element.show(controls[i]);}}}}
function show_category(id){sub='s'+id;if(Element.hasClassName(sub,'closed'))
Element.removeClassName(sub,'closed');Element.addClassName(sub,'open')}
function CheckAllCheckboxes(formname,switchid){var ele=document.forms[formname].elements;var switch_cbox=$(switchid);for(var i=0;i<ele.length;i++){var e=ele[i];if((e.name!=switch_cbox.name)&&(e.type=='checkbox')){e.checked=switch_cbox.checked;}}}
function CheckAllCheckboxesByID(formname,switchid,eName){var ele=document.forms[formname].elements;var switch_cbox=$(switchid);for(var i=0;i<ele.length;i++){var e=ele[i];if((e.name!=switch_cbox.name)&&(e.type=='checkbox')&&(e.id.indexOf(eName)==0)){if(e.checked!=switch_cbox.checked){e.click();}}}}
function CheckAllBoxesByClass(control,target_class){control=$(control);boxes=$$(target_class);boxes.each(function(box){box.checked=control.checked;})}
function catchTab(item,e){scrollPos=item.scrollTop;if(e.which==9){replaceSelection(item,'  ');setTimeout("document.getElementById('"+item.id+"').focus();document.getElementById('"+item.id+"').scrollTop=scrollPos;",0);return false;}}
function getSelected(el){var Ary={};var I=0;element=$(el);options=$A(element.options);options.each(function(option){if(option.selected){Ary['delete['+I+']']=option.value;I++;}})
return Ary;}
function addEvent(obj,event,fn){jQuery(obj).bind(event,fn);}
function audioPlayerListner(event){if(event.newstate=='PLAYING'){stopOtherPlayers(event.id,'.audio_preview');}}
function videoPlayerListner(event){if(event.newstate=='PLAYING'){pauseOtherPlayers(event.id,'.video_preview');}}
function stopOtherPlayers(player_id,player_class){players=$$(player_class);players.each(function(player){if(player.id!=player_id){player.sendEvent('STOP');}});}
function pauseOtherPlayers(player_id,player_class){players=$$(player_class);players.each(function(player){if(player.id!=player_id){player.sendEvent('PLAY','false');}});}
var GoogleBaseMap=Class.create();GoogleBaseMap.prototype={initialize:function(){this.init.call(arguments);},init:function(map_div){if(map_div!=undefined){this.centered=false;this.rescale=true;if(GBrowserIsCompatible()){this.map=new GMap2($(map_div));return this;}else{alert('Google Maps not supported on this browser.');return false;}}else{return false;}},addControl:function(obj){this.map.addControl(obj);},setCenterCoords:function(lat,lon,level){this.map.setCenter(GPoint(lat,lon),level);},setCenter:function(point,level){this.map.centerAndZoom(point,level);},setupMap:function(){alert('Called abstract method. Call appropriate class method instead');},setup:function(){this.addScaleControl();this.addMapTypeControl();this.map.enableDoubleClickZoom();this.map.enableContinuousZoom();},addSmallMapControl:function(){this.addControl(new GSmallMapControl());},addLargeMapControl:function(){this.addControl(new GLargeMapControl());},addMapTypeControl:function(){this.addControl(new GMapTypeControl())},addSmallZoomControl:function(){this.addControl(new GSmallZoomControl());},addScaleControl:function(){this.addControl(new GScaleControl());},addOverviewControl:function(){this.addControl(new GOverviewMapControl());},addMarker:function(row){coords=row.split('^');marker=new GMarker(new GLatLng(coords[0],coords[1]),{title:coords[2]});return marker;},getMapType:function(){return G_NORMAL_MAP;},getZoomLevel:function(bounds){return this.map.getBoundsZoomLevel(bounds);},queryMarkerData:function(qryUrl){this.queryUrl=qryUrl;GDownloadUrl(this.queryUrl,this.onDataLoad.bind(this))},requeryMarkerData:function(){this.rescale=false;if(this.queryUrl){this.queryMarkerData(this.queryUrl);}},onDataLoad:function(data,responseCode){if(data!='-1'){markers=data.split(';');if(markers.length>0){batch=[];for(var i=0;i<markers.length;i++){if(marker=this.addMarker(markers[i])){batch.push(marker);}}
this.map.clearOverlays();if(batch.length>0){if(this.rescale){this.map.setCenter(batch[0].getPoint(),7);}
var bounds=new GLatLngBounds();var t=this;batch.each(function(value,index){bounds.extend(value.getPoint());t.map.addOverlay(value);})
if(this.rescale){t.map.setCenter(bounds.getCenter(),t.getZoomLevel(bounds),t.getMapType());}}}}else{this.map.setCenter(new GLatLng(53,5),5);}}};var GoogleSmallMap=Class.create();GoogleSmallMap.prototype=Object.extend(new GoogleBaseMap(),{initialize:function(map_div){this.init(map_div);},setupMap:function(){this.setup();this.addSmallMapControl();}});var GoogleLargeMap=Class.create();GoogleLargeMap.prototype=Object.extend(new GoogleBaseMap(),{initialize:function(map_div){this.init(map_div);},setupMap:function(){this.setup();this.addLargeMapControl();this.addOverviewControl();}});var GoogleSmallMapEditor=Class.create();GoogleSmallMapEditor.prototype=Object.extend(new GoogleSmallMap(),{initialize:function(map_div){this.init(map_div);},registerListener:function(e_long,e_lat){this.e_long=$(e_long);this.e_lat=$(e_lat);GEvent.addListener(this.map,"click",this.onMapClick.bind(this));},onMapClick:function(marker,point){if(marker){point=marker.getPoint();this.onMapClick(undefined,point);}else if((this.e_long&&this.e_lat)){this.e_long.value=point.lng();this.e_lat.value=point.lat();}}});var GoogleMapViewer=Class.create();GoogleMapViewer.prototype=Object.extend(new GoogleLargeMap(),{initialize:function(map_div){this.init(map_div);},addMarker:function(row){coords=row.split('^');var marker=new GMarker(new GLatLng(coords[0],coords[1]),{title:coords[2]});marker.photo_id=coords[3];GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml("<div class=\"google-map-popup\">Loading details...</div>");queryURL='/photos/get_photo_window_info/'+marker.photo_id;GDownloadUrl(queryURL,function(data,responseCode){marker.openInfoWindowHtml(data);});});return marker;}});function getSelectedMarkers(el){Ary=getSelected(el);Ary['markable_type']=$F('markable_type');Ary['markable_id']=$F('markable_id');return Hash.toQueryString(Ary);}