LocaLoad=Class.create({initialize:function(){index=webroot+"/server.php?";Ajax.Responders.register({onComplete:function(request,response){main.gui.base.showMessageWindow(response.responseJSON);main.gui.base.updateSiteInfo(response.responseJSON);}});this.lastActionID=false;this.lastEventTS=false;if(main.map){map=main.map;this.zoom=main.map.getZoom();}},generateGuestLogin:function(step){var data=main.data.get('newAccountData');if(!data)data=new Hash();data.set('location',google.loader.ClientLocation);if(main.data.get('icon'))data.set('icon',main.data.get('icon'));if($('address'))data.set('address',$('address').value);if($('name1'))data.set('name1',$('name1').value);if($('name2'))data.set('name2',$('name2').value);if($('email'))data.set('email',$('email').value);if($('passwort'))data.set('passwort',$('passwort').value);if($('code'))data.set('code',$('code').value);if($('agb'))data.set('agb',$('agb').checked);if($('year'))data.set('user_birthdate',$('year').value+"-"+$('month').value+"-"+$('day').value);main.data.set('newAccountData',data);new Ajax.Request(index,{method:'get',parameters:{f:'generateGuestLogin',s:session,step:step,data:Object.toJSON(data)},onSuccess:function(transport){jd=transport.responseJSON;if(main.gui.base.displayErrors(new Array('icon','address','name1','name2','email','passwort','user_birthdate','agb','code'),jd.errors)){if(step!="save"){$('userNewGuestAccount').update(jd.code.content);}else if(main.client=="web"){if(main.debug)console.debug(Object.toJSON(jd.user));main.myUser=jd.user;main.gui.base.removeContent();$('menuStart').update(jd.code.menuStart);setTimeout('main.jumpToMe()',1000);}else if(main.client=="guide"){$('meta_textlinks').update(jd.code.metaTextLinks);main.gui.base.removeContent();}}}});},generateInviteFriend:function(step){var data=Form.serialize('inviteDataForm',true);var friends=main.data.get('inviteFriends');new Ajax.Request(index,{method:'get',parameters:{f:'generateInviteFriend',s:session,step:step,data:Object.toJSON(data),friends:Object.toJSON(friends)},onSuccess:function(transport){jd=transport.responseJSON;if(main.gui.base.displayErrors(new Array('icon','name1','name2','email'),jd.errors)){main.data.unset('inviteFriends');if(step!="save"){$('newInviteFriendsEmail').update(jd.code.content);}else{$('newInviteFriendsEmail').update(jd.code.content);}}}});},generateUserActivation:function(){new Ajax.Request(index,{method:'get',parameters:{f:'generateUserActivation',s:session},onSuccess:function(transport){}});},generateInviteAccount:function(){var data=Form.serialize('inviteDataForm',true);data.user_birthdate=data.Date_Year+"-"+data.Date_Month+"-"+data.Date_Day;if(!data.agb)data.agb=false;var location=google.loader.ClientLocation;var inputs=new Array('name1','name2','user_gender','email','passwort','passwort2','user_birthdate','address','agb');new Ajax.Request(index,{method:'get',parameters:{f:'generateInviteAccount',s:session,data:Object.toJSON(data),location:Object.toJSON(location)},onSuccess:function(transport){jd=transport.responseJSON;if(main.gui.base.displayErrors(inputs,jd.errors)){if(jd.user){var p=new GLatLng(jd.user.lat,jd.user.lng);main.loadMarker();main.myUser=jd.user;main.load.clearMyEvents();main.load.pollMyEvents('');main.gui.base.removeContent();$('menuStart').update(jd.code.menuStart);setTimeout('main.switchToWindow()',500);}}}});},loadMarker:function(resetBounds){if(main.gui)main.gui.base.addMapLoading();var zoom=main.map.getZoom();if(this.zoom!=zoom){this.zoom=zoom;if(main.debug)console.debug("Zoom:"+this.zoom);if(main.LOverlay)main.map.removeOverlay(main.LOverlay);this.groups=new Hash();}if(resetBounds){main.marker=new Hash();main.bounds=new Array();}var bounds=map.getBounds();var southWest=bounds.getSouthWest();var southWestlat=southWest.lat();var southWestlng=southWest.lng();var southWeststring=southWestlat.toString()+','+southWestlng.toString();var northEast=bounds.getNorthEast();var northEastlat=northEast.lat();var northEastlng=northEast.lng();var northEaststring=northEastlat.toString()+','+northEastlng.toString();var data={filter:main.mapFilter};new Ajax.Request(index,{method:'get',parameters:{f:'getMarker',s:session,zoom:zoom,sw:southWeststring,ne:northEaststring,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;if(jd.marker)main.manageMarkers(jd.marker);if(main.debug)GLog.write("Marker: "+jd.meta.marker+" | Items: "+jd.meta.items);if(main.debug)GLog.write("DB Time: "+jd.meta.time_db+" sek | Cluster Time: "+jd.meta.time_cluster);if(main.gui)main.gui.base.removeMapLoading();},onFailure:function(transport){console.error(transport.status);}});},updateUserData:function(form,tab){var data=Form.serialize(form,true);if(data.Date_Year&&data.Date_Month&&data.Date_Day)data.user_birthdate=data.Date_Year+"-"+data.Date_Month+"-"+data.Date_Day;if(data.del_account){var Check=prompt(main.l.texts.del_account_prompt,"");if(Check.toLowerCase()=="ok"){main.gui.base.window.logout(data.del_account);return false;}data.del_account=0;}if(form=='editIconForm'){data.icon=main.data.get('icon');data.image=$('image_data').value;}var inputs=new Array('name1','name2','user_gender','nachname','email','passwort','passwort2','user_birthdate');new Ajax.Request(index,{method:'get',parameters:{f:'updateUserData',s:session,tab:tab,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;if(main.gui.base.displayErrors(inputs,jd.errors)){main.myUser=jd.user;$('menuStart').update(jd.code.menuStart);main.updateSound();main.gui.base.removeContent();var tabs=map.getInfoWindow().getContentContainers();tabs[tab].update(jd.code.tabs[tab]);if(form=='editIconForm'){var src=main.gui.base.buildUserImageSrc(jd.user,"64");var attachment={'name':main.lang.texts.facebook.profile_image.name,'href':webroot+"/user/"+main.myUser.user_key,'caption':main.lang.texts.facebook.profile_image.caption,'media':[{'type':'image','src':src,'href':webroot+"/user/"+main.myUser.user_key}]};main.helpers.connection.fbStreamPublish(attachment,false);}}}});},updateUserActivation:function(){new Ajax.Request(index,{method:'get',parameters:{f:'updateUserActivation',s:session},onSuccess:function(transport){var jd=transport.responseJSON;if(jd.user){main.myUser=jd.user;$('menuStart').update(jd.code.menuStart);main.gui.base.removeContent();}}});},updateLocationData:function(form,location_ID){var inputs=new Array('name1','address');var data=Form.serialize(form,true);if($('image_data')&&$('image_data').value){data.image=$('image_data').value;}new Ajax.Request(index,{method:'get',parameters:{f:'updateLocation',s:session,location_ID:location_ID,data:Object.toJSON(data)},onSuccess:function(transport){jd=transport.responseJSON;if(main.gui.base.displayErrors(inputs,jd.errors)){main.gui.base.removeContent();main.jumpToLocation(jd.location.id);}}});},requestLocationAdmin:function(form,location_ID){var data=Form.serialize(form,true);new Ajax.Request(index,{method:'get',parameters:{f:'requestLocationAdmin',s:session,location_ID:location_ID,data:Object.toJSON(data)},onSuccess:function(transport){jd=transport.responseJSON;main.gui.base.removeContent();main.jumpToLocation(location_ID);}});},delLocationData:function(location_ID){if(confirm("Location wirklich endgültig löschen?")){new Ajax.Request(index,{method:'get',parameters:{f:'delLocationData',s:session,location_ID:location_ID},onSuccess:function(transport){jd=transport.responseJSON;}});}},pollUserActions:function(reset,limit,filter){if(reset){main.actions=new Hash();Element.update('actions',"");this.lastActionID=false;}new Ajax.Request(index,{method:'get',parameters:{f:'pollUserActions',s:session,t:main.feed.public.type,id:this.lastActionID,limit:limit,filter:filter},onSuccess:function(transport){this.updateActionFeed(transport.responseJSON);}.bind(this)});},insertUserActions:function(limit){var start=main.actions.keys().length;new Ajax.Request(index,{method:'get',parameters:{f:'pollUserActions',s:session,t:main.feed.public.type,start:start,limit:limit},onSuccess:function(transport){this.updateActionFeed(transport.responseJSON,'bottom');}});},pollMyEvents:function(reset){if(reset){this.lastEventID=false;main.load.clearMyEvents();}new Ajax.Request(index,{method:'get',parameters:{f:'pollMyEvents',s:session,reset:reset,id:this.lastEventID},onSuccess:function(transport){var jd=transport.responseJSON;this.updateEventFeed(jd);}.bind(this)});},clearMyEvents:function(){main.events=new Hash();},updateEventFeed:function(d){var newEvents=false;var updateEvents=false;if(d.no_refresh){if(main.debug)console.debug('Kein Refresh notwendig!');return false;}d.events.each(function(data){var id=data.event.id;var old_data=main.events.get(id);if(data.action=="visit")data.type="visits";else if(data.action=="message")data.type="messages";else data.type="requests";data.update=false;if(main.debug)console.debug("lastEventTS:"+this.lastEventTS+" eventID:"+eventID);if(!this.lastEventTS||this.lastEventTS<data.event.refresh){this.lastEventTS=data.event.refresh;}if(!old_data||old_data.event.refresh!=data.event.refresh){updateEvents=true;if($('messageBox'+data.event.author_ID)&&data.type=="messages")main.load.updateMessages(data.event.author_ID);}main.events.set(id,data);}.bind(this));if(updateEvents){main.playSound('eventNew');main.gui.base.showMyEvents();}},updateActionFeed:function(d,insert){var i=0;if(insert=="bottom"){insert="bottom";var delay=10;}else{insert="top";var delay=50;d.actions.reverse();}d.actions.each(function(data){var id=parseInt(data.action.id);var action=main.actions.get(id);if(!action){if(!this.lastActionID||this.lastActionID<id)this.lastActionID=id;setTimeout(function(){main.actions.set(id,data);if(insert=="bottom")Element.insert('actions',{bottom:data.code});else Element.insert('actions',{top:data.code});},delay*i++);}}.bind(this));},pollData:function(counter,reset){var s=counter*5;var data=new Hash();if(s%main.pollEventsRefresh==0||reset){data.set('pollEvents',1);data.set('lastEventDate',this.lastEventTS);}if(s%main.pollActionsRefresh==0||reset){data.set('pollActions',1);data.set('lastActionID',this.lastActionID);data.set('publicFeedType',main.feed.public.type);}if(s%main.pollUserRefresh==0||reset){data.set('pollUserOnline',1);}if(s%main.pollFriendsRefresh==0||reset){data.set('pollFriendsOnline',1);}new Ajax.Request(index,{method:'get',parameters:{f:'pollData',s:session,reset:reset,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;if(jd.actions){if(main.debug)console.debug("Action Management starten");this.updateActionFeed(jd.actions);}if(jd.events){if(main.debug)console.debug("Events Management starten");this.updateEventFeed(jd.events);}}.bind(this)});main.gui.base.updateRightBoxHeights();},confirmUserContact:function(user_ID){var data={id:user_ID};new Ajax.Request(index,{method:'get',parameters:{f:'sendContact',s:session,data:Object.toJSON(data),confirm:true},onSuccess:function(transport){var jd=transport.responseJSON;if(jd.confirm){if(confirm(jd.confirm))this.sendUserContact(user_ID);}}.bind(this)});},sendUserContact:function(user_ID){var data={id:user_ID};new Ajax.Request(index,{method:'get',parameters:{f:'sendContact',s:session,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;var lastMessage=main.currentUser.last_message;main.currentUser.last_message=jd.message;if(lastMessage.to_ID==user_ID){Element.insert('messageSubItem'+lastMessage.id,{after:jd.code.message_small});$('messageSubItem'+jd.message.id).hide();$('messageSubItem'+jd.message.id).appear();}else{Element.insert('messageBox'+user_ID,{bottom:jd.code.message_complete});$('messageItem'+jd.message.id).appear();}setTimeout(function(){$('userWindowChat').scrollTop=$('messageBox'+user_ID).getHeight();},100);main.playSound('messageSend');}});},sendMessage:function(user_ID){if($('message'+user_ID).value){var data={message:$('message'+user_ID).value,id:user_ID};$('message'+user_ID).value="";main.gui.base.updateMyEvents('messages',user_ID);new Ajax.Request(index,{method:'get',parameters:{f:'sendMessage',s:session,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;var lastMessage=main.currentUser.last_message;main.currentUser.last_message=jd.message;if(lastMessage.to_ID==user_ID){Element.insert('messageSubItem'+lastMessage.id,{after:jd.code.message_small});$('messageSubItem'+jd.message.id).hide();$('messageSubItem'+jd.message.id).appear();}else{Element.insert('messageBox'+user_ID,{bottom:jd.code.message_complete});$('messageItem'+jd.message.id).appear();}setTimeout(function(){$('userWindowChat').scrollTop=$('messageBox'+user_ID).getHeight();},100);main.playSound('messageSend');}});}},updateMessages:function(id){new Ajax.Request(index,{method:'get',parameters:{f:'getUserMessages',s:session,id:id},onSuccess:function(transport){var jd=transport.responseJSON;$('messageBox'+id).update(jd.code.content);main.currentUser.last_message=jd.last_message;$('userWindowChat').scrollTop=$('messageBox'+id).getHeight();}});},sendAction:function(default_value,type){if($('action').value&&$('action').value!=default_value){var data_ID=$('data_ID').value;var data={message:$('action').value,data_ID:data_ID};$('action').value=default_value;if(!type)var type="";new Ajax.Request(index,{method:'get',parameters:{f:'sendAction',s:session,type:type,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;Element.insert('actionBox'+data_ID,{top:jd.action.info});main.playSound('messageSend');if(type=="member_message"){var src=main.gui.base.buildUserImageSrc(main.myUser,"64");var attachment={'name':main.lang.texts.facebook.new_status.name,'href':webroot+"/user/"+main.myUser.user_key,'caption':main.lang.texts.facebook.new_status.caption+data.message,};main.helpers.connection.fbStreamPublish(attachment,false);}else{if(jd.recipent.name2)var recipent=jd.recipent.name1+" "+jd.recipent.name2;else var recipent=jd.recipent.name1;var src=main.gui.base.buildUserImageSrc(jd.recipent,"64");var attachment={'name':main.lang.texts.facebook.new_wall_entry.name,'href':webroot+"/user/"+main.myUser.user_key,'caption':main.lang.texts.facebook.new_wall_entry.caption+recipent+":",'description':"'"+data.message+"'",'media':[{'type':'image','src':src,'href':webroot+"/user/"+jd.recipent.user_key}]};main.helpers.connection.fbStreamPublish(attachment,false);}if(jd.code){$('myStatus').update(jd.code.status);}}});}},sendWallComment:function(default_value,data_ID,type,rating){if(type=="rating"||($('comment').value&&$('comment').value!=default_value)){var parent_ID=$('parent_ID').value;if(type=="rating"){var data={parent_ID:parent_ID,rating:rating};}else{var data={message:$('comment').value,parent_ID:parent_ID};$('comment').value="";}if(!type)var type="";new Ajax.Request(index,{method:'get',parameters:{f:'sendWallComment',s:session,data_ID:data_ID,type:type,data:Object.toJSON(data)},onSuccess:function(transport){$('action_comment_form_'+parent_ID).remove();if($('action_comment_items_'+parent_ID).empty())$('action_comment_items_'+parent_ID).update("<HR\>");var jd=transport.responseJSON;Element.insert('action_comment_items_'+parent_ID,{bottom:jd.code.content});$('wall_comment_subitem_'+jd.subitem.id).hide();$('wall_comment_subitem_'+jd.subitem.id).appear();}});}},showTab:function(tab_id,tab_item,target,marker_ID){main.gui.base.changeTab(tab_id,target);new Ajax.Request(index,{method:'get',parameters:{f:'showTab',s:session,tab_id:tab_id,tab_item:tab_item,marker_ID:marker_ID},onSuccess:function(transport){$('tab_'+tab_id+'_'+tab_item).addClassName('a');$(target).update(transport.responseJSON.code.tab);$(target).appear();}});},setFeed:function(feed,type){if(feed=='public'){main.gui.base.changeTab('publicFeedTabs');main.feed.public.type=type;main.load.pollUserActions(true);$('tab_publicFeed_'+type).addClassName('a');}else if(feed=='personal'){main.gui.base.changeTab('personalFeedTabs');main.feed.personal.type=type;main.gui.base.showMyEvents();$('tab_personalFeed_'+type).addClassName('a');}},zoomToMarker:function(marker_ID){var marker=main.visibleMarkers.get(marker_ID);if(marker)map.setCenter(marker.getLatLng(),15);else map.setZoom(15);},zoomToPosition:function(lat,lng){map.setCenter(new google.maps.LatLng(lat,lng),14);},zoomToBounds:function(bounds,boundData){if(boundData){var sw=new google.maps.LatLng(boundData.sw_lat,boundData.sw_lng);var ne=new google.maps.LatLng(boundData.ne_lat,boundData.ne_lng);var bounds=new google.maps.LatLngBounds(sw,ne);}map.getInfoWindow().hide();map.removeOverlay(main.LOverlay);map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));},showRouteToPosition:function(lat,lng){if(typeof main.dirPolyline=="object")map.removeOverlay(main.dirPolyline);var wp=new Array();wp[0]=new google.maps.LatLng(main.myUser.lat,main.myUser.lng);wp[1]=new google.maps.LatLng(lat,lng);;var dirs=new google.maps.Directions();GEvent.addListener(dirs,"load",function(){main.dirPolyline=dirs.getPolyline();map.addOverlay(main.dirPolyline);});dirs.loadFromWaypoints(wp,{getPolyline:true});},showLookupAddress:function(content,default_content){if(content!=default_content){if(this.searchMarker)map.removeOverlay(this.searchMarker);main.gui.base.window.createAddressInfoWindow(content);}},updateAddressInfo:function(radius,lat,lng){new Ajax.Request(index,{method:'get',parameters:{f:'updateAddressInfo',s:session,radius:radius,lat:lat,lng:lng},onSuccess:function(transport){var jd=transport.responseJSON;$('addressInfoActions').update(jd.code.content);$('user_address_list_box').hide();$('user_address_list_box').appear();}});},setSearch:function(){this.hideOnlineItems(false);var data=Form.serialize('searchForm',true);new Ajax.Request(index,{method:'get',parameters:{f:'setSearch',s:session,data:Object.toJSON(data)},onSuccess:function(transport){var jd=transport.responseJSON;if(jd.num_results>0){$('boxRightActions').hide();$('boxRightEvents').hide();main.gui.base.removeContent();main.search=data;if(!main.searchMapControl){main.searchMapControl=new DivMapControl(new Array("search"),false);map.addControl(main.searchMapControl,new google.maps.ControlPosition(G_ANCHOR_TOP_RIGHT,new google.maps.Size(10,67)));var searchTab=new Element('UL',{CLASS:'right_box_tabs',ID:'searchBoxTabs'});Element.insert(searchTab,'<LI CLASS="a" ID="tab_searchBox_items"></LI>');Element.insert('boxRightSearch',searchTab);}$('search').update("");$('tab_searchBox_items').update(main.l.texts.header_search+" | "+jd.num_results+" "+main.l.texts.header_results);main.gui.base.updateRightBoxHeights();var buttonUpdate="<INPUT TYPE=\"submit\" OnClick='main.gui.base.window.showSearch()' VALUE=\""+main.l.buttons.b_edit+"\" CLASS=\"button\" STYLE=\"background-image: url(./inc/bilder/icons/PNG/edit.png)\">";var buttonDelete="<INPUT TYPE=\"submit\" OnClick='main.load.delSearch()' VALUE=\""+main.l.buttons.b_close+"\" CLASS=\"button\" STYLE=\"background-image: url(./inc/bilder/icons/PNG/delete.png)\">";$('search').insert(buttonUpdate);$('search').insert(buttonDelete);if(jd.type=="user"){jd.items.each(function(data){$('search').appendChild(main.gui.base.generateUserData(data));});}else{jd.items.each(function(data){$('search').appendChild(main.gui.base.generateLocationData(data));});}}}});},delSearch:function(reset){map.removeControl(main.searchMapControl);main.searchMapControl=null;main.search=null;if(reset!=false){$('boxRightActions').show();$('boxRightEvents').show();}},toogleOnlineItems:function(type){this.delSearch(false);if(this.userOnlineItemType&&type!=this.userOnlineItemType){this.hideOnlineItems();$('main_user_online_button').removeClassName('up');$('main_friends_online_button').removeClassName('up');}if(!main.userOnlineMapControl){this.showOnlineItems(type);this.userOnlineItemType=type;$('main_'+type+'_online_button').addClassName('up');}else{this.hideOnlineItems();this.userOnlineItemType=false;$('main_'+type+'_online_button').removeClassName('up');}},showOnlineItems:function(type){this.hideOnlineItems(false);$('boxRightActions').hide();$('boxRightEvents').hide();main.gui.base.removeContent();main.userOnlineMapControl=new DivMapControl(new Array("online"),false);map.addControl(main.userOnlineMapControl,new google.maps.ControlPosition(G_ANCHOR_TOP_RIGHT,new google.maps.Size(10,67)));var onlineTab=new Element('UL',{CLASS:'right_box_tabs',ID:'onlineBoxTabs'});Element.insert(onlineTab,'<LI CLASS="a" ID="tab_onlineBox_user">'+main.l.texts.header_online+'</LI>');Element.insert('boxRightOnline',onlineTab);$('online').update("");$('main_'+type+'_online_link').addClassName('active');main.gui.base.updateRightBoxHeights();var buttonUpdate="<INPUT TYPE=\"submit\" OnClick=\"main.load.showOnlineItems('"+type+"')\" VALUE=\""+main.l.buttons.b_reload+"\" CLASS=\"button\" STYLE=\"background-image: url(./inc/bilder/icons/PNG/reload.png)\">";var buttonDelete="<INPUT TYPE=\"submit\" OnClick=\"main.load.hideOnlineItems()\" VALUE=\""+main.l.buttons.b_close+"\" CLASS=\"button\" STYLE=\"background-image: url(./inc/bilder/icons/PNG/delete.png)\">";$('online').insert(buttonUpdate);$('online').insert(buttonDelete);new Ajax.Request(index,{method:'get',parameters:{f:'showOnlineItems',s:session,type:type},onSuccess:function(transport){var jd=transport.responseJSON;if(type=="user")$('tab_onlineBox_user').update(main.l.texts.header_online+" "+jd.num_results+" "+main.l.texts.header_online_user);else $('tab_onlineBox_user').update(main.l.texts.header_online+" "+jd.num_results+" "+main.l.texts.header_online_friends);jd.items.each(function(data){$('online').appendChild(main.gui.base.generateUserData(data));});}});},hideOnlineItems:function(reset){map.removeControl(main.userOnlineMapControl);main.userOnlineMapControl=false;$('main_user_online_link').removeClassName('active');$('main_friends_online_link').removeClassName('active');if(reset!=false){$('boxRightActions').show();$('boxRightEvents').show();main.gui.base.updateRightBoxHeights();}},delMapFilterItem:function(i,type){if(type){var searches=main.activeSearches.get(type);searches.splice(i,1);if(searches.length==0)main.activeSearches.unset(type);else main.activeSearches.set(type,searches);}if(main.activeSearches.values().length==0|| !type){main.activeSearches=new Hash();}new Ajax.Request(index,{method:'get',parameters:{f:'setSearchFilter',s:session,data:main.activeSearches.toJSON()},onSuccess:function(transport){$('search_active').update(transport.responseJSON.code.searchItems);main.load.loadMarker(true);}});if(main.debug)console.debug(main.activeSearches.toJSON());}});