
To.api.Movie={getInfo:function(m,s,f,c){this._request({method:'getInfo',movie_id:m},s,f,c);},getScheduledMovieTheaters:function(m,site_id,s,f,c){this._request({method:'getScheduledMovieTheaters',movie_id:m,site_id:site_id},s,f,c);},_request:function(p,s,f,c){Ext.Ajax.request({url:'/api/ajax/movie/',method:'GET',params:p,success:s,failure:f,scope:c});}};To.movie.Map=function(config){To.movie.Map.superclass.constructor.call(this,config);this.on('load',this._onMapLoad,this);};Ext.extend(To.movie.Map,To.Map,{_onMapLoad:function(){this._markers=new To.MapMarkerManager(this);To.api.Movie.getScheduledMovieTheaters(this.movie_id,this.site_id,this._onSuccess,this._onFailure,this);},_onSuccess:function(r){r=Ext.decode(r.responseText).response;for(var i=0,l=r.length;i<l;i++){var d=r[i];this._markers.createMarker(new GLatLng(d.latitude,d.longitude),{icon:To.MapMarker.createLocationIcon(d),tooltip:d.name,infoUrl:'/ajax/mapinfo/movietheater/location_id/'+d.location_id},d.location_id);}},_onFailure:function(r){To.util.Growl.error('Unable to load map markers');}});To.manager.Movie={movie_id:0,site_id:0,photo_id:null,video_uri:null,_vote:null,_form:null,_tabs:null,initialize:function(config){Ext.apply(this,config);this._initTrailer();this._initVotes();this._initComments();this._initLiked();this._initMap();},_onVoteToggle:function(e){e.stopEvent();var b=Ext.get('to_vote_toggle');if(b.hasClass('hide')){this._vote.hide();b.removeClass('hide');}else{this._vote.show();b.addClass('hide');}},_onVoteChange:function(o,v){if(v&&v.general!==undefined){var e=Ext.get('to_vote_general');if(e){e.setStyle('width',(v.general*20)+'%');}}},_onFormOpen:function(){this._tabs.collapse();this._form.open();},_onFormClose:function(){this._form.close();this._tabs.expand();},_onFormSuccess:function(form){this._tabs.showTab('to_tab_all');this._tabs.reloadComments();this._onFormClose();},_onCommentRemove:function(comment){if(this._form!==null){this._form.reset();}},_initTrailer:function(){if(this.video_uri){var e=Ext.get('to_movie_trailer');if(e){var p=new SWFObject("/static/flash/player/player.swf","to_movie_trailer_player","300","250","9","#FFFFFF");p.addParam("allowfullscreen","true");p.addParam("allowscriptaccess","always");p.addParam("flashvars","type=video&file="+encodeURIComponent(this.video_uri)+"&skin=/static/flash/player/kleur.swf"+(this.photo_id?"&autostart=true":""));p.write("to_movie_trailer");}}},_initVotes:function(){var c=Ext.get('to_vote');if(c){this._vote=new To.ui.OverlayVoteEdit({container:c,resource_type:'MOVIE',resource_id:this.movie_id,url:'/api/ajax/movie/movie_id/'+this.movie_id,fields:['general','emotion','effects','entertainment','plot','soundtrack'],listeners:{change:this._onVoteChange,scope:this}});c=Ext.get('to_vote_toggle');if(c){c.on('click',this._onVoteToggle,this);}
c=Ext.get('to_movie_toolbar');if(c){c.on('click',this._onVoteToggle,this);}}},_initComments:function(){var c;c=Ext.get('to_movie_comment');if(c!==null){this._form=new To.comment.Form({resource_type:'MOVIE',resource_id:this.movie_id,container:c,listeners:{cancel:this._onFormClose,success:this._onFormSuccess,scope:this}});}
c=Ext.get('to_comments');if(c){this._tabs=new To.comment.Tabs({container:c,resource_type:'MOVIE',resource_id:this.movie_id,listeners:{commentadd:this._onFormOpen,commentedit:this._onFormOpen,commentremove:this._onCommentRemove,scope:this}});}},_initLiked:function(){var c=Ext.get('to_liked');if(c){var l=new To.ui.ExpandableGallery({container:c,url:'/ajax/movie/liked',params:{movie_id:this.movie_id}});}},_initMap:function(){var c=Ext.get('to_movie_map');if(c){var m=new To.movie.Map({container:Ext.get('to_movie_map_google'),lat:this.map_latitude,lng:this.map_longitude,zoom:this.map_zoom,source:this.map_source,movie_id:this.movie_id,site_id:this.site_id});var e=new To.MapExpandable({container:c,map:m});}}};To.manager.Movies={_buttons:null,initialize:function(config){Ext.apply(this,config);this._initSelector();this._initSearch();this._initComments();To.Loader.loadGoogleMaps();To.map.GeocoderUtility.setConfig({type:this.map_geocoder,suffix:this.map_geocoder_suffix});},_onButtonClick:function(g,b){var a=b.getAnchor();if(a){var n=To.History.getHash(a.dom.href);this._switchGui(n);}},_onCinemaSearchReset:function(s){this._searchCinema({});},_onCinemaSearchGeocode:function(s,c,ps){if(ps===null||ps.length===0){s=s.getSearch();if(s){this._searchCinema({search:s});}}else if(ps.length===1){var p=ps[0];this._searchCinema({latitude:p.getLatitude(),longitude:p.getLongitude()});}},_onCinemaSearchSuggestion:function(s,p){this._searchCinema({latitude:p.getLatitude(),longitude:p.getLongitude()});},_onCinemaSearchSuccess:function(r){r=Ext.decode(r.responseText);if(r.html){Ext.DomHelper.overwrite(Ext.get('to_cinema_container'),r.html);}},_onCinemaSearchFailure:function(r){To.util.Growl.error('Unable to search movie theaters.');},_onMovieSearchSubmit:function(s,q){this._searchMovie({search:q});},_onMovieSearchReset:function(s){this._searchMovie({});},_onMovieSearchSuccess:function(r){r=Ext.decode(r.responseText);if(r.html){Ext.DomHelper.overwrite(Ext.get('to_movies_container'),r.html);}},_onMovieSearchFailure:function(r){To.util.Growl.error('Unable to search movie theaters.');},_initSelector:function(){var c=Ext.get('to_selector');if(c){var b=To.ui.ButtonGroupBuilder.buildFromList(c);b.on('click',this._onButtonClick,this);this._buttons=b;}},_initSearch:function(){var s;s=new To.Search({container:Ext.get('to_movies_search'),listeners:{submit:this._onMovieSearchSubmit,reset:this._onMovieSearchReset,scope:this}});s=new To.map.Search({container:Ext.get('to_cinema_search'),listeners:{reset:this._onCinemaSearchReset,geocode:this._onCinemaSearchGeocode,suggestion:this._onCinemaSearchSuggestion,scope:this}});},_initComments:function(){var c=Ext.get('to_comments_history');if(c){var h=new To.GrowableSimple({container:c,url:'/ajax/movies/comments/',start:10,limit:10});}},_searchMovie:function(params){Ext.Ajax.request({url:'/ajax/movies/search',method:'GET',params:params,scope:this,success:this._onMovieSearchSuccess,failure:this._onMovieSearchFailure});},_searchCinema:function(params){Ext.Ajax.request({url:'/ajax/movietheaters/search',method:'GET',params:params,scope:this,success:this._onCinemaSearchSuccess,failure:this._onCinemaSearchFailure});},_switchGui:function(n){var s=n;var h=(n=='movies'?'cinema':'movies');Ext.get('to_'+h+'_title').setVisibilityMode(Ext.Element.DISPLAY).hide();Ext.get('to_'+s+'_title').setVisibilityMode(Ext.Element.DISPLAY).show();Ext.get('to_'+h+'_search').setVisibilityMode(Ext.Element.DISPLAY).hide();Ext.get('to_'+s+'_search').setVisibilityMode(Ext.Element.DISPLAY).show();Ext.get('to_'+h+'_container').setVisibilityMode(Ext.Element.DISPLAY).hide();Ext.get('to_'+s+'_container').setVisibilityMode(Ext.Element.DISPLAY).show();}};To.manager.MovieTheater={location_id:0,location_name:'',latitude:null,longitude:null,_vote:null,initialize:function(config){Ext.apply(this,config);this._initVote();this._initMap();},_onVoteToggle:function(e){e.stopEvent();var b=Ext.get('to_vote_toggle');if(b.hasClass('hide')){this._vote.hide();b.removeClass('hide');}else{this._vote.show();b.addClass('hide');}},_onVoteChange:function(o,v){if(v&&v.general!==undefined){var e=Ext.get('to_vote_general');if(e){e.setStyle('width',(v.general*20)+'%');}}},_initVote:function(){var c=Ext.get('to_vote');if(c){this._vote=new To.ui.OverlayVoteEdit({container:c,resource_type:'LOCATION',resource_id:this.location_id,url:'/api/ajax/movietheater/location_id/'+this.location_id,fields:['general','screens','comfort','audio','parking'],listeners:{change:this._onVoteChange,scope:this}});c=Ext.get('to_vote_toggle');if(c){c.on('click',this._onVoteToggle,this);}
c=Ext.get('to_cinema_toolbar');if(c){c.on('click',this._onVoteToggle,this);}}},_initMap:function(){var e=Ext.get('to_map');if(e){this.mapExpandable=new To.MapExpandable({container:e,map:new To.location.Map({container:Ext.get('to_map_google'),location_id:this.location_id,location_name:this.location_name,location_icon:'cinema',lat:this.latitude,lng:this.longitude,zoom:17,source:this.map_source})});}}};