if(!Array.indexOf){Array.prototype.indexOf=function(c){for(var b=0;b<this.length;b++){if(this[b]==c){return b;}}return -1;};}function isValidLat(b){return(typeof b=="number"&&b>=-90&&b<=90);}function isValidLon(b){return(typeof b=="number"&&b>=-180&&b<=180);}function isFloat(b){return b===+b&&b!==(b|0);}function isInteger(b){return b===+b&&b===(b|0);}function isValidEmail(b){return(typeof b==="string"&&b.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i));}function isValidPassword(b){return(typeof b=="string"&&b.length>4);}function checked_str_id(b){if(!b){return"";}if(isInteger(b)){return b+"";}if(isFloat(b)){return(b|0)+"";}return b;}function checked_int_id(b){if(typeof b==="number"){if(isInteger(b)){return b;}return(b|0);}if(typeof b==="string"){return parseInt(b,10);}return null;}function bool_from_item(b){if(typeof b==="boolean"){return b;}if(typeof b==="number"){return b!==0;}if(typeof b==="string"){return b.match(/(true|1)/i)!==null;}return b=="true";}if(typeof String.prototype.trim!=="function"){String.prototype.trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};}function debug_log(b){if(window.console){window.console.log(b);}}function pad2(b){return(b<10?"0":"")+b;}function to_mmss(b){return pad2(Math.floor(b/60))+":"+pad2(Math.round(b%60));}function deleteAllCookies(){var f=document.cookie.split(";");for(var e=0;e<f.length;e++){var c=f[e];var g=c.indexOf("=");var b=g>-1?c.substr(0,g):c;document.cookie=b+"=;expires=Thu, 01 Jan 1970 00:00:00 GMT";}page.explore.clearStoredFilters();}var ga_recordPage=function(b){_gaq.push(["_trackPageview",b]);};var ga_vars={slots:{registered:1},scope:{VISITOR:1,SESSION:2,PAGE:3}};var ga_setCustomVariable=function(c,b,f,e){_gaq.push(["_setCustomVar",c,b,f,e]);};var ga_recordEvent=function(c,f,b,e){_gaq.push(["_trackEvent",c,f,b,e]);};var ga_trackLabel=function(b){return b.title.trim()+" | "+b.artist.trim()+" | "+b._id;};var ga_stationLabel=function(b){if((typeof b.stationId==="undefined")||(b.stationId===null)){return b.seed+" | seeded";}return b.name+" | "+b.stationId;};(function(){this.Model=function Model(eventTypes){if(eventTypes){this.eventTypes=eventTypes;}else{this.eventTypes=[];}this.eventHandlers={};this.eventHandlersOnce={};this.addEventHandler=function(eventType,handler){if(!(eventType in this.eventHandlers)){if(this.eventTypes.indexOf(eventType)<0){this.eventTypes[this.eventTypes.length]=eventType;}this.eventHandlers[eventType]=[];}var handlers=this.eventHandlers[eventType];for(var i=0,nd=handlers.length;i<nd;i++){if(handler===handlers[i]){return;}}handlers[handlers.length]=handler;};this.addEventHandlerOnce=function(eventType,handler){var once_handlers=this.eventHandlersOnce[eventType];if(typeof once_handers==="undefined"){this.eventHandlersOnce[eventType]=once_handlers={};once_handlers[handler]=handler;this.addEventHandler(eventType,handler);return;}var old_handler=once_handlers[handler];if(typeof old_handler!=="undefined"){return;}once_handlers.push(handler);this.addEventHandler(eventType,handler);};this.fireEvent=function(eventType,params1,params2){if(eventType in this.eventHandlers){var handlers=this.eventHandlers[eventType];var n_handlers=handlers.length;var once_handlers=this.eventHandlersOnce[eventType];if(typeof once_handlers==="undefined"){once_handlers={};}var handler=null;var i=0;while(i<n_handlers){handler=handlers[i];handler(params1,params2);if(typeof once_handlers[handler]!=="undefined"){delete once_handlers[handler];handlers.splice(i,1);n_handlers--;}i++;}}var other_type=null;if(eventType.match(/_error$/)){other_type=eventType.slice(0,-6);}else{other_type=eventType+"_error";}if(other_type in this.eventHandlers){delete this.eventHandlersOnce[other_type];this.eventHandlersOnce[other_type]={};}};return this;};this.Model.prototype.post=function(url,params,success,error,settings){if(!settings){settings={};}settings.type="POST";settings.url=url;settings.data=params;settings.dataType="json";settings.success=success;if(error){settings.error=function(req,status,e){var data={};data.responseText=req.responseText;try{data.response=eval("("+req.responseText+")");}catch(exc){data.response=null;}data.statusCode=req.status;error(data);};}$.ajax(settings);};this.Model.prototype.getJSON=function(url,params,success,error,settings){if(!settings){settings={};}settings.type="GET";settings.url=url;settings.data=params;settings.dataType="json";settings.success=success;if(error){settings.error=function(req,status,e){var data={};data.responseText=req.responseText;try{data.response=eval("("+req.responseText+")");}catch(e){data.response=null;}data.statusCode=req.status;error(data);};}$.ajax(settings);};this.User=function User(userId){Model.call(this);this.CALL_PATH=DOMAIN+BASE_API_PATH+"users/";this.userId=checked_int_id(userId);this.username=null;this.email=null;this.mobile=null;this.displayName=null;this.points=null;this.ownedStations=[];this.favoritedStations=[];this.favoritedPrebuiltStations=[];this.ownedStationsTable={};this.userFavoriteStationsTable={};this.allStations=[];this.likes=[];this.invitedBy=null;this.isLoggingIn=false;this.loggedIn=false;this.lat=null;this.lon=null;var self=this;this.getUserInfo=function(){if(!(self.userId===null||typeof self.userId==="undefined")){debug_log("getting User Info for userId: "+self.userId);self.getJSON(self.CALL_PATH+self.userId+"/",{},self.getUserInfo_callback);}};this.getUserInfo_callback=function(data){var coords,lat,lng;self.userInfoData=data;self.username=data.username;self.email=data.email?data.email:data.username;self.mobile=data.mobile;self.displayName=data.displayName;self.points=data.points;if((coords=data.coords)&&(lat=coords.lat)&&(lng=coords["long"])&&(isValidLat(lat)&&isValidLon(lng))){self.lat=lat;self.lon=lng;}self.fireEvent("userInfoLoaded",data);};this.getId=function(email,callback,error){if(callback===null){callback=self.getId_callback;}self.getJSON(self.CALL_PATH+"getId?jsoncallback=?",{email:email},callback,error);};this.getId_callback=function(data){self.userId=data.userId;};this.login=function(email,pw){if(self.userId===null||typeof self.userId==="undefined"){var l_pw=pw;self.getId(email,function(data){self.userId=checked_int_id(data.userId);self._loginWithId(l_pw);},self.login_error);}else{self._loginWithId(pw);}};this._loginWithId=function(pw){self.post(self.CALL_PATH+self.userId+"/login/",{userId:self.userId,password:pw},self.login_callback,self.login_error);};this.login_callback=function(data){self.loggedIn=true;self.loginData=data;if(typeof data.userId!=="undefined"){self.userId=data.userId;}self.fireEvent("loggedIn",data);};this.login_error=function(data){self.fireEvent("loginError",data);};this.create=function(email,displayName,pw){data={email:email,displayName:displayName,password:pw};if(self.invitedBy){data.invitedBy=self.invitedBy;}self.post(self.CALL_PATH+"create",data,self.create_callback,self.create_error);self.email=email;self.displayName=displayName;};this.create_callback=function(data){self.userId=data.userId;self.loggedIn=true;if(self.invitedBy){ga_recordEvent("signup user","college rep id",self.invitedBy,self.userId);}else{ga_recordEvent("signup user","new user","user id",self.userId);}self.fireEvent("created",data);};this.create_error=function(err_data){self.email=null;self.displayName=null;self.fireEvent("createError",err_data);};this.getStations=function(){self.getJSON(self.CALL_PATH+self.userId+"/stations/?jsoncallback=?",{},self.getStations_callback,null,{cache:false});};this.getStations_callback=function(data){var uo=data.userOwnedStations,uf=data.userFavoritedStations,up=data.userFavoritedPrebuiltStations,sits=self.userFavoriteStationsTable={},stn=null,so=self.ownedStations=[],sf=self.favoritedStations=[],sp=self.favoritedPrebuiltStations=[],als=self.allStations=[],stt=self.ownedStationsTable={},d=null;if(uo){for(var i=0,oe=uo.length;i<oe;i++){stn=new Station().buildFromData(uo[i]);stn.isMy=true;so.userName=self.displayName;so.push(stn);als.push(stn);stt[stn.stationId]=stn;}}if(uf){for(var j=0,fe=uf.length;j<fe;j++){d=uf[j];stn=new Station().buildFromData(d);stn.isFavorite=true;sf.push(stn);als.push(stn);sits[stn.stationId]=stn;}}if(up){for(var k=0,pe=up.length;k<pe;k++){d=up[k];stn=new Station().buildFromData(d);stn.isFavorite=true;stn.isPrebuilt=true;als.push(stn);sp.push(stn);sits[stn.stationId]=stn;}}als.sort(function(s1,s2){var n1=s1.name,n2=s2.name;if(n1<n2){return -1;}if(n1>n2){return 1;}return 0;});self.fireEvent("stationsLoaded",data);};this.getPlayHistory=function(){self.getJSON(self.CALL_PATH+self.userId+"/history/?jsoncallback=?",{},self.getPlayHistory_callback,self.getPlayHistory_errback,{cache:false});};this.getPlayHistory_callback=function(data){self.fireEvent("playHistoryLoaded",data);};this.getPlayHistory_errback=function(err_data){self.fireEvent("playHistoryLoaded_error",err_data);};this.getLastSongPlayed=function(){self.getJSON(self.CALL_PATH+self.userId+"/lastSongPlayed",{},self.getLastSongPlayed_callback,self.getLastSongPlayed_errback,{cache:false});};this.getLastSongPlayed_callback=function(data){self.fireEvent("getLastSongPlayed",data);};this.getLastSongPlayed_errback=function(err_data){debug_log("ERROR getting last song played: "+err_data.statusCode+": "+((err_data.response&&err_data.response.error)?err_data.response.error:"unknown"));self.fireEvent("getLastSongPlayed_error",err_data);};this.validateSession=function(callback){$.getJSON(this.CALL_PATH+this.userId+"/validateSession/?jsoncallback=?",{},callback);};this.getPirateName=function(callback){$.getJSON(this.CALL_PATH+"getPirateName?jsoncallback=?",{id:this.userId},callback);};this.getMessages=function(){if(!(self.userId===null||typeof self.userId==="undefined")){$.getJSON(self.CALL_PATH+self.userId+"/messages/",{},self.getMessages_callback);}};this.getMessages_callback=function(data){self.messages=data.wrapper;self.fireEvent("loadedMessages",self.messages);};this.markAsRead=function(){for(var i=0,ii=self.messages.length;i<ii;i++){this.post(this.CALL_PATH+self.userId+"/messages/read/",{_id:self.messages[i]._id},self.markAsRead_callback,self.markAsRead_error);}self.messages.length=0;};this.markAsRead_callback=function(data){self.fireEvent("markedAsRead",data);};this.markAsRead_error=function(data){self.fireEvent("markedAsRead_error",data);};this.logout=function(){$.post(self.CALL_PATH+self.userId+"/logout",{},self.logout_callback).error(self.logout_callback);};this.logout_callback=function(){self.loggedIn=false;self.userId=null;self.fireEvent("loggedOut",self);};this.edit=function(){var params={displayName:self.displayName};if(isValidLat(self.lat)&&isValidLon(self.lon)){params.lat=self.lat;params["long"]=self.lon;}$.post(self.CALL_PATH+self.userId+"/edit",params,self.edit_callback).error(self.edit_errback);};this.edit_callback=function(data){var coords,lat,lng;self.displayName=data.displayName;if((coords=data.coords)&&(lat=coords.lat)&&(lng=coords["long"])&&(isValidLat(lat)&&isValidLon(lng))){self.lat=lat;self.lon=lng;}self.fireEvent("edited",self);};this.edit_errback=function(req,status,err){self.fireEvent("edited_error",{req:req,status:status,err:err});};this.saveCurrentLocation=function(lat,lng){var params;if(!(isValidLat(lat)&&isValidLon(lng))){debug_log("saveCurrentLocation: lat, lng invalid: ("+lat+", "+lng+")");return;}debug_log("User saving new current location: ("+lat+", "+lng+")");self.lat=lat;self.lon=lng;params={lat:lat,"long":lng};$.post(self.CALL_PATH+self.userId+"/edit",params,self.saveCurrentLocation_callback).error(self.saveCurrentLocation_errback);};this.saveCurrentLocation_callback=function(new_info){var coords,lat,lng;if(new_info.displayName){self.displayName=new_info.displayName;}if((coords=new_info.coords)&&(lat=coords.lat)&&(lng=coords["long"])&&(isValidLat(lat)&&isValidLon(lng))){self.lat=lat;self.lon=lng;}self.fireEvent("saveCurrentLocation",self);};this.saveCurrentLocation_errback=function(req,status,err){self.fireEvent("saveCurrentLocation_error",{req:req,status:status,err:err});};this.hasPrebuiltFavorited=function(stationId){return(self.userFavoriteStationsTable[stationId]?true:false);};this.hasStationFavorited=function(stationId){return(self.userFavoriteStationsTable[stationId]?true:false);};this.ownsStation=function(stationId){if(typeof stationId=="Station"){return stationId.isOwned(self.userId);}return(self.ownedStationsTable[stationId]?true:false);};this.getOwnedStation=function(stationId){return self.ownedStationsTable[stationId];};this.getStation=function(stationId){var station=self.ownedStationsTable[stationId];if(!station){station=self.userFavoriteStationsTable[stationId];}return station;};this.getLikes=function(){$.getJSON(self.CALL_PATH+self.userId+"/likes",{},self.getLikes_callback);};this.getLikes_callback=function(data){self.likes=data.wrapper;};this.trackLiked=function(oid){for(var i=0,ii=self.likes.length;i<ii;i++){if(self.likes[i].toString().trim()==oid.trim()){return true;}}return false;};this.resetPassword=function(username){$.post(self.CALL_PATH+"reset/",{username:username},self.resetPassword_callback).error(self.resetPassword_errback);};this.resetPassword_callback=function(data){self.fireEvent("passwordResetRequested",data);};this.resetPassword_errback=function(req,status,err){self.fireEvent("passwordResetRequested_error",{req:req,status:status,err:err});};this.confirmPasswordReset=function(username,token,newPassword){$.post(self.CALL_PATH+"reset/confirm/",{username:username,token:token,password:newPassword},self.confirmPasswordReset_callback).error(self.confirmPasswordReset_errback);};this.confirmPasswordReset_callback=function(data){self.fireEvent("passwordResetConfirmed",data);};this.confirmPasswordReset_errback=function(req,status,err){self.fireEvent("passwordResetConfirmed_error",{req:req,status:status,err:err});};return this;};this.User.prototype=new this.Model();this.User.prototype.constructor=this.User;this.Station=function Station(stationId,name,userId,seed,complexSeed,image_url,lat,lon,tagString,tagList,isPublic,isPopular,isTrending,isNew){Model.call(this);this.CALL_PATH=DOMAIN+BASE_API_PATH+"stations/";this.stationId=checked_str_id(stationId);this.tempStationId=null;this.name=name;this.userName="";this.userId=checked_int_id(userId);this.seed=seed;this.complexSeed=complexSeed;this.image_url=image_url;this.tagString=tagString;this.tagList=tagList;this.isPublic=isPublic;this.isFavorite=false;this.lat=lat;this.lon=lon;this.hasCoordinate=(isValidLat(lat)&&isValidLon(lon));this.isPrebuilt=false;this.isTemporary=false;this.isFavorite=false;this.isPopular=isPopular?true:false;this.isTrending=isTrending?true:false;this.isNew=isNew?true:false;this.isMy=false;this.skips=[];var self=this;this.buildFromData=function(data){self.stationId=checked_str_id(data.stationId?data.stationId:data.id);self.tempStationId=data.tempId;self.name=data.name?data.name.trim():"";self.userName=data.userName;self.userId=checked_int_id(data.userId);self.seed=data.seed;self.complexSeed=data.complexSeed;self.isTemporary=false;self.lat=data.lat;self.lon=data["long"];self.hasCoordinate=(isValidLat(self.lat)&&isValidLon(self.lon));self.image_url=data.image_url;self.tagString=data.tags?data.tags:"";self.tagList=data.tagList?data.tagList:[];self.isPublic=data["public"]?true:false;self.isPopular=data.isPopular?true:false;self.isTrending=data.isTrending?true:false;self.isNew=data.isNew?true:false;self.isMy=data.isMy?true:(page.currentUser.loggedIn&&self.userId==page.currentUser.userId?true:false);return self;};this.getStationInfo=function(){if(self.isTemporary){self.fireEvent("infoLoaded",null,self);return;}var params={isPrebuilt:self.isPrebuilt?"true":"false"};self.getJSON(self.CALL_PATH+self.stationId,params,self.getStationInfo_callback);};this.getStationInfo_callback=function(data){self.buildFromData(data);self.fireEvent("infoLoaded",data,self);};this.create=function(name,userId,seed,isPublic,lat,lon,tagString){var pobj={name:name,userId:userId,seed:seed,"public":isPublic,tags:typeof tagString==="string"?tagString:""};if(isValidLat(lat)&&isValidLon(lon)){pobj.lat=lat;pobj["long"]=lon;}var x=$.post(self.CALL_PATH+"create",pobj,self.create_callback);x.error(self.create_errback);};this.create_callback=function(data){self.buildFromData(data);self.fireEvent("created",data,self);};this.create_errback=function(req,status,err){self.fireEvent("created_error",{req:req,status:status,err:err});};this.edit=function(){var seed=self.complexSeed;if(!seed){seed=self.seed;}var pobj={name:self.name,userId:self.userId,seed:seed,"public":self.isPublic,tags:typeof self.tagString==="string"?self.tagString:""};if(isValidLat(self.lat)&&isValidLon(self.lon)){pobj.lat=self.lat;pobj["long"]=self.lon;}$.post(self.CALL_PATH+self.stationId+"/edit",pobj,self.edit_callback).error(self.edit_errback);};this.edit_callback=function(data){self.fireEvent("edited",data);};this.edit_errback=function(req,status,err){self.fireEvent("edited_error",{req:req,status:status,err:err});};this.deleteStation=function(){$.post(self.CALL_PATH+self.stationId+"/delete",{},self.delete_callback);};this.delete_callback=function(data){self.fireEvent("deleted",data);};this.delete_errback=function(req,status,err){self.fireEvent("deleted_error",{req:req,status:status,err:err});};this.favorite=function(){if(self.isTemporary){debug_log("WARNING: station.favorite() for a Temporary station with seed: "+self.seed);return;}var params={},url="";if(self.isPrebuilt){url=self.CALL_PATH+"prebuilt/favorite";params.oid=self.stationId;}else{url=self.CALL_PATH+self.stationId+"/favorite";}self.isFavorite=true;$.post(url,params,self.favorite_callback).error(self.favorite_errback);};this.favorite_callback=function(data){self.fireEvent("favorited",data,self);};this.favorite_errback=function(req,status,err){self.isFavorite=false;self.fireEvent("favorited_error",{req:req,status:status,err:err},self);};this.unfavorite=function(){var params={},url="";if(self.isPrebuilt){url=self.CALL_PATH+"prebuilt/unfavorite";params.oid=self.stationId;}else{url=self.CALL_PATH+self.stationId+"/unfavorite";}self.isFavorite=false;$.post(url,params,self.unfavorite_callback).error(self.unfavorite_errback);};this.unfavorite_callback=function(data){self.fireEvent("unfavorited",data,self);};this.unfavorite_errback=function(req,status,err){self.isFavorite=true;self.fireEvent("unfavorited_error",{req:req,status:status,err:err},self);};this.isOwned=function(userId){return(this.userId==userId);};this.shareUrl=function(){var path=DOMAIN+"/~/";if(self.isTemporary){path+="station/seed/"+escape(self.seed);}else{if(self.isPrebuilt){path+="station/prebuilt/"+self.stationId+"/"+escape(self.name?self.name.trim():"Prebuilt");}else{path+="station/id/"+self.stationId;}}return path;};this.addSkip=function(){self.skips.push(Math.floor(((new Date()).getTime())/1000));};this.checkSkips=function(){var cur_tm=Math.ceil(((new Date()).getTime())/1000),sks=self.skips,n_sks=sks.length,tm=0,df=0;while(n_sks){tm=sks[0];if((df=(cur_tm-tm))<3600){break;}sks.shift();--n_sks;}if(n_sks>=6){return 3600-df;}return 0;};return this;};this.Station.prototype=new this.Model();this.Station.prototype.constructor=this.Station;this.Category=function Category(category_data){Model.call(this);this.CALL_PATH=DOMAIN+BASE_API_PATH+"radio/";this._id=category_data._id;this.name=category_data.name;this.hasChildren=category_data.hasChildren;this.parentCategoryId=category_data.parentCategoryId;this.children=[];this.stations=[];this._stations_map={};var self=this;this._buildStations=function(ctgy_stns){var stns=[],stns_map={},stn,obj,usr=null;if(ctgy_stns instanceof Array){if(page.currentUser.loggedIn){usr=page.currentUser;}for(var i=0,nd=ctgy_stns.length;i<nd;i++){obj=ctgy_stns[i];if(!obj.id&&obj._id){obj.id=obj.id;}obj.stationId=obj.id;stn=new Station().buildFromData(obj);stn.isPrebuilt=true;stn.isFavorite=(usr&&usr.hasPrebuiltFavorited(stn.stationId));stns_map[stn.stationId]=stn;stns.push(stn);}}self.stations=stns;self._stations_map=stns_map;};this._buildStations(category_data.stns);this.getChildren=function(){if(!self.hasChildren){return;}self.getJSON(self.CALL_PATH+"categories/",{oid:self._id,hide_stations:true},self.getChildren_callback,self.getChildren_errback);};this.getChildren_callback=function(data){var d_children=data.wrapper,cn=[],itm,stn;for(var i=0,nd=d_children.length;i<nd;i++){itm=d_children[i];cn.push(new Category(itm));}self.children=cn;self.fireEvent("getChildren",cn);};this.getChildren_errback=function(err_data){self.fireEvent("getChildren_error",err_data);};this.getStations=function(){self.getJSON(self.CALL_PATH+"stations/",{oid:self._id},self.getStations_callback,self.getStations_errback);};this.getStations_callback=function(data){var ctgy=data.wrapper;self._buildStations(ctgy.stns);self.fireEvent("getStations",self.stations);};this.getStations_errback=function(err_data){self.fireEvent("getStations_error",err_data);};this.getStation=function(station_id){var stn=self._stations_map[station_id],children=self.children;if(stn){return stn;}if(children){for(var i=0,nd=children.length;i<nd;i++){stn=children[i].getStation(station_id);if(stn){return stn;}}}return null;};this.getSubCategory=function(category_id){var children=self.children,ctgy;for(var i=0,nd=children.length;i<nd;i++){ctgy=children[i];if(ctgy._id==category_id){return ctgy;}}return null;};return this;};this.Category.prototype=new this.Model();this.Category.prototype.constructor=this.Category;})();(function(){this.RButton=function b(c,i,h,j,f,g){this.image_enabled=i;this.image_disabled=h;this.image_selected=j;this.image_hover=f;this.enabled=true;this.selected=false;this.obj=$(c);this.on_click=typeof g=="function"?g:null;var e=this;$(this.obj).hover(function(){if(e.enabled&&!e.selected){$(e.obj).attr("src",e.image_hover);}},function(){if(e.enabled&&!e.selected){$(e.obj).attr("src",e.image_enabled);}else{if(e.selected){$(e.obj).attr("src",e.image_selected);}}});$(this.obj).hover(function(k){$(e.obj).attr("src",e.image_hover);},function(k){if(e.selected){$(e.obj).attr("src",e.image_selected);}else{if(e.enabled){$(e.obj).attr("src",e.image_enabled);}else{$(e.obj).attr("src",e.image_disabled);}}});this.setEnabled=function(k){if(k){if(!e.selected){$(e.obj).attr("src",e.image_enabled);}e.enabled=true;}else{$(e.obj).attr("src",e.image_disabled);e.enabled=false;}};this.setSelected=function(k){if(k){$(e.obj).attr("src",e.image_selected);e.selected=true;return;}e.selected=false;if(e.enabled){$(e.obj).attr("src",e.image_enabled);}else{$(e.obj).attr("src",e.image_disabled);}};this.toggleSelected=function(){e.setSelected(!e.selected);};return this;};})();var DOMAIN="http://"+location.hostname;var DEBUG=false;var LIMITED_SKIPS=false;var BASE_API_PATH="/api/1.0/";var API_URL=DOMAIN+BASE_API_PATH;var FB_APP_ID="275769162461006";var RECAPTCHA_PUBLIC_KEY="6Lc3L8oSAAAAAJzqgqY_G9HM-rfzwj-ISqu4a3zi";var Player=function Player(){Model.call(this);this.minPreloadSecs=30;this.seedFromServer=true;this.ready=false;this.protocol="http";this.is_64k=false;this.playingStation=null;this.current_track=null;this.next_track=null;this.isTrackLogged=false;this.isPreloading=false;this.isSkipping=false;this.player=null;this.MAX_RESEED_ATTEMPTS=10;this.reseedAttempts=0;this.timedRetry=null;var b=this;this.initPlayer=function(c){b.useSafariLionHack=($.browser.safari&&(navigator.userAgent.search(/OS X 10_7/)>0));b.player=$(c);b.player.jPlayer({ready:function(){b.ready=true;b.swfReady();},cssSelectorAncestor:"#player-icons",swfPath:"jplayer/Jplayer.swf",wmode:"window",solution:"html,flash",supplied:"mp3,m4a",preload:"auto",volume:0.6,play:function(e){b.logPlay(b.current_track);},pause:function(e){},ended:function(e){debug_log("calling next from current_track after ended event");b.current_track=null;b.next();},error:function(e){var f=e.jPlayer.error;debug_log("Player ERROR: type: "+f.type+" context: "+f.context+" message: "+f.message+" hint: "+f.hint);var g=null;if(f.type===$.jPlayer.error.FLASH_DISABLED){g='You have Flash installed but it is not enabled. The Player needs Flash to play music on this Browser.<br /><br />If you do not want to enable Flash, try a browser that supports playing MP3 using HTML5:<br /><a href="http://www.google.com/chrome" title="Chrome">Google Chrome</a><br /><a href="http://www.apple.com/safari/download/" title="Safari">Safari</a>';}else{if(f.type===$.jPlayer.error.FLASH){g='There was a problem initializing the Music Player (requires Flash on your Browser).<br /><br />If you have not installed Flash, you can get Flash <a href="http://get.adobe.com/flashplayer/" title="Get Flash">here</a>.<br /><br />If you have flash installed already try enabling Flash for this site, reinstalling it or upgrading Flash or your browser.<br /><br />That seems like a lot of work.  Why not try a HTML5 browser that does not need Flash to play?<br /><a href="http://www.google.com/chrome" title="Chrome">Google Chrome</a><br /><a href="http://www.apple.com/safari/download/" title="Safari">Safari</a>';}else{if(f.type===$.jPlayer.error.NO_SOLUTION){g='We were unable to find a method for playing MP3 in your browser.<br /><br />We have tested playback in the browsers below:<br /><a href="http://www.google.com/chrome" title="Chrome">Google Chrome</a><br /><a href="http://www.apple.com/safari/download/" title="Safari">Safari</a><br /><a href="http://www.mozilla.org/firefox/new/" title="Firefox 8+">Firefox (requires Flash)</a><br /><a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie" title="Internet Explorer 8+">Internet Explorer 8+</a>';}else{if(f.type===$.jPlayer.error.URL){b.fireEvent("loadTrackError",null,b.playingStation);b.player.jPlayer("clearMedia");b.current_track=null;b.next();}}}}if(g){$("#errormessage").html(g);$("#error-dialog-anchor").click();}},timeupdate:b.onTimer,volumechange:b.volumeChanged,verticalVolume:false});};this.dynamicSeed=function(i,h,l,m){b.cancelRetry();var c=API_URL+"seed/dynamic/";var e={protocol:this.protocol,assetCode:this.is_64k?"090":"014"};if(i){b.playingStation=i;var f=i.isPrebuilt?"prebuilt":"stationId";if(i.tempStationId){e.tempStationId=i.tempStationId;}if(i.stationId){e[f]=i.stationId;}if(i.seed){e.seed=i.seed;}}else{e.seed=h;}if(l){e.leadWith=l;}var j=function(o){if(!o){debug_log("ERROR: unable to obtain next station from server.");var k={req:{error:"Unable to connect to server.  Please try again later."},status:null,err:null};if(b.newStationLoad){b.fireEvent("loadStationError",k);}else{b.fireEvent("loadTrackError",k,b.playingStation);}return;}b.reseedAttempts=0;if(o.stationId&&!o.tempId&&(i&&i.stationId!=o.stationId)){debug_log("ERROR: dynamic seed returned different station or page station changed");}else{if(o.tempId){if(i){i.tempStationId=o.tempId;}else{i=new Station(null,h,null,h);i.tempStationId=o.tempId;i.isTemporary=true;var n=page.currentStation;n.tempStationId=o.tempId;n.name=h;n.seed=h;n.isTemporary=true;n.isPrebuilt=false;}if(page.currentUser.isLoggedIn&&i.isTemporary){i.addEventHandler("created",page.userCreatedStationCallback);i.create(i.name+" Radio",page.currentUser.userId,i.name,true,null,null,"");}b.playingStation=i;}else{if(!i){debug_log("ERROR: dynamic seed returned neither stationId nor tempId and no station");return;}}}debug_log("station: "+(i.stationId?i.stationId:i.tempStationId));b.loadTrack(o.track,m);};var g=function(k){var n="unknown";if(k){n=k.statusCode+": "+((k.response&&k.response.error)?k.response.error:"unknown");}debug_log("ERROR in dynamic seed: "+n);if(b.newStationLoad){b.fireEvent("loadStationError",k);return;}if(b.playingStation){if(k.statusCode!=400&&b.reseedAttempts<b.MAX_RESEED_ATTEMPTS){b.throttleReseed(b.playingStation,m);}else{b.fireEvent("loadTrackError",k,b.playingStation);}}else{b.fireEvent("loadStationError",k);}};b.post(c,e,j,g);};this.loadTrack=function(e,c){if(!e){debug_log("ERROR: Player.loadTrack("+e+") is empty or undefined");return;}b.isPreloading=false;b.next_track=e;if(b.current_track){debug_log("loaded next track");b.gotNextTrackInfo(e);if(c||b.isSkipping){debug_log("will play immediately: play_immediately = "+(c?"true":"false"));b.next();}}else{debug_log("no current_track: play immediately");b.next();}b.isSkipping=false;};this.next=function(){if(b.next_track){b.current_track=b.next_track;b.next_track=null;}else{if(!b.isPreloading){b.pause();b.current_track=null;b.getNextTrack(true);return;}}b.isTrackLogged=false;var e=b.current_track,f=e.location.search(/\.mp3/)>0?"mp3":"m4a",c={};c[f]=e.location;b.player.jPlayer("setMedia",c);b.player.jPlayer("play");b.logPlay(e);};this.getNextTrack=function(c){var e=b.playingStation;if(!e){debug_log("WARNING no playingStation; unable to reseed");return;}else{if(b.next_track&&!b.isSkipping){debug_log("WARNING  attempt to get next track while we have a next track");return;}}this.dynamicSeed(e,null,null,c);};this.cancelRetry=function(){try{window.clearTimeout(b.timedRetry);}catch(c){debug_log("ERROR: attempting to cancel timedRetry: "+b.timedRetry);}finally{delete b.timedRetry;b.timedRetry=null;}};this.throttleReseed=function(c,e){if(b.timedRetry){b.cancelRetry();}b.timedRetry=window.setTimeout(function(){b.reseedAttempts+=1;if(c.isTemporary){b.dynamicSeed(null,c.seed,null,e);}else{c.tempStationId=null;b.dynamicSeed(c,null,null,e);}},1000);};this.seedStation=function(e,f,g){if(b.ready&&b.playingStation){b.pause();}var c=b.playingStation instanceof Station;b.dynamicSeed(null,e,g,c);};this.playSavedStation=function(f,e,g){if(b.ready&&b.playingStation){b.pause();}var c=b.playingStation instanceof Station;b.playingStation=f;b.dynamicSeed(f,e,g,c);};this.playStation=function(e,f){if(b.ready&&b.playingStation){b.pause();}var c=b.playingStation instanceof Station;b.playingStation=e;b.dynamicSeed(e,null,f,c);};this.pause=function(){b.player.jPlayer("pause");};this.play=function(){b.player.jPlayer("play");};this.skip=function(e){var c=b.current_track;b.isSkipping=true;b.pause();if(c){b.fireEvent("skipped",c);}b.current_track=null;if(b.next_track){b.next();}else{if(!b.isPreloading){b.getNextTrack(true);}}};this.setVolume=function(c){b.player.jPlayer({volume:c});};this.getVolume=function(){return b.player.jPlayer.status.volume;};this.getCurrentTrack=function(){return b.current_track;};this.getNextTrackInfo=function(){return b.next_track;};this.stationPlaying=function(c){b.fireEvent("stationPlaying",c);};this.paused=function(c){b.fireEvent("paused",c);};this.volumeChanged=function(c){b.fireEvent("volumeChanged",c.jPlayer.status.volume);};this.logPlay=function(c){if(!b.isTrackLogged){debug_log("player.logPlay firing");b.isTrackLogged=true;b.fireEvent("logPlay",c);}};this.swfReady=function(c){b.ready=true;b.fireEvent("swfReady",c);};this.onTimer=function(e){var c=e.jPlayer.status.currentTime,f=e.jPlayer.status.duration,h=(b.current_track&&b.current_track.length)?b.current_track.length:0,g=Math.max(f,h);f=!$.isNaN(g)?g:f;if(f>0&&((f-c)<b.minPreloadSecs)){if(!(b.next_track||b.isPreloading||b.isSkipping)){b.isPreloading=true;b.getNextTrack(false);}if(b.useSafariLionHack){if((c>f)||((f-c)<1)){debug_log("Safari 10.7 hack: current playback time: "+to_mmss(c)+" duration: "+to_mmss(f));debug_log("Safari 10.7 hack: manually ending current_track on Safari-Lion");b.current_track=null;b.next();}}}b.fireEvent("onTimer",c,f);};this.gotNextTrackInfo=function(c){b.fireEvent("gotNextTrackInfo",c);};};Player.prototype=new Model();Player.prototype.constructor=Player;function stationPlaying(b){player.stationPlaying(b);}function stationFavorited(b){player.stationFavorited(b);}function playing(b){player.playing(b);}function paused(b){player.paused(b);}function logPlay(b){player.logPlay(b);}function skipped(b){player.skipped(b);}function volumeChanged(b){player.volumeChanged(b);}function finishedPlaying(b){player.finishedPlaying(b);}function swfReady(b){player.swfReady(b);}function onTimer(b){player.onTimer(b);}function gotNextTrackInfo(b){player.gotNextTrackInfo(b);}function getMovie(b){if(navigator.appName.indexOf("Microsoft")!=-1){return window[b];}else{return document[b];}}var loginRequired=function(b){var c=b;return function(){if(page.currentUser.loggedIn){return b();}else{return show_needs_login();}};};var ga_sessionListenCount=0;var ga_recordListen=function(){ga_sessionListenCount++;var b=2*ga_sessionListenCount-1;ga_recordEvent("player","listen",ga_stationLabel(page.currentStation),b);};var ga_recordFavorite=function(){ga_recordEvent("player","favorite",ga_stationLabel(page.currentStation));};var ga_sessionSkipCount=0;var ga_recordSkip=function(b){ga_sessionSkipCount++;var c=2*ga_sessionSkipCount-1;ga_recordEvent("player","skip",ga_trackLabel(b),c);};var ga_sessionLikeCount=0;var ga_recordLike=function(b){ga_sessionLikeCount++;var c=2*ga_sessionLikeCount-1;ga_recordEvent("player","like",ga_trackLabel(b),c);};var ga_sessionDislikeCount=0;var ga_recordDislike=function(b){ga_sessionDislikeCount++;var c=2*ga_sessionDislikeCount-1;ga_recordEvent("player","dislike",ga_trackLabel(b),c);};var render={};var show_spinner=function(){$(".container").hide();$("#loadingcontainer").show();return false;};var hide_spinner=function(){$("#loadingcontainer").hide();return false;};var get_error_message=function(err_data){var err_msg="";try{var err_obj=eval("("+err_data.req.responseText+")");if(err_obj&&err_obj.error){err_msg=err_obj.error;}}catch(e){}if(!err_msg){err_msg="Please try again later.";}return err_msg;};var reset_text=function(b,c){$(c).text("");};var clear_alerts=function(b){$(b+" > .alert-div").each(reset_text);};var KEY_ESC=27;var KEY_ENTER=13;var playButton=null;var pauseButton=null;var likeButton=null;var dislikeButton=null;var editStationButton=null;var toggleVolumeButton=null;var favoriteStationButton=null;var shareStationButton=null;var shareSongButton=null;var show_legend=function(){$("#legend-dialog").dialog("open");return false;};var show_standard_error=function(c,b){$("#error-dialog-standard-title").text(c);$("#error-dialog-standard-message").html(b);$("#error-dialog-standard").dialog("open");};var show_standard_warning=function(e,c,b){$("#warning-dialog-standard").dialog({title:b?b:"Warning"});$("#warning-dialog-standard-title").text(e?e:null);$("#warning-dialog-standard-message").html(c);$("#warning-dialog-standard").dialog("open");};var show_skip_warning=function(b){var c=["The mighty music man has put his foot down!<br />","We're limited to 6 skips per hour, per station.<br />","You may skip again in "+to_mmss(b)].join("");show_standard_warning(null,c,"Station Skip Limit");};var show_createAccount=function(){$("#signin-dialog").dialog("close");$("#signup-dialog").dialog("open");$("#signup-username input").focus();return false;};var show_login=function(){$("#signup-dialog").dialog("close");$("#signin-dialog").dialog("open");$("#signin-username input").focus();return false;};var show_needs_login=function(){$("#signin-dialog").dialog("open");$("#signup-dialog").dialog("close");return false;};var hideSharePopover=function(e,n){var f=$("#share-popover");if(f.data("mousein")==true){debug_log("popover data mousein == true");return false;}if(e){var c=e.offset();if(c){var m=c.left,k=c.top,b=m+e.width(),o=k+e.height(),g=f.offset(),j=g.left,h=g.top;if(!(j>=m&&j<=b&&h>=k&&h<=o)){return false;}if(n){var l=n.pageX,i=n.pageY;if(l>=m&&l<=b&&i>=k&&i<=o){return false;}}}else{debug_log("WARNING: unable to find offset from object");}}f.data("station",null);f.data("track",null);f.data("mousein",false);f.hide();return true;};var hideSharePopoverFromStationDetail=function(c){var b=$(".action_showSharePopover.share_active"),e=b?b.parent():null;if(!b){debug_log("WARNING: unable to find .action_showSharePopover.share_active");return;}if(hideSharePopover(null,c)){b.removeClass("share_active");}};var hideStationPopover=function(b){var c=$("#station-popover");c.data("station",null);hideSharePopover();c.hide();};var setupStationPopover=function(){$("#listenresultsscroll1").scroll(function(b){hideStationPopover(b);});$("#listenresultsscroll1").mouseleave(function(j){var i=j.pageX,f=j.pageY,c=$("#listenresultsscroll1"),e=c.offset(),h=e.left,g=e.top,b=h+c.width(),k=g+c.height();if(!(i>=h&&i<=b&&f>=g&&f<=k)){hideStationPopover(j);}});$("#station-popover-play").click(function(){var b=$(this).parent().data("station");if(!b){debug_log("ERROR: station-popover-play clicked with no station set");return false;}playStation(b);hideStationPopover();return false;});$("#station-popover-edit").click(function(){var b=$(this).parent().data("station");if(!b){debug_log("ERROR: station-popover-edit clicked with no station set");return false;}setupEditStation(b);hideStationPopover();ga_recordEvent("button","edit","my stations");return false;});$("#station-popover-unfavorite").click(function(){var b=$(this).parent().data("station");if(!b){debug_log("ERROR: station-popover-unfavorite clicked with no station set");return false;}setupUnfavoriteStation(b);hideStationPopover();return false;});$("#station-popover-share").click(function(){var c=$(this),b=c.parent().data("station");ga_recordEvent("button","share","my stations");if(!b){debug_log("ERROR: station-popover-share clicked with no station set");return false;}show_share_popover(c,b,null);return false;});};var configure_share_popover=function(b){var c=page.currentUser.getStation(b);if(!c){debug_log("WARNING: unable to retrieve user station for popover");return null;}var e=$("#station-popover");if(page.currentUser.ownsStation(b)){$("#station-popover-edit").show();$("#station-popover-unfavorite").hide();}else{$("#station-popover-edit").hide();$("#station-popover-unfavorite").show();}e.data("station",c);return e;};var show_station_popover=function(h){debug_log("show_station_popover called");var c=h.children("a").attr("stationId"),f=configure_share_popover(c);if(!f){return false;}var g=h.offset(),e=h.width(),b=h.height();f.css({left:g.left+e-f.width()-4,top:g.top+(b-f.height())*0.5});f.show();return false;};var setupSharePopover=function(){$("#ContentFlow_vertical .flow .item .caption").live("mouseleave",function(b){hideSharePopover($(this),b);});$("#share-popover").hover(function(b){$(this).data("mousein",true);},function(b){$(this).data("mousein",false);});$("#share-popover-email").click(function(c){var f=$("#share-popover");var e=f.data("station");if(!e){debug_log("ERROR: share-popover-email with no station");return false;}var b=f.data("track");show_share_email_dialog(e,b);return false;});$("#share-popover-facebook").click(function(c){var f=$("#share-popover");var e=f.data("station");if(!e){debug_log("ERROR: share-popover-facebook with no station");return false;}var b=f.data("track");shareOnFB(e,b);return false;});$(".action_showSharePopover").live("click",showSharePopoverFromStationDetail);$(".stationdetail-footer").live("mouseleave",function(b){if(hideSharePopover($(this),b)){$(".action_sharePopover.share_active").removeClass("share_active");}});};var show_share_popover=function(i,l,e){debug_log("show_share_popover called");var k=i.offset(),c=i.outerWidth(),m=i.outerHeight(),j=$("#share-popover");if(e){$("#share-popover-title").text("Share Song");}else{if(l){$("#share-popover-title").text("Share Station");}}j.data("station",l);j.data("track",e);j.css({left:k.left,top:k.top+m+5});if(!l){debug_log("ERROR: share-popover with no Station");return false;}var f=l.shareUrl()+(e?"?leadWith="+e._id:""),b="",g=l.name?l.name.trim():(l.seed?l.seed.trim():""),h="";if(e){b="#nowlistening "+e.artist.trim()+" - "+e.title.trim();}else{if(l.isPrebuilt){b="#nowlistening @Raditaz Station '"+g+"'";}else{if(l.isTemporary){b="#nowlistening "+g+"'s Station";}else{b="#nowlistening Station '"+g+"'";}}}h=["via=Raditaz","url="+encodeURIComponent(f),"counturl="+DOMAIN,"text="+escape(b)].join("&");$("#share-popover-twitter").attr("href","https://twitter.com/share?"+h);j.show();return false;};var showSharePopoverFromStationDetail=function(g){var h=$(this),b=h.attr("stationId"),f=b?explore.getNearbyStation(b):null,c=h.parent();if(!f){return;}h.addClass("share_active");ga_recordEvent("button","share","map");show_share_popover(h,f);};var setupUserStationsTable=function(){$("#table-my-stations > div").find("td.stations-name").each(function(b,c){$(c).click(function(){var f=$("#station-popover"),g=$(this);if(f.css("display")=="none"){show_station_popover(g);}else{var e=f.data("station");if(e&&e.stationId!=g.children("a").attr("stationId")){hideStationPopover();show_station_popover(g);}else{hideStationPopover();}}});});};var show_stations=loginRequired(function(){var b=page.currentUser;if(b.loggedIn){var e=b.allStations;var c=$("#table-my-stations > div");c.empty();c.html(render.stations({stations:e,seed_with_attr:"",tableType:"user"}));setupUserStationsTable();ga_recordPage("/MyStations");}else{show_needs_login();}return false;});var show_playHistory=function(){$("#play-history-dialog").dialog("open");var c=page.playHistory?page.playHistory:[];var b=$("#table-play-history > div");b.children("table").remove();b.html(render.history({listens:c}));if(page.currentUser.loggedIn){page.currentUser.getPlayHistory();}};var saveAccountEdits=function(){debug_log("saving account edits");var c=page.currentUser;var b=$("#account-display-name > input").val();if(b){c.displayName=b;}c.editing=true;c.edit();ga_recordPage("/EditAccount");};var setupAccountEdit=function(){$("#account-dialog .action_saveAccountEdits").click(function(){saveAccountEdits();});$("#account-reset-password").click(function(){show_passwordReset();});};var show_accountEdit=function(){var b=page.currentUser;$("#account-email").text((typeof b.email==="string"&&b.email.length)?b.email:b.username);$("#account-display-name > input").val(b.displayName?b.displayName:"");$("#account-points").text(b.points+"");$("#account-dialog").dialog("open");ga_recordPage("/Account");};var load_categories=function(){page.isLoadingCategoryTables=true;$.getJSON(API_URL+"radio/categories",{hide_stations:"true"},function(h){page.isLoadingCategoryTables=false;if(!h){debug_log("ERROR: unable to get prebuilt stations from "+API_URL+"radio/categories");show_standard_error("Communication Error","There was a problem communicating with the server while trying to get the Raditaz stations.<br />Please try again later.");return;}h=h.wrapper;var g,b;for(var e=0,j=h.length;e<j;e++){g=new Category(h[e]);b=g.name;if(b=="Top Stations"){page.topStations=g;}else{if(b=="Top Hits by Year"){page.topHitsByYear=g;}else{if(b=="2011 Hits"){page._2011Hits=g;}else{if(b=="Decades"){page.decades=g;}else{if(b=="Comedy"){page.comedy=g;}else{if(b=="Genres"){page.genres=g;}}}}}}}var f=page.pendingCategoryTables;for(var c in f){if(f[c]){f[c]();delete f[c];}}},function(){page.isLoadingCategoryTables=false;});return false;};var show_prebuilt_stations=function(f,b,c){var g=f.stations;if(g.length){if(c){c(g);}else{b.html(render.prebuiltStations({stns:g}));}return;}if(!c){c=function(h){b.html(render.prebuiltStations({stns:h}));};}function e(h){var i=get_error_message(h);show_standard_error("Getting "+f.name,"There was an error communicating with the server.<br />"+i);}f.addEventHandlerOnce("getStations",c);f.addEventHandlerOnce("getStations_error",e);f.getStations();};var show_topStations=function(){var b,c;if(page.isLoadingCategoryTables){page.pendingCategoryTables.topStations=show_topStations;return;}show_prebuilt_stations(page.topStations,$("#table-raditaz-top-stations > div"));};var show_2011Hits=function(){var b,c;if(page.isLoadingCategoryTables){page.pendingCategoryTables._2011Hits=show_2011Hits;return;}show_prebuilt_stations(page._2011Hits,$("#table-raditaz-2011-hits > div"));};var show_topHitsByYear=function(){if(page.isLoadingCategoryTables){page.pendingCategoryTables.topHitsByYear=show_topHitsByYear;return;}show_prebuilt_stations(page.topHitsByYear,$("#table-raditaz-top-hits-by-year > div"));};var show_decades=function(){if(page.isLoadingCategoryTables){page.pendingCategoryTables.decades=show_decades;return;}show_prebuilt_stations(page.decades,$("#table-raditaz-decades > div"));};var show_genres=function(){var c;if(page.isLoadingCategoryTables){page.pendingCategoryTables.genres=show_genres;return;}c=page.genres;function b(f){var g=page.comedy;if(g&&!c.getSubCategory(g._id)){f.push(page.comedy);f.sort(function(k,i){var j=k.name,h=i.name;if(j>h){return 1;}if(j<h){return -1;}return 0;});}$("#table-raditaz-genres > div").html(render.prebuiltGenres({genres:f}));}function e(f){var g=get_error_message(f);show_standard_error("Getting Genres","There was an error communicating with the server.<br />"+g);}c.addEventHandlerOnce("getChildren",b);c.addEventHandlerOnce("getChildren_error",e);c.getChildren();};var show_trendingTable=function(){var b=DOMAIN+BASE_API_PATH+"stations/trending";page.getJSON(b,"",function(h){var f=h.wrapper;if(page.trendingStations){page.trendingStations=[];}var l=page.trendingStations;var e=page.currentUser.loggedIn?page.currentUser:null;var c,j;for(var g=0,k=f.length;g<k;g++){j=f[g];c=new Station().buildFromData(j);c.isFavorite=(e&&e.hasStationFavorited(c.stationId));l.push(c);}$("#table-trending > div").html(render.stations({stations:l,seed_with_attr:'class="action_seedStationWithAttr"',tableType:"trending"}));},function(c){debug_log("getting "+b+": "+c.statusCode+": "+c.response);});ga_recordPage("/Trending");};var show_tagsTable=function(){var b=DOMAIN+BASE_API_PATH+"tags";page.getJSON(b,"",function(e){var c=e.wrapper;$("#table-tags > div").html(render.tagsList({tags:c}));},function(c){debug_log("getting "+b+": "+c.statusCode+": "+c.response);var e=get_error_message(c);show_standard_error("Getting Popular Tags","There was an error communicating with the server.<br />"+e);});ga_recordPage("/PopularTags");};var handlePasswordResetRequested=function(b){$("#password-reset-sent-message").show();};var handlePasswordResetRequestedError=function(b){var c=get_error_message(b);show_standard_error("Sending Password Reset Request","There has been an error sending you an email with the link to reset your password.<br />"+c);};var resetPassword=function(){var b=$("#password-reset-email input").val().trim();if(!isValidEmail(b)){$("#password-reset-email-error").text("Please enter a valid email address.");return false;}var c=page.currentUser;c.addEventHandlerOnce("passwordResetRequested",handlePasswordResetRequested);c.addEventHandlerOnce("passwordResetRequested_error",handlePasswordResetRequestedError);c.resetPassword(b);return false;};var show_passwordReset=function(){$("#account-dialog").dialog("close");$("#signin-dialog").dialog("close");$("#password-reset-dialog").dialog("open");ga_recordPage("/ResetPassword");return false;};var handlePasswordResetConfirmed=function(b){$("#password-reset-confirmed-message").show();};var handlePasswordResetConfirmedError=function(b){var c=get_error_message(b);show_standard_error("Resetting Your Password","There was a problem while attempting to reset your password.<br />"+c);};var confirmResetPassword=function(){var c=$("#password-reset-confirm-email > input").val().trim();var f=$("#password-reset-new-password > input").val().trim();var e=$("#password-reset-new-password2 > input").val().trim();var b=true;if(!c||!isValidEmail(c)){b=false;$("#password-reset-confirm-email-error").text("Please enter a valid email addres.");}if(!isValidPassword(f)){b=false;$("#password-reset-new-password-error").text("Please enter a password with more than four characters");}else{if(f!=e){b=false;$("#password-reset-new-password-error,#password-reset-new-password2-error").text("Passwords do not match.");}}if(!b){return false;}if(!page.resetPasswordToken){show_standard_error("Reset Password",'We are missing the token required to reset your password.<br />Please try again by starting from <a href="#pwreset" onclick="show_passwordReset();">Reset Your Password</a>');$("#password-reset-confirm-dialog").dialog("close");return false;}var g=page.currentUser;g.addEventHandlerOnce("passwordResetConfirmed",handlePasswordResetConfirmed);g.addEventHandlerOnce("passwordResetConfirmed_error",handlePasswordResetConfirmedError);g.confirmPasswordReset(c,page.resetPasswordToken,f);return false;};var show_confirmReset=function(b){if(!b){return false;}page.resetPasswordToken=b;$("#password-reset-confirm-dialog").dialog("open");return false;};var page=null;var createUser=function(){var f,i,g,c,b=true;try{f=$("#signup-email input").val().trim();}catch(h){f="";}try{i=$("#signup-displayname input").val().trim();}catch(h){i="";}try{g=$("#signup-password input").val().trim();}catch(h){g="";}try{c=$("#signup-password2 input").val().trim();}catch(h){c="";}if(!isValidEmail(f)){$("#signup-email-error").text("Please enter a valid email address.");b=false;}else{if(f.length>30){$("#signup-email-error").text("Email address cannot exceed 30 characters.");b=false;}}if(i.length>30){$("#signup-displayname-error").text("Display Name cannot exceed 30 characters.");b=false;}if(!isValidPassword(g)){$("#signup-password-error").text("Please enter a password with more than four characters");b=false;}else{if(g!=c){$("#signup-password-error,#signup-password2-error").text("Passwords do not match");b=false;}}if(!b){return;}page.currentUser.create(f,i,g);};var loginUser=function(){var b=$("#signin-username input").val(),c=$("#signin-password input").val();page.currentUser.isLoggingIn=true;debug_log("log in user "+b);page.currentUser.login(b,c);};var logoutUser=function(){page.currentUser.logout();};var seedStation=function(h){var c=null,i=$(this),f=null,g=true,b,e;if(h&&!h.type){c=h;}else{c=i.siblings(".input_seed").val();}if(!c){c=i.children(".input_seed").val();}f=null,g=true;if(page.currentUser.loggedIn){f=page.currentUser.userId;b=typeof h=="string"?h+" Radio":h.artists[0]+" Radio";setStationTitle(b,true);e=page.currentStation;e.addEventHandlerOnce("created",page.userCreatedStationCallback);e.addEventHandlerOnce("created_error",handleUserStationCreatedError);e.create(h,f,h,true,null,null,"");return false;}favoriteStationButton.setEnabled(false);page.setCurrentStation({seed:c,userId:f,waitForSong:true,isPrebuilt:false,isTemporary:g,leadWith:null});return false;};var seedWithCurrentArtist=function(){var b=page.player.getCurrentTrack().artist;if(b){page.setCurrentStation({seed:b,stationId:null,name:null,userId:null,waitForSong:true,isPrebuilt:false,isTemporary:!(page.currentUser&&page.currentUser.loggedIn),leadWith:null});}return false;};var seedStationWithAttr=function(e){var j=$(this),c=j.attr("seed"),h=j.attr("stationId"),i=j.attr("title"),f=j.attr("userId"),g=j.parent(),b=j.attr("eventCategory");if(b){debug_log("listening from Station Detail on "+b);ga_recordEvent(b,"listen","station");}page.setCurrentStation({seed:c,stationId:h,name:i,userId:f,waitForSong:false,isPrebuilt:false,isTemporary:!bool_from_item(f)});return false;};var playStation=function(b){if(b.isPrebuilt){page.setCurrentStation({seed:null,stationId:b.stationId,name:b.name,userId:null,waitForSong:false,isPrebuilt:true,isTemporary:false});}else{page.setCurrentStation({seed:b.seed,stationId:b.stationId,name:b.name,userId:b.userId,waitForSong:false,isPrebuilt:false,isTemporary:false});}};var playPrebuiltStation=function(){var e=$(this),c=e.attr("stationId"),b=e.text();page.setCurrentStation({seed:null,stationId:c,name:b,userId:null,waitForSong:false,isPrebuilt:true,isTemporary:false});return false;};var playFromHash=function(n){var f=$(this),u=f[0].tagName==="A"?f:f.children("a"),k=u.attr("href");var t=k.split("?"),p=null;if(t.length>1){k=t[0];t=t[1];var l=t.split("&"),c=null,b=null;for(var j=0,h=l.length;j<h;j++){c=l[j].split("=");if(c.length>1){b=c[0];if(b.match(/leadwith/i)){p=c[1];break;}}}}try{k=k.split("/");}catch(n){debug_log("playFromHash: Invalid hash: "+k);return false;}var g=k[1]?k[1].toLowerCase():"";if(g!=="station"){debug_log("playFromHash: invalid action: "+g+" in hash "+k);return false;}var r=k[2]?k[2].toLowerCase():"",m=k[3]?k[3]:"";if(!(r&&m)){debug_log("playFromStation: invalid type or identifier in hash: "+k);return false;}if(r=="seed"){var w=unescape(m);page.setCurrentStation({seed:w,stationId:null,name:w,userId:null,waitForSong:false,isPrebuilt:false,isTemporary:true,leadWith:p});}else{if(r=="id"){var v=new Station(m);v.addEventHandlerOnce("infoLoaded",function(e){page.setCurrentStation({seed:e.seed,stationId:m,name:e.name,userId:e.userId,waitForSong:false,isPrebuilt:false,isTemporary:false,leadWith:p});});v.getStationInfo();}else{if(r=="prebuilt"){b="Prebuilt";if(k[4]){b=unescape(k[4]);}page.setCurrentStation({seed:null,stationId:m,name:b,userId:null,waitForSong:false,isPrebuilt:true,isTemporary:false,leadWith:p});}}}return false;};var setupUnfavoriteStation=function(b){if(!page.currentUser.loggedIn){return;}if(b.stationId!==page.currentStation.stationId){b=page.currentUser.getFavoriteStation(b.stationId);}$("#unfavorite-station-albumart").attr("src",b.isPrebuilt?"images/speaker.png":b.image_url);$("#unfavorite-station-top-stationname").text(b.name.trim());var c=$("#unfavorite-station-dialog");c.data("station",b);c.dialog("open");};var handleStationUnfavorited=function(c,b){var e=$("#unfavorite-station-dialog");e.dialog("close");page.currentUser.getStations();};var handleStationUnfavoritedError=function(b,e){var f=get_error_message(b);var c=e.name?e.name.trim():(e.seed?e.seed:"");show_standard_error("Unfavoriting Station "+c,"There was a problem Unfavoriting the Station.<br />"+f);if(e.stationId==page.currentStation.stationId){favoriteStationButton.setSelected(true);}};var unfavoriteStation=function(b){b.addEventHandlerOnce("unfavorited",handleStationUnfavorited);b.addEventHandlerOnce("unfavorited_error",handleStationUnfavoritedError);if(b.stationId==page.currentStation.stationId){favoriteStationButton.setSelected(false);}b.unfavorite();};var handleStationFavorited=function(c,b){debug_log("favoritedStationHandler called");page.currentUser.getStations();};var handleStationFavoritedError=function(b,e){var f=get_error_message(b);var c=e.name?e.name.trim():(e.seed?e.seed:"");show_standard_error("Favoriting Station "+c,"There was a problem Favoriting the Station.<br />"+f);if(e.stationId==page.currentStation.stationId){favoriteStationButton.setSelected(false);}};var favoriteStation=function(){debug_log("favoriteStation called for stationId: "+page.currentStation.stationId+" seed: "+page.currentStation.seed);if(page.currentStation.userId!==null&&page.currentStation.isOwned(page.currentUser.userId)){return false;}var c=page.currentStation;if(c.stationId){c=page.getStation(c.stationId);var e=c.name?c.name.trim():(c.seed?c.seed.trim():"");if(page.currentUser.loggedIn&&page.currentUser.hasStationFavorited(c.stationId)){show_standard_error("Favorite Station "+e,"You already Favorited this Station.");return false;}debug_log("calling currentStation.favorite()");c.addEventHandlerOnce("favorited",handleStationFavorited);c.addEventHandlerOnce("favorited_error",handleStationFavoritedError);favoriteStationButton.setSelected(true);c.favorite();ga_recordFavorite();}else{if(page.currentUser.loggedIn){debug_log("WARNING: really should not be here: user station should have been created");var c=page.currentStation;var f=c.name;var b=c.seed;c.addEventHandlerOnce("created",userStationCreated);c.create(f,-1,page.currentUser.userId,b);}}return false;};var tagsLengthChanged=function(b){var c=$("#edit-station-tags").val();if(!c){c="";}$("#edit-station-tags-charsleft").text(140-c.length+"");};var editStationLocation=function(){var b=page.editingStation,g=$("#edit-station-checkbox-default-location").hasClass("checked"),f=null,e=null,c=$("#edit-station-stationname > input").val();c=typeof c==="string"?c.trim():b.name;if(!g){f=b.lat;e=b.lon;}explore.editStationLocation(f,e,c);};var setupEditStation=function(e){if(!(page.currentUser.loggedIn&&page.currentUser.ownsStation(e.stationId))){return;}if(e===page.currentStation){e=page.currentUser.getOwnedStation(e.stationId);}page.editingStation=e;$("#edit-station-albumart").attr("src",e.image_url);var c=e.name.trim();$("#edit-station-top-stationname").text(c);$("#edit-station-stationname > input").val(c);var f=e.tagString;if(!f){e.tagString=f="";}$("#edit-station-tags").val(f);$("#edit-station-suggested-tags").empty();$("#edit-station-tags-charsleft").text(140-e.tagString.length+"");var b=$("#edit-station-checkbox-public");if(e.isPublic){b.removeClass("checked").addClass("unchecked");}else{b.removeClass("unchecked").addClass("checked");}$("#edit-station-checkbox-default-location").removeClass("checked").addClass("unchecked");page.getJSON(API_URL+"tags/suggested/",{},function(l){var k=$("#edit-station-dialog .suggestedTags");k.children().remove();var h=l.wrapper;var g=[];for(var j=0,m=h.length;j<m;j++){g.push('<a href="#" class="addSuggestedTag">'+h[j]+"</a>");}k.append(g.join(" "));},function(g){debug_log("getting "+API_URL+"tags/suggested/: code: "+g.statusCode+": error: "+g.response);});$("#edit-station-dialog").dialog("open");};var onEditStationDialogClose=function(b,f){if(explore.editing_location_marker){debug_log("onEditStationDialogClose: explore.editing_location_marker is not empty.  skipping out.");return;}var e=page.editingStation,c=null;if(e&&(c=e.oldLatLng)){e.lat=c.lat;e.lon=c.lon;}page.editingStation=null;$("#edit-station-stationname input").val(null);$("#edit-station-tags").val(null);$("#edit-station-suggested-tags").empty();$("#edit-station-checkbox-public").addClass("unchecked").removeClass("checked");$("#edit-station-checkbox-default-location").addClass("unchecked").removeClass("checked");clear_alerts("#edit-station-dialog");ga_recordPage("/");};var handleStationEdited=function(b){station=page.editingStation;page.editingStation=null;if(station&&station.stationId==page.currentStation.stationId){resize_text("#station-title",station.name);}if(station&&station.oldLatLng){delete station.oldLatLng;}page.currentUser.getStations();explore.getStationsNearCoordinates();$("#edit-station-dialog").dialog("close");};var handleStationEditedError=function(b){var f=get_error_message(b),c=page.editingStation,e=c.name?c.name.trim():"";show_standard_error("Editing Station "+e,"There was a problem editing your station.<br />"+f);};var editStation=function(){debug_log("will edit page.editingStation");var g=page.editingStation;if(!g){debug_log("no station to edit. skipping.");return false;}var f,c;try{f=$("#edit-station-stationname > input").val().trim();}catch(k){f="";}try{c=$("#edit-station-tags").val().trim();}catch(k){c="";}var j=$("#edit-station-checkbox-public").hasClass("checked");var b=true;if(!f){b=false;$("#edit-station-stationname-error").text("Station Name may not be empty.");}else{if(f.length>100){b=false;$("#edit-station-stationname-error").text("Station name too long. Limit to 100 characters.");}}if(c.length>140){b=false;$("#edit-station-tags-error").text("Station tags are limited to 140 characters.");}if(!b){return false;}if(g.name!=f){var i=g.name+" -> "+f;ga_recordEvent("edit station","changed name",i);}if(g.tagString!=c){var h=g.tagString+" -> "+c;ga_recordEvent("edit station","changed tags",h);}g.name=f;g.tagString=c;g.isPublic=j;g.addEventHandlerOnce("edited",handleStationEdited);g.addEventHandlerOnce("edited_error",handleStationEditedError);g.edit();return false;};var handleStationDeleted=function(b){page.currentUser.getStations();$("#edit-station-dialog").dialog("close");};var handleStationDeletedError=function(b){var f=get_error_message(b);var c=page.editingStation;var e=c.name?c.name.trim():"";show_standard_error("Deleting Station "+e,"There was a problem deleting your station<br />"+f);};var deleteStation=function(){var b=page.editingStation;var c=b.stationId;ga_recordEvent("edit station","delete station",ga_stationLabel(b));b.addEventHandlerOnce("deleted",handleStationDeleted);b.addEventHandlerOnce("deleted_error",handleStationDeletedError);b.deleteStation();return false;};var show_filter=function(){explore.restoreFilters();function b(c,f){var e=$(c);if(f){e.removeClass("unchecked").addClass("checked");}else{e.addClass("unchecked").removeClass("checked");}}b("#filter-popular-checkbox",explore.filter_popular);b("#filter-trending-checkbox",explore.filter_trending);b("#filter-new-checkbox",explore.filter_new);b("#filter-my-checkbox",explore.filter_my);b("#filter-other-checkbox",explore.filter_other);$("#filter-search-textbox").val(explore.filter_search);$("#filter-dialog").dialog("open");ga_recordPage("/FilterStations");return false;};var handleFilterApply=function(){var b=$("#filter-popular-checkbox").hasClass("checked"),e=$("#filter-trending-checkbox").hasClass("checked"),g=$("#filter-new-checkbox").hasClass("checked"),h=$("#filter-my-checkbox").hasClass("checked"),f=$("#filter-other-checkbox").hasClass("checked"),i=$("#filter-search-textbox").val(),c;if(typeof i!=="string"){i="";}i=i.trim();if((explore.filter_popular===b&&explore.filter_trending===e&&explore.filter_new===g&&explore.filter_my===h&&explore.filter_other===f&&explore.filter_search===i)){$("#filter-dialog").dialog("close");return false;}c=[];explore.filter_popular=b;if(b){c.push("Popular");}explore.filter_trending=e;if(e){c.push("Trending");}explore.filter_new=g;if(g){c.push("New");}explore.filter_my=h;if(h){c.push("My");}explore.filter_other=f;if(f){c.push("Other");}explore.filter_search=i;if(i){c.push(i);}explore.saveFilters();explore.getStationsNearCoordinates();ga_recordEvent("map","filter",c.join("|"));$("#filter-dialog").dialog("close");return false;};var set_caption_track_preference=function(c,b){if(!b){var g=c.find('input[name="track_id"]').val();if(!g){return;}b=page.getTrack(g);if(!b){debug_log("WARNING: no track found for track_id "+g+" in Station History");return;}}var f=likeButton.image_enabled,e=dislikeButton.image_enabled;if(!(page.currentUser.loggedIn&&page.currentUser.ownsStation(page.currentStation.stationId))){f=likeButton.image_disabled;e=dislikeButton.image_disabled;}else{if(b.liked===true){f=likeButton.image_selected;}else{if(b.liked===false){e=dislikeButton.image_selected;}}}c.find("a.action_likeTrack img").attr("src",f);c.find("a.action_dislikeTrack img").attr("src",e);};var trackLiked=function(){if(!page.currentUser.loggedIn){return show_needs_login();}if(page.currentStation.isPrebuilt||page.currentStation.isTemporary||!page.currentUser.ownsStation(page.currentStation.stationId)){debug_log("attempt to favorite song on Prebuilt or Temporary unowned station");return false;}var i=page.player.getCurrentTrack(),b=i?i.liked:null,g=i?i._id:null,h=contentFlow.getNumberOfItems(),f=h?contentFlow.getItem(h-1):contentFlow.getItem(0),c=null,e=null;ga_recordLike(i);likeButton.setSelected(true);dislikeButton.setSelected(false);i.liked=true;if(f){c=$(f.caption);e=c.find('input[name="track_id"]').val();if(e==g){set_caption_track_preference(c,i);}else{e=null;}}$.post(API_URL+"log/userTrackPreference",{trackId:g,artistId:i.artist,locationId:-1,stationId:page.currentStation.stationId,taste:"Like"}).success(function(j){debug_log("like preference call succeeded with event: "+j.event);if(j.event=="Like"){i.liked=true;if(player.current_track&&player.current_track._id==g){page.currentUser.likes.push(g);}}else{if(j.event=="Dislike"){i.liked=false;}else{i.liked=null;}}if(c){set_caption_track_preference(c,i);}}).error(function(m,j,l){debug_log("error attempting to send dislike request: "+m.responseText);show_standard_error("Like Track","There was a problem recording your Like preference for the Track.<br />Please try again later.");i.liked=b;var n=(b===true),k=(b===false);if(e){set_caption_track_preference(c,i);}if(player.current_track&&player.current_track._id==g){likeButton.setSelected(n);dislikeButton.setSelected(k);}});return false;};var trackDisliked=function(){if(!page.currentUser.loggedIn){return show_needs_login();}if(page.currentStation.isPrebuilt||page.currentStation.isTemporary||!page.currentUser.ownsStation(page.currentStation.stationId)){debug_log("attempt to favorite song on Prebuilt or Temporary unowned station");return false;}var i=page.player.getCurrentTrack(),b=i?i.liked:null,g=i?i._id:null,h=contentFlow.getNumberOfItems(),f=h?contentFlow.getItem(h-1):contentFlow.getItem(0),c=null,e=null;ga_recordDislike(i);dislikeButton.setSelected(true);likeButton.setSelected(false);i.liked=false;if(f){c=$(f.caption);e=c.find('input[name="track_id"]').val();if(e==g){set_caption_track_preference(c,i);}else{e=null;}}$.post(API_URL+"log/userTrackPreference",{trackId:g,artistId:i.artist,locationId:-1,stationId:page.currentStation.stationId,taste:"Dislike"}).success(function(j){debug_log("dislike call succeeded with event: "+j.event);if(j.event=="Like"){i.liked=true;if(player.current_track&&player.current_track._id==g){page.currentUser.likes.push(g);}}else{if(j.event=="Dislike"){i.liked=false;}else{i.liked=null;}}if(c){set_caption_track_preference(c,i);}}).error(function(m,j,l){show_standard_error("Dislike Track","There was a problem recording your Dislike preference for the Track.<br />Please try again later.");debug_log("error disliking track: "+m.responseText);i.liked=b;var n=(b===true),k=(b===false);if(e){set_caption_track_preference(c,i);}if(player.current_track&&player.current_track._id==g){likeButton.setSelected(n);dislikeButton.setSelected(k);}});trySkip(false);return false;};var likeStationTrack=function(){var i=$(this),f=null;debug_log("would like caption track");if(!page.currentUser.loggedIn){return show_needs_login();}f=page.currentStation;if(f.isPrebuilt||f.isTemporary||!page.currentUser.ownsStation(f.stationId)){debug_log("attempt to like song on Prebuilt or Temporary unowned station");return false;}var e=i.parents(".caption"),h=e.find('input[name="track_id"]').val(),g=f.stationId,c=page.getTrack(h),b=null;if(!c){debug_log("likeStationTrack: no track found.  Aborting.");return false;}ga_recordLike(c);b=c.liked;c.liked=true;set_caption_track_preference(e,c);if(player.current_track&&h==player.current_track._id){likeButton.setSelected(true);dislikeButton.setSelected(false);}$.post(API_URL+"log/userTrackPreference",{trackId:h,artistId:c.artist,locationId:-1,stationId:f.stationId,taste:"Like"}).success(function(j){page.currentUser.likes.push(h);}).error(function(m,j,l){show_standard_error("Like Track","There was a problem recording your Like preference for the Track.<br />Please try again later.");debug_log("error liking caption track: "+m.responseText);c.liked=b;set_caption_track_preference(e,c);var n=(b===true),k=(b===false);if(player.current_track&&h==player.current_track._id){likeButton.setSelected(n);dislikeButton.setSelected(k);}});return false;};var dislikeStationTrack=function(){var i=$(this),e=null;if(!page.currentUser.loggedIn){return show_needs_login();}e=page.currentStation;if(e.isPrebuilt||e.isTemporary||!page.currentUser.ownsStation(e.stationId)){debug_log("attempt to dislike song on Prebuilt or Temporary unowned station");return false;}var c=i.parents(".caption"),h=c.find('input[name="track_id"]').val(),f=e.stationId,b=page.getTrack(h),g=null;if(!b){debug_log("likeStationTrack: no track found.  Aborting.");return false;}ga_recordDislike(b);old_liked=b.liked;b.liked=false;set_caption_track_preference(c,b);if(player.current_track&&h==player.current_track._id){likeButton.setSelected(false);dislikeButton.setSelected(true);trySkip(false);}$.post(API_URL+"log/userTrackPreference",{trackId:h,artistId:b.artist,locationId:-1,stationId:e.stationId,taste:"Dislike"}).success(function(j){debug_log("like button should be selected now");}).error(function(m,j,l){show_standard_error("Dislike Track","There was a problem recording your Dislike preference for the Track.<br />Please try again later.");debug_log("error disliking caption track: "+m.responseText);b.liked=old_liked;set_caption_track_preference(c,b);var n=(old_liked===true),k=(old_liked===false);if(player.current_track&&h==player.current_track._id){likeButton.setSelected(n);dislikeButton.setSelected(k);}});return false;};var editUserInfo=function(){var b=$(".editUserInfo .input_display").val();var c=$(".editUserInfo .input_mobile").val();page.currentUser.displayName=b;page.currentUser.mobile=c;page.currentUser.edit();};var submitPasswordReset=function(){var b=$(".resetPW form .input_email").val();page.currentUser.resetPassword(b);};var confirmPasswordReset=function(){var e=$(".confirmReset form .input_email").val();var b=$(".confirmReset form .input_token").val();var c=$(".confirmReset form .input_password").val();page.currentUser.confirmPasswordReset(e,b,c);};var show_share_email_dialog=function(j,c){var g=page.currentUser;var f=j.shareUrl();var k=j.image_url;var b=j.name.trim();var h=0;var l=j.isPrebuilt?1:0;var e=0;if(c){e=1;f+="?leadWith="+c._id;k=c.image_medium?c.image_medium:"";b=c.title.trim()+" by "+c.artist.trim();}if(!k){k=DOMAIN+"/images/no_album_art_mono_icon.png";}$("#share-email-name").text(b);if(g.loggedIn){if(!e&&g.ownsStation(j.stationId)){h=1;}$("#share-email-from input").val(g.email?g.email:g.username);}else{$("#share-email-from input").val(null);}$("#share-email-to input").val(null);$("#share-email-albumart").attr("src",k);$("#share-email-text").val(null);var i=$("#share-email-dialog");i.data("params",{shareUrl:f,albumArtUrl:k,name:b,isSong:e,isOwned:h,isPrebuilt:l});Recaptcha.create(RECAPTCHA_PUBLIC_KEY,"share-email-recaptcha",{theme:"clean",callback:Recaptcha.focus_response_field});i.dialog("open");var m=e?ga_trackLabel(c):ga_stationLabel(j);ga_recordEvent("share",(e?"email song":"email station"),m);};var shareEmailSendPressed=function(evt){var recaptcha_challenge=Recaptcha.get_challenge(),recaptcha_response=Recaptcha.get_response(),is_valid=true,sender=null,recipients=null;if(!recaptcha_response){$("#share-email-recaptcha-error").text("reCaptcha is required to verify you are not a spam bot.");is_valid=false;}sender=$("#share-email-from input").val().trim();if(!sender||!isValidEmail(sender)){$("#share-email-from-error").text("Please enter a valid email address.");is_valid=false;}recipients=$("#share-email-to input").val().trim();if(!recipients){$("#share-email-to-error").text("At least one valid email recipient required.");is_valid=false;}else{var parsed_recipients=recipients.split(/\s*[,;]\s*/);var r;for(var i=0,nd=parsed_recipients.length;i<nd;i++){r=parsed_recipients[i];if(!isValidEmail(r)){is_valid=false;$("#share-email-to-error").text('All recpients must be valid email addresses. "'+r+'" is invalid.');break;}}}if(!is_valid){return false;}var name=$("#share-email-name").text(),text=$("#share-email-text").val(),params=$("#share-email-dialog").data("params");params.recaptchaChallenge=recaptcha_challenge;params.recaptchaResponse=recaptcha_response;params.name=name;params.sender=sender;params.recipients=recipients;if(text){params.text=text;}$.post(API_URL+"share_email",params).success(function(data){$("#share-email-dialog").dialog("close");}).error(function(req,status,err){debug_log("ERROR: share_email call failed "+status);var err_msg="Please try again later.";try{var err_data=eval("("+req.responseText+")");if(err_data&&err_data.error){err_msg=err_data.error;}}catch(e){}show_standard_error("Share By Email","There was a problem sharing by email.<br />"+err_msg);if(err_msg.match(/challenge/i)){Recaptcha.reload();}});return false;};var shareEmailCancelPressed=function(b){$("#share-email-dialog").dialog("close");return false;};var shareOnFB=function(f,b){var g=f.shareUrl()+(b?"?leadWith="+b._id:""),c=b?(b.title+" by "+b.artist):f.name,e=f.image_url;if(b){e=b.image_medium?b.image_medium:"";}if(!e){e=DOMAIN+"/images/no_album_art_mono_icon.png";}FB.ui({method:"feed",name:"Listen to "+c,picture:e,caption:"Raditaz - Soundtrack to Your Life.",description:"Location-aware radio on your Android phone, iPhone or at Raditaz.com",link:g,action_links:[{text:"Listen",href:g}],user_message_prompt:"Share this station with your friends"},function(h){if(h&&h.post_id){debug_log("Post was published.");}else{debug_log("Post was not published.");}});return false;};var captionShareStation=function(m){var c=$(this),h=c.attr("stationId"),k=page.getStation(h),l=c.parents(".caption");h=h?h.trim():"";if(!k){k=page.currentStation;if(!k.image_url){var j=page.playHistory,f=k.seed?k.seed.trim():(k.name?k.name.trim():"");if(f){var b=new RegExp(f,"i"),n;for(var g=0,e=j.length;g<e;g++){n=j[g];if(n.artist&&b.test(n.artist)){k.image_url=n.image_medium;break;}}}}}ga_recordEvent("button","share","history");show_share_popover(c,k,null);return false;};var captionShareSong=function(n){var c=$(this),j=c.attr("stationId").trim(),q=checked_int_id(c.attr("track_id").trim()),e=page.getTrack(q),l=page.getStation(j),m=c.parents(".caption");if(!e){if(!(q==player.current_track._id)){debug_log("shareSong: no track found for track_id: "+q);return false;}e=player.current_track;}if(!l){l=page.currentStation;if(!l.image_url){var k=page.playHistory,g=l.seed?l.seed.trim():(l.name?l.name.trim():"");if(g){var b=new RegExp(g,"i"),p;for(var h=0,f=k.length;h<f;h++){p=k[h];if(p.artist&&b.test(p.artist)){l.image_url=p.image_medium;break;}}}}}ga_recordEvent("button","share","history");show_share_popover(c,l,e);return false;};var setStationTitle=function(b,c){if(c){resize_text("#station-title","Loading "+b+"...");$("#station-title-downarrow").hide();}else{resize_text("#station-title",b);$("#station-title-downarrow").show();}};var setStationInfo=function(b){if(b){$(".station-tags").text(b.tags);}else{$(".station-tags").text("#raditazstation #makeityours");}};var setFavoriteIcon=function(b){if(!page.currentUser.loggedIn){favoriteStationButton.setSelected(false);favoriteStationButton.setEnabled(false);}else{favoriteStationButton.setSelected(b);}};var getPrebuiltGenreStations=function(b){var g=$(b),j=g.parent(),h=j.parent(),l=j.parents("#table-raditaz-genres"),e=g.attr("category_id"),f=page.genres.getSubCategory(e),k=f?f.stns:null;h.children(".genre-callout-selected").removeClass("genre-callout-selected");j.addClass("genre-callout-selected");function c(p){var m=$("#table-raditaz-genres");var n=m.outerWidth();var o={stns:p,width:n,left:n};m.append(render.prebuiltGenreStations(o));$("#genre-stations").show("slide",{direction:"right"},"easeInOutQuart",function(){$("#listenresultsscroll4").hide();});}if(k&&k.length){c(k);return;}function i(m){var n=get_error_message(m);show_standard_error("Getting Genre - "+f.name,"There was a problem communicating with the server.<br />"+n);}f.addEventHandlerOnce("getStations",c);f.addEventHandlerOnce("getStations_error",i);f.getStations();};var backToGenres=function(){$("#listenresultsscroll4").show();$("#genre-stations").hide("slide",{direction:"right"},"easeInOutQuart",function(){$("#table-raditaz-genres > .stations-slidein-div").remove();$("#table-raditaz-genres > .tag-callout-selected").removeClass("tag-callout-selected");});};var tagGetTagStations=function(h){var c=$($(h).parent());var f=$($(c).parent());var g=$($(c).parents("#table-tags")[0]);f.children(".tag-callout-selected").removeClass("tag-callout-selected");c.addClass("tag-callout-selected");var e=DOMAIN+BASE_API_PATH+"tags/stations/";var b=$(h).attr("name");page.getJSON(e,{tag:b},function(m){var o=m.wrapper;var q=page.tagStations[b]=[];var p;for(var n=0,l=o.length;n<l;n++){p=new Station().buildFromData(o[n]);q.push(p);}var r=$("#table-tags");var k=r.outerWidth();var j={stns:q,width:k,left:k};r.append(render.tagStations(j));$("#tag-stations").show("slide",{direction:"right"},"easeInOutQuart",function(){$("#listenresultsscroll6").hide();});},function(i){debug_log("getting "+e+": code: "+i.statusCode+" error: "+i.response);});};var backToTags=function(){$("#listenresultsscroll6").show();$("#tag-stations").hide("slide",{direction:"right"},"easeInOutQuart",function(){$("#table-tags > .stations-slidein-div").remove();$("#table-tags > .tag-callout-selected").removeClass("tag-callout-selected");});};var setTwitterURL=function(b){b=b.replace("/#/","/~/");b=encodeURIComponent(b);$(".action_tweet").attr("href","http://twitter.com/share?via=raditaz&url="+b);};var userCreated=function(b){$("#signup-dialog").dialog("close");};var userStationCreated=function(f,b){page.currentUser.getStations();editStationButton.setEnabled(true);$("#editstation").show();$("#favoritestation").hide();var c=b.name;setStationTitle(c,false);document.title="Raditaz // music moves // "+c;player.playingStation=b;location.hash="/station/id/"+encodeURI(b.stationId);var e=page.player.current_track;if(e){likeButton.setEnabled(true);dislikeButton.setEnabled(true);likeButton.setSelected(e.liked===true);dislikeButton.setSelected(e.liked===false);var g=null;if(contentFlow){g=contentFlow.getActiveItem();if(g){set_caption_track_preference($(g.caption),e);}}}};var handleUserStationCreatedError=function(b){setStationTitle("",false);show_standard_error("Creating Station","We are very sorry.<br />There was an error Creating a new Station for you.<br />Please try Creating a Station with another Artist,<br />or try again later.");};var userLoggedIn=function(c){debug_log("User Logged In");page.currentUser.isLoggingIn=false;$("#signin-dialog").dialog("close");$("#signup-login").hide();$("#toplinks").show();ga_setCustomVariable(ga_vars.slots.registered,"registered","true",ga_vars.scope.SESSION);var e=page.currentUser;$("#username").text(e.displayName?e.displayName:e.username);e.getStations();e.getUserInfo();e.getPlayHistory();e.getLastSongPlayed();if(page.currentStation.isTemporary&&page.currentStation.seed){var b=page.currentStation;b.addEventHandlerOnce("created",userStationCreated);b.addEventHandlerOnce("created_error",handleUserStationCreatedError);b.create(b.seed+" Radio",e.userId,b.seed,true);}};var loginError=function(b){page.currentUser.isLoggingIn=false;show_standard_error("Login Error","Incorrect Username or Password");};var createUserError=function(b){var f='Please try again later or <a href="mailto:web@raditaz.com?subject=New Account">contact us</a> for assistance.<br />';try{if(b.response&&typeof b.response.error==="string"){f=b.response.error+"<br />";}}catch(c){}show_standard_error("Creating Account","There was an error creating an account for you.<br /><br />"+f);};var userLoggedOut=function(b){ga_setCustomVariable(ga_vars.slots.registered,"registered","false",ga_vars.scope.SESSION);deleteAllCookies();$("#toplinks").hide();$("#signup-login").show();$("#username").text("LOGGED IN");};var userInfoLoaded=function(b){debug_log("userInfoLoaded");var c=page.currentUser;if(c.editing){$("#account-dialog").dialog("close");c.editing=false;}$("#username").text(c.displayName?c.displayName:(c.username?c.username:c.email));if(!explore.current_latlng&&(isValidLat(c.lat)&&isValidLon(c.lon))){debug_log("loading default user location: ("+c.lat+", "+c.lon+")");explore.setCenterLocation(c.lat,c.lon);}};var userStationsLoaded=function(g){var k=page.currentStation.stationId;var m=page.currentUser;if(k){if(m.hasStationFavorited(k)){favoriteStationButton.setEnabled(true);favoriteStationButton.setSelected(true);$("#editstation").hide();$("#favoritestation").show();}else{if(m.ownsStation(k)){editStationButton.setEnabled(true);editStationButton.setSelected(false);$("#editstation").show();$("#favoritestation").hide();}}}var b=$("#table-my-stations > div");b.empty();b.html(render.stations({stations:m.allStations,seed_with_attr:"",tableType:"user"}));setupUserStationsTable();if(page.currentUser.ownsStation(page.currentStation.stationId)){var j=page.player.current_track;if(j){likeButton.setEnabled(true);dislikeButton.setEnabled(true);likeButton.setSelected(j.liked===true);dislikeButton.setSelected(j.liked===false);var f=null;if(contentFlow){f=contentFlow.getActiveItem();if(f){set_caption_track_preference($(f.caption),j);}}}}if(explore.nearby_stations){var l=explore.nearby_stations,n=false,h=page.currentUser,o;for(var e=0,c=l.length;e<c;e++){o=l[e];if(h.ownsStation(o.stationId)){o.isMy=true;n=true;}}if(n){handleNearbyStationsLoaded(l);}}};var userPlayHistoryLoaded=function(e){var g=page.playHistory=e?e.wrapper:[];for(var c=0,f=g.length;c<f;c++){var b=g[c];if(!b._id){if(b.oid){b._id=b.oid;}else{if(b.id){b._id=b.id;}}}if(isInteger(b.lastTaste)&&typeof b.liked==="undefined"){b.liked=b.lastTaste==1?true:(b.lastTaste==2?false:null);}}$("#table-play-history > div").html(render.history({listens:g}));};var userGotLastSongPlayed=function(f){var b,e,c=false;if(!page.player.playingStation){e=f.stationId;if(!e&&(e=f.prebuiltStationId)){c=true;}if(e){b=page.getStation(e);if(b){b.isPrebuilt=c;playStation(b);return;}b=new Station(e);b.isPrebuilt=c;b.addEventHandlerOnce("infoLoaded",function(){playStation(b);});b.getStationInfo();}}};var seedWithArtistFromTrack=function(j){var b=$(this);var k=checked_int_id(b.attr("track_id").trim());var f=bool_from_item(b.attr("lead_with").trim());var c=page.getTrack(k);if(c){debug_log("seedWithArtistFromTrack track_id: "+k+" leadWithTrack: "+f);var h=(f?k:null);var g=null,e=true;if(page.currentUser.loggedIn){g=page.currentUser.userId;setStationTitle(c.artist+" Radio",true);var i=page.currentStation;i.addEventHandlerOnce("created",function(m,l){page.userCreatedStationCallback(m,l,h);});i.addEventHandlerOnce("created_error",handleUserStationCreatedError);i.create(c.artist+" Radio",g,c.artist,true,null,null,"");return false;}favoriteStationButton.setEnabled(false);page.setCurrentStation({seed:c.artist,stationId:null,name:c.artist,userId:page.currentUser.userId,waitForSong:true,isPrebuilt:false,isTemporary:!(page.currentUser.loggedIn),leadWith:h});}return false;};function resize_text(w,m){var q=$(w);var n=q.parent();var z=null;var g=q.find("a");if(g.length){z=$(g[0]);}var l=parseFloat(n.css("maxWidth"));if(!l||isNaN(l)){l=n.width();}var x=$("<span />",{id:"tst1",position:"relative",display:"block",top:-9999,left:-9999,right:"auto",overflow:"hidden",whiteSpace:"nowrap",opacity:0,tabIndex:-1});var j=["lineHeight","textDecoration","letterSpacing","fontSize","fontFamily","fontStyle","fontWeight","textTransform","textAlign","direction","wordSpacing","fontSizeAdjust","padding"];for(var t=0,h=j.length;t<h;t++){var s=j[t];try{var y=q.css(s);if(typeof y==="undefined"){continue;}x.css(s,y);}catch(v){}}var r=q.css("fontSize")+"";var b=r.search(/px$/);r=parseFloat(r);if(b>0){var u=$("body").css("fontSize")+"";if(u.match(/px$/)){r=r*parseFloat(u);}}var f=parseFloat(q.attr("standardFontsize"));if(!f){f=r;q.attr("standardFontsize",r+"em");}r=f;x.css("fontSize",f+"em");var c=parseFloat(q.attr("minFontsize"));if(!c){c=1;}x.text(m);$("body").append(x);while(x.width()>=l&&r>c){r-=0.045;x.text(null);x.css("fontSize",r+"em");x.text(m);}q.css({fontSize:r+"em"});if(z){z.text(m);}else{q.text(m);}x.remove();}$("a.action_captionShareSong").live("click",captionShareSong);$("a.action_captionShareStation").live("click",captionShareStation);$("a.action_seedWithTrack").live("click",seedWithArtistFromTrack);$("a.action_seedWithArtist").live("click",seedWithArtistFromTrack);function make_caption(c,g){if(!c){return['<div class="caption"></div>'];}var f=c._id,b=c.title,e=c.artist,h=c.album,k=player.current_station,j="images/rockon.png",i="images/thumbsdown.png";if(!(page.currentUser.loggedIn&&page.currentUser.ownsStation(g))){j="images/rockon_disabled.png";i="images/thumbsdown_disabled.png";}else{if(c.like===true){j="images/rockonclicked.png";}else{if(c.like===false){i="images/thumbsdownclicked.png";}}}return['<div class="caption">','<span class="caption-title resize-text" minFontsize="0.7em" standardFontsize="1.2em"><a class="song action_seedWithTrack" href="#" track_id="'+f+'" lead_with="1" title="Seed a Station with this Song">'+b+"</a></span>",'<span class="caption-title resize-text" minFontsize="0.7em" standardFontsize="1.2em"><a class="album">'+h+"</a></span>",'<span class="caption-title resize-text" minFontsize="0.7em" standardFontsize="1.2em"><a class="artist action_seedWithArtist" href="#" track_id="'+f+'" lead_with="0" title="Seed a Station with this Artist">'+e+"</a></span>",'<table class="caption-buttons">',"<tr>",'<td class="caption-share-button"><a href="#" class="action_captionShareStation" stationId="'+g+'"><img src="images/share_station.png" title="Share Station" /></a></td>','<td class="caption-share-button"><a href="#" class="action_captionShareSong"  stationId="'+g+'" track_id="'+f+'"><img src="images/share_song.png" title="Share Song" /></a></td>','<td class="caption-share-button"><a href="#" class="action_likeTrack" title="Like This Song"><img src="'+j+'" /></a></td>','<td class="caption-share-button"><a href="#" class="action_dislikeTrack" title="Dislike This Song"><img src="'+i+'" /></a></td>',"</tr>","</table>",'<input type="hidden" name="track_id" value="'+f+'" />',"</div>"].join("");}var hrefSeedWithTrack=function(b){return'<a href="#" track_id="'+b._id+'" lead_with="1"  title="Seed with this Song">'+b.title+"</a>";};var hrefSeedWithArtist=function(b){return'<a href="#" track_id="'+b._id+'" lead_with="0" title="Seed with this Artist">'+b.artist+"</a>";};var updateTrackHistory=function(e,k){if(!k){k=page.currentStation.stationId;}var f=(page.currentStation&&page.currentStation.name)?page.currentStation.name:"";if(k==page.currentStation.stationId){var l=page.currentStation,i=page.currentUser,n=e.liked,h=false,j=false;likeButton.setSelected(n===true);dislikeButton.setSelected(n===false);if(i.loggedIn&&i.ownsStation(k)){h=j=true;}likeButton.setEnabled(h);dislikeButton.setEnabled(j);}else{page.stationHistory=[];}skipButton.setEnabled(true);skipButton.setSelected(false);if(!contentFlow){setStationTitle(f,false);$(".flow").empty();$(".flow").append('<div class="item"><img class="content" src="'+e.image_huge+'" />'+make_caption(e,k)+"</div>");resize_text("#artist",e.artist);resize_text("#song-title",e.title);$("#albumart > img").attr("src",e.image_medium);page.playHistory.unshift(e);$("#playhistorytable tbody").prepend(render.historyItem({listen:e}));return;}setStationTitle(f,false);if($.browser.mozilla){debug_log("loading new image in Firefox");var m=$("#itemcontainer").add('<div class="item"><img class="content" src="'+e.image_huge+'" />'+make_caption(e,k)+"</div>")[1],b=$(m).find(".content")[0];b.onload=function(){window.setTimeout(function(){contentFlow.addItem(m,"end");window.setTimeout(function(){if(contentFlow.firstLoad){contentFlow.firstLoad=false;var p=contentFlow.getNumberOfItems();if(p>1){p-=1;for(var o=0;o<p;o++){contentFlow.rmItem(0);}}$("#ContentFlow_vertical .flow .item .caption .caption-title").each(function(q,r){resize_text(r,$(r).text());});}contentFlow.moveToIndex("end");},105);},500);};b.onerror=function(){$(m).remove();m=$("#itemcontainer").add('<div class="item"><img class="content" src="images/no_album_art_mono.png" />'+make_caption(e,k)+"</div>")[1];b=$(m).find(".content")[0];b.onload=function(){window.setTimeout(function(){contentFlow.addItem(m,"end");window.setTimeout(function(){if(contentFlow.firstLoad){contentFlow.firstLoad=false;var p=contentFlow.getNumberOfItems();if(p>1){p-=1;for(var o=0;o<p;o++){contentFlow.rmItem(0);}}$("#ContentFlow_vertical .flow .item .caption .caption-title").each(function(q,r){resize_text(r,$(r).text());});}contentFlow.moveToIndex("end");},105);},500);};};}else{var c=$("#itemcontainer").add('<div class="item"><img class="content" />'+make_caption(e,k)+"</div>")[1],g=$(c).find(".content")[0];$(g).attr("src",e.image_huge).load(function(){contentFlow.addItem(c,"end");window.setTimeout(function(){if(contentFlow.firstLoad){contentFlow.firstLoad=false;var p=contentFlow.getNumberOfItems();if(p>1){p-=1;for(var o=0;o<p;o++){contentFlow.rmItem(0);}}$("#ContentFlow_vertical .flow .item .caption .resize-text").each(function(q,r){resize_text(r,$(r).text());});}contentFlow.moveToIndex("end");},105);}).error(function(){$(c).remove();c=$("#itemcontainer").add('<div class="item"><img class="content" />'+make_caption(e,k)+"</div>")[1];g=$(c).find(".content")[0];$(g).attr("src","images/no_album_art_mono.png").load(function(){contentFlow.addItem(c,"end");window.setTimeout(function(){if(contentFlow.firstLoad){contentFlow.firstLoad=false;var p=contentFlow.getNumberOfItems();if(p>1){p-=1;for(var o=0;o<p;o++){contentFlow.rmItem(0);}}$("#ContentFlow_vertical .flow .item .caption .caption-title").each(function(q,r){resize_text(r,$(r).text());});}contentFlow.moveToIndex("end");},105);});});}resize_text("#artist",e.artist);resize_text("#song-title",e.title);$("#albumart > img").attr("src",e.image_medium);page.stationHistory.unshift(e);page.playHistory.unshift(e);$("#playhistorytable tbody").prepend(render.historyItem({listen:e}));};var handleLoadStationError=function(b){setStationTitle("",false);show_standard_error("Loading Station","We are very sorry.<br />There was an error loading this Station.<br />Please try Creating a Station with another Artist,<br />try another Station, or try again later.");};var handleLoadTrackError=function(b){setStationTitle(player.playingStation.name,false);show_standard_error("Getting Next Track","We are very sorry.<br />We encountered a problem getting the next track for this Station.<br />IF the station does not continue playing, please try Creating a Station<br />with another Artist, try another Station, or try again later.");};var logPlayOnServer=function(c){ga_recordListen();$.post(API_URL+"radio/log-play/",{oid:c._id});if(!page.currentUser.loggedIn){page.incrementUnauthedPlayCount();return;}var b=c;$.post(API_URL+"log/userTrackListen",{trackId:c._id,stationId:page.currentStation.stationId,artistId:c.artist,taste:"Listen"}).success(function(e){page.incrementPlayCount();}).error(function(g,e,f){debug_log("ERROR: log/userTrackListen failed");});};var trySkip=function(e){if(LIMITED_SKIPS){var b=page.currentStation,c=b.checkSkips();if(c){if(e){show_skip_warning(c);}return false;}b.addSkip();}page.player.skip();return true;};var skipTrack=function(){debug_log("skip pressed");if(skipButton.enabled&&trySkip(true)){debug_log("skip not disabled... skipping...");skipButton.setEnabled(false);}return false;};var trackSkipped=function(c){skipButton.setEnabled(true);ga_recordSkip(c);if(!page.currentUser.loggedIn){return;}var b=c;$.post(API_URL+"log/userTrackListen",{trackId:b._id,stationId:page.currentStation.stationId,taste:"Skip"}).success(function(e){debug_log("skip logged "+e);}).error(function(g,e,f){debug_log("ERROR: log/userTrackListen (Skip) failed");});};$(".action_seedStationWithAttr").live("click",seedStationWithAttr);$(".action_playStationById").live("click",playPrebuiltStation);$(".action_playFromHash").live("click",playFromHash);$(".action_loadMyStations").live("click",function(){loginRequired(page.currentUser.getStations)();return false;});$("#like").live("click",trackLiked);$("#dislike").live("click",trackDisliked);$(".caption-share-button a.action_likeTrack").live("click",likeStationTrack);$(".caption-share-button a.action_dislikeTrack").live("click",dislikeStationTrack);$(".createAccount input.submit").live("click",createUser);$(".createAccount form").live("submit",createUser);$("#signin-dialog-submit").live("click",loginUser);$(".seedStation input.submit").live("click",seedStation);$(".seedStation form").live("submit",seedStation);$(".resetPW input.submit").live("click",submitPasswordReset);$(".resetPW form").live("submit",submitPasswordReset);$(".confirmReset input.submit").live("click",confirmPasswordReset);$(".confirmReset form").live("submit",confirmPasswordReset);$(".skip").live("click",skipTrack);$("#createfillbox").live("focus",function(){activateAutocomplete();ga_recordPage("/Create");$("#createresultbox").show();});$(".action_showMyStations").live("click",show_stations);$(".action_showTopStations").live("click",show_topStations);$(".action_show2011Hits").live("click",show_2011Hits);$(".action_showTopHitsByYear").live("click",show_topHitsByYear);$(".action_showDecades").live("click",show_decades);$(".action_showGenres").live("click",show_genres);$(".action_showTrendingTable").live("click",show_trendingTable);$(".action_showTagsTable").live("click",show_tagsTable);$("#createfillbox").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){var c=$(this);seedStation(c.val());c.val(null);c.autocomplete("close");}});$("#signin-username input").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#signin-password > input").focus();}});$("#signin-password input").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){loginUser();}});$("#signin-dialog-submit").live("click",function(b){loginUser();});$("#signup-email input").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#signup-displayname input").focus();}});$("#signup-displayname input").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#signup-password input").focus();}});$("#signup-password input").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#signup-password2 input").focus();}});$("#signup-password2 input").live("keypress",function(b){if(b.keyCode==$.ui.keyCode.ENTER){createUser();}});$("#signup-dialog-submit").live("click",function(b){createUser();});var addSuggestedTag=function(){var b=$("#edit-station-tags").val().split(" ").filter(function(e){return(e!=="");});var c=$(this).text();if(b.indexOf(c)<0){if(b){b.push(c);}else{b=[c];}}$("#edit-station-tags").val(b.join(" "));tagsLengthChanged(null);$(this).remove();};$(".addSuggestedTag").live("click",addSuggestedTag);$("a.checkbox").live("click",function(){$(this).toggleClass("checked unchecked");});$("a.volume").live("click",function(){$("#volumecontainer").toggle();toggleVolumeButton.toggleSelected();return false;});var show_explore=function(b){ga_recordPage("/Explore");explore.restoreSettings();explore.showMap();return true;};var hide_explore=function(b){if(explore.editing_location_marker){show_standard_warning("Invalid Action","You cannot close the Map when you are Editing a Station Location.  Please press the Cancel Button or the Esc key to cancel or press  the Done Button or the Enter key to Save.");return false;}ga_recordPage("/Raditaz");explore.saveSettings();hideSharePopoverFromStationDetail();$("#map-wrapper").animate({opacity:0},100,"linear",function(){$("#map-wrapper").css("visibility","hidden");});explore.isShowingMap=false;$("#rightwrapper").animate({opacity:1},100);resize_flow();$("#left-menu").accordion("activate",0);return true;};var handleNearbyStationsLoaded=function(c){var b=$("#nearby-stations-scroll");b.empty();b.html(render.nearbyStations({stations:c}));$("#nearby-stations-scroll tr").hover(function(e){var g=$(this),f=g.find("a").attr("stationId");if(!f){f=g.find("td").attr("stationId");}explore.startMarkerBounce(f);},function(e){var g=$(this),f=g.find("a").attr("stationId");if(!f){f=g.find("td").attr("stationId");}explore.stopMarkerBounce(f);});};var handleNearbyStationsLoadedError=function(b){var c=get_error_message(b);debug_log("ERROR getting nearby stations: "+c);show_standard_error("Getting Stations by Location",c);$("#nearby-stations-scroll").empty();};var loadHashData=function(e){var h=location.hash;if(typeof h==="string"&&h.length>1){ga_recordEvent("play station","shared",h);}var p=h.split("?"),m=null;if(p.length>1){h=p[0];p=p[1];var k=p.split("&"),b=null,c=null;for(var j=0,g=k.length;j<g;j++){b=k[j].split("=");if(b.length>1){c=b[0];if(c.match(/leadwith/i)){m=b[1];break;}}}}h=h.split("/");var f=h[1]?h[1].toLowerCase():"";if(f=="station"){var n=h[2]?h[2].toLowerCase():"",l=h[3]?h[3]:"";if(!l){return;}if(n=="seed"){var t=unescape(l);page.setCurrentStation({seed:t,stationId:null,name:t,userId:null,waitForSong:false,isPrebuilt:false,isTemporary:true,leadWith:m});}else{if(n=="id"){var r=new Station(l);r.addEventHandlerOnce("infoLoaded",function(i){page.setCurrentStation({seed:i.seed,stationId:l,name:i.name,userId:i.userId,waitForSong:false,isPrebuilt:false,isTemporary:false,leadWith:m});});r.getStationInfo();}else{if(n=="prebuilt"){c="Prebuilt";if(h[4]){c=unescape(h[4]);}page.setCurrentStation({seed:null,stationId:l,name:c,userId:null,waitForSong:false,isPrebuilt:true,isTemporary:false,leadWith:m});}}}}else{if(f=="passwordreset"){show_confirmReset(h[2]);}else{if(f=="join"){page.currentUser.invitedBy=h[2];}}}};var loadLocalData=function(){if($.Storage){var e=$.Storage;if(e.get("konami")==="1"){$("body").attr("style","-webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate(180deg);");}var c=document.getElementById("konami-script");if(!c){c=document.createElement("script");c.id="konami-script";c.async=true;c.src="//konami-js.googlecode.com/svn/trunk/konami.js";document.getElementsByTagName("head")[0].appendChild(c);$("#konami-script").load(function(){loadLocalData();});return;}var b=new Konami();b.code=function(){if(e.get("konami")==="1"){$("body").attr("style","-webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -o-transform: rotate(360deg);").one("transitionend webkitTransitionEnd",function(){$("body").removeAttr("style");});e.set("konami","0");}else{$("body").attr("style","-webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate(180deg);");e.set("konami","1");}};b.load();}};var setupPlayControlButtons=function(){var c=$("a.play > img")[0];playButton=new RButton(c,"images/play.png","images/play_disabled.png","images/playclicked.png","images/playhover.png",null);var j=$("a.pause > img")[0];pauseButton=new RButton(j,"images/pause.png","images/pause_disabled.png","images/pauseclicked.png","images/pausehover.png",null);var f=$("a.skip > img")[0];skipButton=new RButton(f,"images/fastforward.png","images/fastforward_disabled.png","images/fastforwardclicked.png","images/fastforwardhover.png",null);var b=$("a.action_likeTrack > img")[0];likeButton=new RButton(b,"images/rockon.png","images/rockon_disabled.png","images/rockonclicked.png","images/rockonhover.png",null);var l=$("a.action_dislikeTrack > img")[0];dislikeButton=new RButton(l,"images/thumbsdown.png","images/thumbsdown_disabled.png","images/thumbsdownclicked.png","images/thumbsdownhover.png",null);var h=$("a.action_editStation > img")[0];editStationButton=new RButton(h,"images/edit_station_clicked.png","images/edit_station_disabled.png","images/edit.png","images/edit_station_hl.png",null);var e=$("a.action_favoriteStation > img")[0];favoriteStationButton=new RButton(e,"images/favorite_station.png","images/favorite_station_disabled.png","images/favorite_station_clicked.png","images/favorite_station_hl.png",null);var k=$("a.volume > img");toggleVolumeButton=new RButton(k,"images/volume.png","images/volumeclicked.png","images/volumeclicked.png","images/volumehover.png",null);var g=$("a.action_shareStation > img")[0];shareStationButton=new RButton(g,"images/share_station.png","images/share_station_disabled.png","images/share_station_clicked.png","images/share_station_hl.png",null);var i=$("a.action_shareSong > img")[0];shareSongButton=new RButton(i,"images/share_song.png","images/share_song_disabled.png","images/share_song_clicked.png","images/share_song_hl.png",null);};var autocomplete_src_callback=function(c,b){$.getJSON(API_URL+"autocomplete/",{q:c.term,f:"json"},function(f){var e=f.wrapper&&f.wrapper.length?f.wrapper.slice(0,9):[];b(e);}).error(function(g,e,f){b([]);});};var activateAutocomplete=function(){$("#createfillbox").autocomplete({source:autocomplete_src_callback,appendTo:"#createresultbox",position:{my:"left top",at:"left top",of:"#createresultbox"},select:function(c,e){seedStation(e.item.value);var b=$("#createfillbox");b.val(null);$("#createfillbox").autocomplete("close");return false;}});};var setupUserNav=function(){var i=$("#toplinks"),b=false,h=null,j=function(){if(h){try{window.clearTimeout(h);}catch(k){}finally{h=null;}}},e=function(){var k=$("#toplinks");$("#username").css({color:"#09F",cursor:"pointer"});k.addClass("round-corners-top-med med-gray-bg");j();g();},f=function(){var k=$("#toplinks");if(!b){$("#username").css({color:"#FFF",cursor:"normal"});k.removeClass("round-corners-top-med med-gray-bg");}else{if(!h){$("#username").css("cursor","normal");h=window.setTimeout(function(){g();if(!b){$("#username").css("color","#FFF");k.removeClass("round-corners-top-med med-gray-bg");}},300);}}},g=function(){var k=$("#user-dropdown-container"),l=!(k.css("display")=="block");if(l){k.css({left:i.offset().left+"px",top:$("#logocontainer").outerHeight()+"px"});k.css({width:i.outerWidth()+"px",display:"block"});i.addClass("box-shadow-right");}else{k.css("display","none");i.removeClass("box-shadow-right");}b=l;},c=function(k){var l=k;return function(){var m=$("#toplinks");m.removeClass("round-corners-top-med med-gray-bg box-shadow-right");$("#username").css({color:"#FFF",cursor:"normal"});$("#usernav .dropdown-menu-item").each(function(n,p){var q=$(p);q.removeClass("round-corners-top-med med-gray-bg");q.children("span").css({color:"#FFF",cursor:"normal"});});$("#user-dropdown-container").css("display","none");b=false;if(k){return k();}return false;};};i.hover(e,f);$("#signup, #signin").hover(function(k){var l=$(this);l.children("span").css({color:"#09F",cursor:"pointer"});l.addClass("round-corners-top-med med-gray-bg");},function(k){var l=$(this);l.children("span").css({color:"#FFF",cursor:"default"});l.removeClass("round-corners-top-med med-gray-bg");});$("#usernav .dropdown-menu-item").hover(function(){var k=$(this);k.addClass("light-gray-bg");k.children("span").css({color:"#09F",cursor:"pointer"});j();},function(){var k=$(this);k.removeClass("light-gray-bg");k.children("span").css({color:"#FFF",cursor:"default"});f();});$(".action_signIn").click(show_login);$(".action_signUp").click(show_createAccount);$("#usernav .action_signOut").click(function(){c(logoutUser)();});$("#usernav .action_showPlayHistory").click(function(){c(show_playHistory)();});$("#usernav .action_editAccount").click(function(){c(show_accountEdit)();});};var setupStationNav=function(){var c=$("#station-title-block"),b=false;c.hover(function(e){var f=$("#station-title");if(!f.text()){return false;}$("#station-title-block").addClass("light-gray-bg");f.addClass("white-color");f.removeClass("purple-color");$("#station-title-image-down").hide();if(b){$("#station-title-image-down-white").hide();$("#station-title-image-up-white").show();}else{$("#station-title-image-down-white").show();$("#station-title-image-up-white").hide();}return false;},function(e){var g=$("#station-dropdown-container"),f=$("#station-title");if(!b){f.addClass("purple-color");f.removeClass("white-color");$("#station-title-block").removeClass("light-gray-bg");$("#station-title-image-up-white").hide();$("#station-title-image-down-white").hide();$("#station-title-image-down").show();}return false;});$("#station-title-block").click(function(f){if(!player.playingStation){return false;}var i=$("#station-dropdown-container"),h=$("#station-title-block"),g=$("#station-title"),j=h.offset(),e=h.outerHeight();i.css({left:j.left+"px",top:(j.top+e)+"px"});if(b){h.removeClass("light-gray-bg dark-gray-lr-border box-shadow-right");if(!g.hasClass("purple-color")){g.addClass("purple-color");g.removeClass("white-color");}$("#station-title-image-up-white").hide();$("#station-title-image-down").show();i.hide();b=false;}else{h.addClass("light-gray-bg dark-gray-lr-border box-shadow-right");if(!g.hasClass("white-color")){g.addClass("white-color");g.removeClass("purple-color");}$("#station-title-image-down-white").hide();$("#station-title-image-down").hide();$("#station-title-image-up-white").show();i.show();b=true;}return false;});$("#station-title-block img").hover(function(e){$(this).css("cursor","pointer");},function(e){$(this).css("cursor","default");});$("#stationnav .dropdown-menu-item").each(function(f,g){$(g).hover(function(e){$(this).addClass("med-gray-bg");},function(e){$(this).removeClass("med-gray-bg");});});$("#stationnav-share-email").click(function(){var f=player.playingStation,e=null;ga_recordEvent("button","share","player");if(f){e=page.getStation(f.stationId);if(!e){e=f;}show_share_email_dialog(e);}return false;});$("#stationnav-share-twitter").click(function(){var h=player.playingStation;ga_recordEvent("button","share","player");if(h){var f=page.getStation(h.stationId);if(!f){f=h;}var e="",g=f.name?f.name.trim():(f.seed?f.seed.trim():"");if(f.isPrebuilt){e="#nowlistening @Raditaz Station '"+g+"'";}else{if(f.isTemporary){e="#nowlistening "+g+"'s Station";}else{e="#nowlistening Station '"+g+"'";}}var i=["via=Raditaz","url="+encodeURIComponent(f.shareUrl()),"counturl="+DOMAIN,"text="+escape(e)].join("&");window.open("https://twitter.com/share?"+i,"_blank");ga_recordEvent("share","tweet station",ga_stationLabel(f));}return false;});$("#stationnav-share-facebook").click(function(){var f=player.playingStation;ga_recordEvent("button","share","player");if(f){var e=page.getStation(f.stationId);if(!e){e=f;}shareOnFB(e);ga_recordEvent("share","facebook station",ga_stationLabel(e));}return false;});};var explorePlace=function(){var f=$(this),c=f.attr("lat"),e=f.attr("lon"),b=f.attr("zoom");if((!$.isNaN(c=parseFloat(c,10))&&isValidLat(c))&&(!$.isNaN(e=parseFloat(e,10))&&isValidLon(e))&&(!$.isNaN(b=parseInt(b,10))&&isValidZoom(b))){explore.showMap(c,e,b);$("#left-menu").accordion({active:1});$("#intro-page").hide();}return false;};var setupExplore=function(){$("a.action_showExplore").click(show_explore);$("a.action_showStationsMenu").click(hide_explore);explore.addEventHandler("getStationsNearCoordinates",handleNearbyStationsLoaded);explore.addEventHandler("getStationsNearCoordinates_error",handleNearbyStationsLoadedError);explore.addEventHandler("getCurrentLocation_error",handleGetCurrentLocationError);$(".action_cancelLocationEdit").click(explore.editLocationCancel);$(".action_saveLocationEdit").click(explore.editLocationSave);$(".action_explorePlace").click(explorePlace);};var handleGetCurrentLocationError=function(b){show_standard_warning("No Location Found","We were unable to obtain a location for you.<br />We are defaulting to the Geographic Center of the U.S.");};var enableMenus=function(){$("#left-menu").accordion("enable");$("#left-submenu-stations").accordion("enable");};var postLoad=function(){debug_log("executing postLoad");$("#volumeslider").slider({range:"min",min:0,max:100,value:60,slide:function(c,b){page.player.setVolume(b.value/100);}});load_categories();if(page.player.ready){enableMenus();loadHashData();if(page.currentUser.invitedBy&&!page.currentUser.loggedIn){show_createAccount();}}else{page.player.addEventHandler("swfReady",function(){enableMenus();loadHashData();if(page.currentUser.invitedBy&&!page.currentUser.loggedIn){show_createAccount();}});}ga_setCustomVariable(ga_vars.slots.registered,"registered","false",ga_vars.scope.SESSION);if(!page.currentUser.isLoggingIn){$.getJSON(API_URL+"users/myId/?jsoncallback=?",{},function(b){page.currentUser.userId=b.id;page.currentUser.loggedIn=true;userLoggedIn();});}$("#create").click(function(){if($("#createresultbox").is(":visible")){var b=$("#createfillbox");b.trigger("focusout");b.val(null);$("#createfillbox").autocomplete("close");}else{$("#createfillbox").focus();}});$("#signin-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",close:function(b,c){$("#signin-username input").val(null);$("#signin-password input").val(null);clear_alerts("#signin-dialog");}});$("#signin-show-signup").click(function(b,c){$("#signin-dialog").dialog("close");$("#signup-dialog").dialog("open");$("#signup-email input").trigger("focusin");});$("#signin-reset-password").click(show_passwordReset);$("#signup-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",close:function(b,c){$("#signup-email input").val(null);$("#signup-displayname input").val(null);$("#signup-password input").val(null);$("#signup-password2 input").val(null);clear_alerts("#signup-dialog");}});$("#edit-station-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",close:onEditStationDialogClose});$("#edit-station-dialog .action_saveEditStation").click(editStation);$("#edit-station-dialog .action_deleteStation").click(deleteStation);$("#edit-station-dialog .addSuggestedTag").click(addSuggestedTag);$("#edit-station-dialog .action_editStationLocation").click(editStationLocation);$("#unfavorite-station-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",open:function(b,c){$(this).css("width","28.01em");ga_recordPage("/UnfavoriteStation");},close:function(b,c){$(this).data("station",null);ga_recordPage("/Raditaz");}});$("#unfavorite-station-button").live("click",function(){var c=$("#unfavorite-station-dialog");var b=c.data("station");if(!b){debug_log("ERROR: unfavorite-station-button clicked with no station");show_standard_error("Unfavoriting Station","Unable to find Station to Unfavorite");return false;}unfavoriteStation(b);return false;});$("#play-history-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"40.0em",minWidth:"399px",width:"399px",close:function(b,c){ga_recordPage("/Raditaz");}});$("#about-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"40.0em",minWidth:"28.2em",width:"28.2em",close:function(b,c){ga_recordPage("/Raditaz");}});$(".action_showAbout").click(function(){$("#about-dialog").dialog("open");});$("#account-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",close:function(b,c){ga_recordPage("/Raditaz");return false;}});setupAccountEdit();$("#password-reset-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",close:function(b,c){$("#password-reset-email input").val(null);$("#password-reset-sent-message").hide();clear_alerts("#password-reset-dialog");ga_recordPage("/Raditaz");}});$("#password-reset-email input").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){resetPassword();}});$("#password-reset-dialog .action_resetPassword").click(resetPassword);$("#password-reset-confirm-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em",close:function(b,c){page.resetPasswordToken=null;$("#password-reset-confirm-email input").val(null);$("#password-reset-new-password input").val(null);$("#password-reset-new-password2 input").val(null);clear_alerts("#password-reset-confirm-dialog");$("#password-reset-confirmed-message").hide();ga_recordPage("/Raditaz");}});$("#password-reset-confirm-email input").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#password-reset-new-password input").focus();}});$("#password-reset-new-password input").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#password-reset-new-password2 input").focus();}});$("#password-reset-new-password2 input").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){confirmResetPassword();}});$("#password-reset-confirm-dialog .action_confirmResetPassword").click(confirmResetPassword);$("#share-email-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"40.0em",minWidth:"442px",width:"442px",close:function(b,c){$("#share-email-dialog").data("params",null);Recaptcha.destroy();clear_alerts("#share-email-dialog");ga_recordPage("/Raditaz");}});$("#share-email-from input").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#share-email-to input").focus();}});$("#share-email-to input").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){$("#share-email-text").focus();}});$("#share-email-text").keypress(function(b){if(b.keyCode==$.ui.keyCode.ENTER){Recaptcha.focus_response_field();}});$("#share-email-send").click(shareEmailSendPressed);$("#share-email-cancel").click(shareEmailCancelPressed);$("#error-dialog-standard").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em"});$("#warning-dialog-standard").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"30.986em",minWidth:"28.01em",width:"28.01em"});$("#filter-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"40.0em",minWidth:"28.01em",width:"28.01em"});$("#filter-apply-button").click(handleFilterApply);$("a.action_showFilters").click(show_filter);$("#legend-dialog").dialog({autoOpen:false,closeOnEscape:true,dialogClass:"dialog-container",draggable:true,resizable:false,maxHeight:"40.0em",minWidth:"28.01em",width:"28.01em"});$("#legendbutton").live("click",show_legend);$("#edit-station-tags").change(tagsLengthChanged);$("#edit-station-tags").keyup(tagsLengthChanged);setupExplore();setupUserNav();setupStationNav();setupStationPopover();setupSharePopover();activateAutocomplete();loadLocalData();};$(document).ready(function(){var j={collapsible:true,clearStyle:true,header:".submenu-header",alwaysOpen:false,autoHeight:false,active:false,disabled:true};$("#left-submenu-stations").accordion(j);$("#left-menu").accordion({collapsible:false,clearStyle:true,header:".menu-header",alwaysOpen:false,autoHeight:false,active:0,disabled:true});$("#intro-page").click(function(m){$("#intro-page").hide();return true;});setupPlayControlButtons();var c=function(){var m=Math.max($("#leftcontainer").height(),$("body").height());$("#leftwrapper").height(m);$("#wrapperall").height(m);};$("#leftcontainer").resize(c);$(window).resize(c);$("#error-dialog-anchor").fancybox();$("#okbutton").click(function(m){$.fancybox.close();return false;});$("#okbutton").hover(function(m){$(this).css("cursor","pointer");},function(m){$(this).css("cursor",null);});var l=$.browser;if(!(l.safari||l.webkit||(l.msie&&(parseFloat(l.version)>=8))||(l.mozilla&&(parseFloat(l.version)>=8)))){$("#errormessage").html('You may have an incompatible browser.<br />Proceed at your own risk.<br /><br />This site has been tested on:<br />&nbsp;&nbsp;<a href="http://www.apple.com/safari/download/" title="Get Safari">Safari</a><br />&nbsp;&nbsp;<a href="http://www.google.com/chrome" title="Get Chrome">Chrome</a><br />&nbsp;&nbsp;<a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie" title="Get Internet Explorer">Internet Explorer 8+</a><br />&nbsp;&nbsp;<a href="http://www.mozilla.org/firefox/new/" title="Get Firefox">Firefox 8.0+</a><br />');$("#error-dialog-anchor").click();}page=new Page();page.addEventHandler("updatedStationFavorited",setFavoriteIcon);page.addEventHandler("updatedStationInfo",setStationInfo);page.addEventHandler("updatedURL",setTwitterURL);var f=page.currentUser;f.addEventHandler("created",userCreated);f.addEventHandler("created",userLoggedIn);f.addEventHandler("loggedIn",userLoggedIn);f.addEventHandler("userInfoLoaded",userInfoLoaded);f.addEventHandler("stationsLoaded",userStationsLoaded);f.addEventHandler("playHistoryLoaded",userPlayHistoryLoaded);f.addEventHandler("getLastSongPlayed",userGotLastSongPlayed);f.addEventHandler("edited",userInfoLoaded);f.addEventHandler("loggedOut",userLoggedOut);f.addEventHandler("loggedOutError",userLoggedOut);f.addEventHandler("loginError",loginError);f.addEventHandler("createError",createUserError);var k=page.player;k.addEventHandler("logPlay",updateTrackHistory);k.addEventHandler("logPlay",logPlayOnServer);k.addEventHandler("skipped",trackSkipped);k.addEventHandler("loadStationError",handleLoadStationError);k.addEventHandler("loadTrackError",handleLoadTrackError);var b=$("#progressnumbers"),i=$("#progressnumbers2"),h=$("#progressbar"),g=$("#progressbarbg"),e=g.width();h.width(0);k.addEventHandler("onTimer",function(n,m){var o=to_mmss(n);b.text(o);i.text(to_mmss(m));h.width(n/m*e);});k.addEventHandler("gotNextTrackInfo",function(m){});$(".action_editStation").click(function(){setupEditStation(page.currentStation);ga_recordEvent("button","edit","player");});$("a.action_favoriteStation").click(function(){loginRequired(favoriteStation)();});k.initPlayer("#jquery_jplayer_1");$("#script_box").load("/templates.html",function(){$("#script_box > script[type='text/html']").each(function(n,o){var m=$(o).attr("id"),p=m.replace("_tmpl","");render[p]=tmpl(m);});postLoad();});});document.write(['<script src="http://maps.googleapis.com/maps/api/js?v=3.5',"&amp;key=AIzaSyCsbG6L86Ol6bDvw0CCc6RzNLpgRPxpDQs","&amp;libraries=geometry",'&amp;sensor=false" type="text/javascript"><\/script>','<script src="markerclusterplus/',DEBUG?'markerclusterer.js"':'markerclusterer.min.js"',' type="text/javascript"><\/script>'].join(""));var DEFAULT_LAT=44.966667;var DEFAULT_LNG=-103.766667;var DEFAULT_ZOOM=4;function parse_lat_lng(e){if(typeof e!=="string"){return null;}var f,c,b;b=e.match(/([+-]?\d+(?:\.\d+)?), *([+-]?\d+(?:\.\d+)?)/);if(!b){return null;}f=parseFloat(b[1],10);c=parseFloat(b[2],10);return google.maps.LatLng(f,c);}function isValidZoom(b){return((b>=1)&&(b<=20));}var Explore=function Explore(){Model.call(this);this.CALL_PATH=DOMAIN+BASE_API_PATH;this.map=null;this.current_latlng=null;this.zoom_level=9;this.last_distance=0;this.MIN_NEARBY_ZOOM_LEVEL=4;this.MIN_THROTTLE_ZOOM_LEVEL=12;this.map_type_id=null;this.markercluster=null;this.visibleInfoWindow=null;this.pseudoMarker=null;this.delayedCenterChangeTimer=null;this.filter_popular=true;this.filter_trending=true;this.filter_new=true;this.filter_my=true;this.filter_other=true;this.filter_search="";this.nearby_stations=[];this.nearby_stations_map={};this.markers=[];this.station_id_marker_map={};this.cluster_bounce=null;this.is_clustering=false;this.isShowingMap=false;this.editLocationStartedWithOpenMap=false;this.editing_location_marker=null;this.IMG_SIZE=null;this.IMG_HHEIGHT=this.IMG_HWIDTH=0;var self=this;this.init=function(){var sz;self.map_type_id=google.maps.MapTypeId.ROADMAP;sz=self.IMG_SIZE=new google.maps.Size(40,40);self.IMG_HHEIGHT=self.IMG_HWIDTH=self.IMG_SIZE.width*0.5;self.IMAGE_POPULAR=new google.maps.MarkerImage("/images/stations/map_pin_popular.png",sz);self.IMAGE_TRENDING=new google.maps.MarkerImage("/images/stations/map_pin_trending.png",sz);self.IMAGE_NEW=new google.maps.MarkerImage("/images/stations/map_pin_new.png",sz);self.IMAGE_MY=new google.maps.MarkerImage("/images/stations/map_pin_mine.png",sz);self.IMAGE_OTHER=new google.maps.MarkerImage("/images/stations/map_pin_plain.png",sz);self.IMAGE_HERE=new google.maps.MarkerImage("/images/stations/map_here.png",new google.maps.Size(25,28));};this.getDefaultLocation=function(){self.zoom_level=DEFAULT_ZOOM;return self.current_latlng=new google.maps.LatLng(DEFAULT_LAT,DEFAULT_LNG);};this.setCenterLocation=function(lat,lng,zoom){if(isValidLat(lat)&&isValidLon(lng)){self.current_latlng=new google.maps.LatLng(lat,lng);if(zoom&&!$.isNaN(parseInt(zoom,10))&&isValidZoom(zoom)){self.zoom_level=zoom;}}};this.getCurrentLocation=function(){debug_log("Explore.getCurrentLocation");if(navigator.geolocation){debug_log("Explore.getCurrentLocation: navigator has geolocation");navigator.geolocation.getCurrentPosition(self.getCurrentLocation_callback,self.getCurrentLocation_errback);}else{if(geo_data){self.getCurrentLocation_callback({coords:{latitude:geo_data.latitude,longitude:geo_data.longitude}});}else{$.get("http://j.maxmind.com/app/geoip.js",{},self.getCurrentLocation_callback).error(self.getCurrentLocation_errback);$("#about-dialog-content").append('<p style="font-size: 0.6em;">Some IP lookups provided by <a href="http://www.maxmind.com/">MaxMind</a></p>');}}};this.getCurrentLocation_callback=function(position){var lat,lng,coords;if(typeof position==="string"){try{eval(position);position={latitude:geoip_latitude(),longitude:geoip_longitude()};}catch(e){}}if(((coords=position.coords)&&!(isNaN((lat=parseFloat(coords.latitude,10)))||isNaN((lng=parseFloat(coords.longitude,10)))))||(!(isNaN((lat=parseFloat(position.latitude,10)))||isNaN((lng=parseFloat(position.longitude,10)))))){debug_log("Got new location: lat: "+lat+" lng: "+lng);self.current_latlng=new google.maps.LatLng(lat,lng);self.fireEvent("getCurrentLocation",self.current_latlng);self.getStationsNearCoordinates(lat,lng);return;}debug_log("WARNING: no addr returned from server for this IP");self.fireEvent("getCurrentLocation_error",{req:{error:"unable to obtain IP Address"},status:null,err:null});};this.getCurrentLocation_errback=function(req,status,err){if(req.code&&req.message){err=req;var err_msg=err.message;switch(err.code){case (err.PERMISSION_DENIED):err_msg+=" - Permission Denied";break;case (err.POSITION_UNAVAILABLE):err_msg+=" - Your Position is Unavailable";break;case (err.TIMEOUT):err_msg+=" - Timed Out";break;default:break;}req={responseText:err_msg,error:err_msg};}debug_log("ERROR: getting IP from server: "+(req.responseText?req.responseText:"unknown"));self.fireEvent("getCurrentLocation_error",{req:req,status:status,err:err});};this.delayCenterChange=function(new_center,zoom,distance){if(self.delayedCenterChangeTimer){try{window.clearTimeout(self.delayedCenterChangeTimer);}catch(e){}finally{self.delayedCenterChangeTimer=null;}}if(zoom>=self.MIN_THROTTLE_ZOOM_LEVEL){self.last_distance=distance;self.current_latlng=new_center;self.zoom_level=zoom;self.getStationsNearCoordinates();self.saveSettings();return;}self.delayedCenterChangeTimer=window.setTimeout(function(){self.last_distance=distance;self.current_latlng=new_center;self.zoom_level=zoom;self.getStationsNearCoordinates();self.saveSettings();},1000);};this.checkMapCenterChanged=function(){var new_center=self.map.getCenter(),dist=google.maps.geometry.spherical.computeDistanceBetween(self.current_latlng,new_center),zoom=self.map.getZoom();if(dist>=(self.last_distance*0.5)&&zoom>=self.MIN_NEARBY_ZOOM_LEVEL&&!self.visibleInfoWindow){self.delayCenterChange(new_center,zoom,dist);}};this.onMapCenterChanged=function(){if(!self.editing_location_marker){self.checkMapCenterChanged();}};this.onMapZoomChanged=function(){var new_center=self.map.getCenter(),dist=google.maps.geometry.spherical.computeDistanceBetween(self.current_latlng,new_center),zoom=self.map.getZoom();if(!self.editing_location_marker&&zoom>=self.MIN_NEARBY_ZOOM_LEVEL&&!self.visibleInfoWindow){self.delayCenterChange(new_center,zoom,dist);}};this.closeVisibleInfoWindow=function(evt){if(self.visibleInfoWindow){self.visibleInfoWindow.close();}self.onInfoWindowCloseClicked();};this.onInfoWindowCloseClicked=function(){if(self.pseudoMarker){self.pseudoMarker.setMap(null);self.pseudoMarker=null;}hideSharePopoverFromStationDetail();self.visibleInfoWindow=null;};this.initMap=function(latlng){if(self.map){return;}debug_log("Explore.initMap");var should_show_legend=false;if(!latlng){latlng=self.getDefaultLocation();show_legend();should_show_legend=true;}$("#map-wrapper").css("visibility","visible");$("#map-wrapper").animate({opacity:1},100);$("#rightwrapper").animate({opacity:0},100);var opts={backgroundColor:"#FFFFFF",zoom:self.zoom_level,mapTypeId:self.map_type_id,center:latlng,mapTypeId:google.maps.MapTypeId.ROADMAP},event=google.maps.event,map;map=self.map=new google.maps.Map(document.getElementById("map-canvas"),opts);event.addListener(map,"center_changed",self.onMapCenterChanged);event.addListener(map,"zoom_changed",self.onMapZoomChanged);event.addListener(map,"click",self.closeVisibleInfoWindow);event.addListener(map,"dragstart",self.closeVisibleInfoWindow);if(self.editing_location_marker){self.editing_location_marker.setMap(self.map);self.showEditLocationViews();}else{if(should_show_legend){show_legend();}self.getStationsNearCoordinates();}};this.showMap=function(lat,lng,zoom){debug_log("Explore.showMap");if(isValidLat(lat)&&isValidLon(lng)){debug_log("Explore.showMap: setting self.current_latlng");self.current_latlng=new google.maps.LatLng(lat,lng);}if(zoom&&!$.isNaN(zoom=parseInt(zoom,10))&&isValidZoom(zoom)){self.zoom_level=zoom;}if(!self.map){if(!self.current_latlng){self.addEventHandlerOnce("getCurrentLocation",self.showMap);self.addEventHandlerOnce("getCurrentLocation_error",function(){self.getDefaultLocation();self.showMap();});self.getCurrentLocation();return;}self.initMap(self.current_latlng);return;}$("#map-wrapper").css("visibility","visible");$("#map-wrapper").animate({opacity:1},100);$("#rightwrapper").animate({opacity:0},100);self.isShowingMap=true;self.map.setCenter(self.current_latlng);if(self.editing_location_marker){self.editing_location_marker.setMap(self.map);self.showEditLocationViews();}else{self.getStationsNearCoordinates();}};this.getStationsNearCoordinates=function(lat,lng){var params,sw_lat,sw_lng,ne_lat,ne_lng,bnds,sw,ne;if(!(self.map&&(bnds=self.map.getBounds()))){window.setTimeout(function(){self.getStationsNearCoordinates();},1000);return;}sw=bnds.getSouthWest();ne=bnds.getNorthEast();sw_lat=sw.lat();sw_lng=sw.lng();ne_lat=ne.lat();ne_lng=ne.lng();params={min_lat:Math.min(sw_lat,ne_lat),min_lng:Math.min(sw_lng,ne_lng),max_lat:Math.max(sw_lat,ne_lat),max_lng:Math.max(sw_lng,ne_lng),isPopular:self.filter_popular,isTrending:self.filter_trending,isNew:self.filter_new,isMy:self.filter_my,isNormal:self.filter_other,search:self.filter_search};$.getJSON(self.CALL_PATH+"stations/getNearBbox/",params,self.getStationsNearCoordinates_callback).error(self.getStationsNearCoordinates_errback);debug_log("getStationsNearCoordinates request: "+self.CALL_PATH+"stations/getNearBbox/?"+$.param(params));};this.getStationsNearCoordinates_callback=function(data){self.data=data;var nbys=[],mp={},os,stn;if(typeof data.wrapper!=="undefined"){os=data.wrapper;for(var i=0,nd=os.length;i<nd;i++){stn=new Station().buildFromData(os[i]);if(!stn.hasCoordinate){debug_log("Station has invalid coordinates");continue;}nbys.push(stn);mp[stn.stationId]=stn;}}else{debug_log("WARNING: no nearby stations returned");}self.nearby_stations=nbys;self.nearby_stations_map=mp;self.setStationsOnMap(nbys);self.fireEvent("getStationsNearCoordinates",nbys);};this.getStationsNearCoordinates_errback=function(req,status,err){var err_data={req:req,status:status,err:err};self.fireEvent("getStationsNearCoordinates_error",err_data);};this.addEventHandler("getCurrentLocation",this.getStationsNearCoordinates);this.getNearbyStation=function(station_id){var mp=self.nearby_stations_map,stn=null;if(mp&&station_id){stn=mp[station_id];stn=stn?stn:null;}return stn;};this.getClusterStations=function(clust_markers){var stations=[],stn,nsm=self.nearby_stations_map;for(var i=0,nd=clust_markers.length;i<nd;i++){stn=nsm[clust_markers[i].get("stationId")];if(stn){stations.push(stn);}}return stations;};this.cluster_calculate=function(markers,numStyles){return{text:"",index:1};};this.createClusterer=function(markers){var cluster_styles=[{width:40,height:40,url:"/images/stations/map_pin_multiple.png"}],opts={averageCenter:true,gridSize:40,zoomOnClick:false,imagePath:"images/stations",imageExtension:"png",imageSizes:[40],styles:cluster_styles,calculator:self.cluster_calculate,zoomOnClick:false,title:"Cluster of Stations"},clusterer=null;self.markercluster=clusterer=new MarkerClusterer(self.map,markers,opts);var event=google.maps.event;event.addListener(clusterer,"click",self.onClusterClicked);event.addListener(clusterer,"clusteringend",self.updateMarkersMap);event.addListener(clusterer,"clusteringstart",self.clusteringStarted);return clusterer;};this.clusterMarkers=function(markers){var clusterer=self.markercluster;self.clusteringStarted();if(clusterer){clusterer.clearMarkers();clusterer.addMarkers(markers);}else{clusterer=self.createClusterer(markers);}};this.clusteringStarted=function(){self.is_clustering=true;self.stopClusterBounce();};this.updateMarkersMap=function(){var clusterer=self.markercluster,clusters=clusterer.getClusters(),markers=self.markers,sid_mkr_map={},m,cluster,cluster_markers;for(var i=0,nd=markers.length;i<nd;i++){m=markers[i];sid_mkr_map[m.get("stationId")]=m;}for(var j=0,jnd=clusters.length;j<jnd;j++){cluster=clusters[j];if(cluster.getSize()<2){continue;}cluster_markers=cluster.getMarkers();for(var k=0,knd=cluster_markers.length;k<knd;k++){m=cluster_markers[k];sid_mkr_map[m.get("stationId")]=cluster;}}self.station_id_marker_map=sid_mkr_map;self.is_clustering=false;};this.onCarouselWillMove=function(elems){hideSharePopoverFromStationDetail();};this.onCarouselMovedToItems=function(elems,tot_elems){var sdp=$("#stationdetail-group-pagenums"),n_elems=elems.length,ix=n_elems>0?parseInt($(elems[0]).attr("itemIndex"),10):1;sdp.text(((isNaN(ix)?0:ix)+1)+" of "+tot_elems);};this.createClusterCarousel=function(clust_markers){var jq_cc=$("#stationdetail-carousel"),go_sels=[],tot_elems=clust_markers.length;for(var i=0,nd=clust_markers.length;i<nd;i++){go_sels.push(i+"");}jq_cc.jCarouselLite({btnPrev:"#carousel-prev-button",btnNext:"#carousel-next-button",btnGo:go_sels,circular:false,start:0,visible:1,scroll:1,easing:"easeOutSine",mouseWheel:true,beforeStart:self.onCarouselWillMove,afterEnd:function(elems){self.onCarouselMovedToItems(elems,tot_elems);}});};this.onClusterClicked=function(cluster){self.closeVisibleInfoWindow();var clust_markers=cluster.getMarkers(),iw,mvc,pos,h,stations=self.getClusterStations(clust_markers);h=$(render.stationDetailGroup({stations:stations}));iw=self.visibleInfoWindow=new google.maps.InfoWindow({content:h[0]});pos=cluster.getCenter();self.pseudoMarker=mvc=new google.maps.Marker({position:pos,icon:null,title:""});mvc.setVisible(false);mvc.setMap(self.map);google.maps.event.addListenerOnce(iw,"closeclick",self.onInfoWindowCloseClicked);google.maps.event.addListenerOnce(iw,"domready",function(){self.createClusterCarousel(clust_markers);});iw.open(self.map,mvc);};this.setStationsOnMap=function(stations){var opts=null,stn=null,marker=null,icn=null,markers=[],mkOnClicked=function(marker,station){return function(){var iw,h;if(self.visibleInfoWindow){self.visibleInfoWindow.close();self.onInfoWindowCloseClicked();}h=$(render.stationDetail({station:station}));iw=self.visibleInfoWindow=new google.maps.InfoWindow({content:h[0]});google.maps.event.addListenerOnce(iw,"closeclick",self.onInfoWindowCloseClicked);iw.open(self.map,marker);};};for(var i=0,nd=stations.length;i<nd;i++){stn=stations[i];if(stn.isTrending){icn=self.IMAGE_TRENDING;}else{if(stn.isPopular){icn=self.IMAGE_POPULAR;}else{if(stn.isMy){icn=self.IMAGE_MY;}else{if(stn.isNew){icn=self.IMAGE_NEW;}else{icn=self.IMAGE_OTHER;}}}}opts={position:new google.maps.LatLng(stn.lat,stn.lon),icon:icn,title:stn.name};marker=new google.maps.Marker(opts);marker.set("stationId",stn.stationId);markers.push(marker);google.maps.event.addListener(marker,"click",mkOnClicked(marker,stn));}self.markers=markers;self.clusterMarkers(markers);};this.startClusterBounce=function(cluster){return;var posns=[],cur_ix=0,end_ix=0,t=0,s=0,e=20,tt=200,v=0,df=tt/(e*0.2);while(t<tt){v=$.easing.easeInOutSine(null,t,s,e,tt);a.push(v);t+=d;}};this.stopClusterBounce=function(){var cb=self.cluster_bounce;if(cb){window.clearInterval(cb.interval);self.cluster_bounce=null;}};this.startMarkerBounce=function(station_id){var marker=self.station_id_marker_map[station_id];if(self.is_clustering){return;}if(marker instanceof google.maps.Marker){marker.setAnimation(google.maps.Animation.BOUNCE);}else{if(marker instanceof Cluster){self.startClusterBounce(marker);}}};this.stopMarkerBounce=function(station_id){var marker=self.station_id_marker_map[station_id];if(marker instanceof google.maps.Marker){marker.setAnimation(null);}else{if(marker instanceof Cluster&&self.cluster_bounce&&marker===self.cluster_bounce.cluster){self.stopClusterBounce();}}};this.clearSettings=function(){var stor=$.Storage;stor.remove("raditaz.Explore.settings.zoom_level");stor.remove("raditaz.Explore.settings.map_type_id");stor.remove("raditaz.Explore.settings.current_latlng");};this.saveSettings=function(){var stor=$.Storage,usr=page.currentUser,latlng=self.current_latlng;self.clearSettings();stor.set({"raditaz.Explore.settings.zoom_level":self.zoom_level+"","raditaz.Explore.settings.map_type_id":self.map_type_id,"raditaz.Explore.settings.current_latlng":latlng+""});if(usr.loggedIn&&latlng){usr.saveCurrentLocation(latlng.lat(),latlng.lng());}};this.restoreSettings=function(){var stor=$.Storage,zl,mti,cll,mtss=google.maps.MapTypeId,rmtss=new RegExp("^"+[mtss.HYBRID,mtss.ROADMAP,mtss.SATELLITE,mtss.TERRAIN].join("|")+"$"),usr=page.currentUser,lat=null,lng=null;zl=stor.get("raditaz.Explore.settings.zoom_level");if(!isNaN((zl=parseInt(zl,10)))){self.zoom_level=zl;}mti=stor.get("raditaz.Explore.settings.map_type_id");if((typeof mti==="string"&&rmtss.test(mti))){self.map_type_id=mti;}cll=stor.get("raditaz.Explore.settings.current_latlng");if((cll=parse_lat_lng(cll))){self.current_latlng=cll;}if(usr.isLoggedIn&&(lat=usr.lat)&&(lng=usr.lon)&&(isValidLat(lat)&&isValidLon(lng))){self.current_latlng=new google.maps.LatLng(lat,lng);}};this.editStationLocation=function(start_lat,start_lng,stn_name){var loc,opts;if(isValidLat(start_lat)&&isValidLon(start_lng)){self.current_latlng=loc=new google.maps.LatLng(start_lat,start_lng);}else{if(self.current_latlng){loc=self.current_latlng;}else{self.addEventHandlerOnce("getCurrentLocation",function(latlng){self.editStationLocation(null,null,stn_name);});self.addEventHandlerOnce("getCurrentLocation_error",function(err_data){self.getDefaultLocation();self.editStationLocation(null,null,stn_name);});self.getCurrentLocation();return;}}opts={animation:google.maps.Animation.DROP,position:loc,icon:self.IMAGE_HERE,title:"Editing "+stn_name,draggable:true,raiseOnDrag:true,zIndex:google.maps.Marker.MAX_ZINDEX};self.editing_location_marker=new google.maps.Marker(opts);self.editLocationStartedWithOpenMap=false;if(self.isShowingMap){self.editLocationStartedWithOpenMap=true;self.map.setCenter(self.current_latlng);self.showEditLocationViews();}else{self.showMap();}};this.editLocationSave=function(evt){var new_loc,stn,usr;if(self.editing_location_marker){new_loc=self.editing_location_marker.position;self.editing_location_marker.setMap(null);self.editing_location_marker=null;}if(new_loc){if((stn=page.editingStation)){stn.oldLatLng={lat:stn.lat,lon:stn.lon};stn.lat=new_loc.lat();stn.lon=new_loc.lng();}}self.saveSettings();self.hideEditLocationViews();};this.editLocationCancel=function(evt){if(self.editing_location_marker){self.editing_location_marker.setMap(null);self.editing_location_marker=null;}self.hideEditLocationViews();};this.showEditLocationViews=function(){if(page.editingStation){$("#edit-station-dialog").dialog("close");}else{if(page.editingUserDefaultLocation){$("#account-dialog").dialog("close");}}$("#editing-location-bar").fadeIn("fast");$("body").bind("keydown",self.handleWindowKeyEscEnter);self.editing_location_marker.setMap(self.map);};this.hideEditLocationViews=function(){$("#editing-location-bar").fadeOut("fast");$("body").unbind("keydown",self.handleWindowKeyEscEnter);if(page.editingStation){$("#edit-station-dialog").dialog("open");}if(!self.editLocationStartedWithOpenMap){hide_explore();}self.editLocationStartedWithOpenMap=false;};this.handleWindowKeyEscEnter=function(evt){var kc=evt.keyCode;if(kc==$.ui.keyCode.ENTER){evt.stopImmediatePropagation();self.editLocationSave();}else{if(kc==$.ui.keyCode.ESCAPE){evt.stopImmediatePropagation();self.editLocationCancel();}}};this.clearStoredFilters=function(){var stor=$.Storage;stor.remove("raditaz.Explore.filter_popular");stor.remove("raditaz.Explore.filter_trending");stor.remove("raditaz.Explore.filter_new");stor.remove("raditaz.Explore.filter_my");stor.remove("raditaz.Explore.filter_other");stor.remove("raditaz.Explore.filter_search");};this.saveFilters=function(){self.clearStoredFilters();var stor=$.Storage;stor.set({"raditaz.Explore.filter_popular":self.filter_popular+"","raditaz.Explore.filter_trending":self.filter_trending+"","raditaz.Explore.filter_new":self.filter_new+"","raditaz.Explore.filter_my":self.filter_my+"","raditaz.Explore.filter_other":self.filter_other+"","raditaz.Explore.filter_search":self.filter_search});};this.restoreFilters=function(){var stor=$.Storage,b_val,s_val;function get_bool_item(name,dflt){b_val=stor.get(name);if(!(typeof b_val==="string")){return dflt;}return bool_from_item(b_val);}self.filter_popular=get_bool_item("raditaz.Explore.filter_popular",self.filter_popular);self.filter_trending=get_bool_item("raditaz.Explore.filter_trending",self.filter_trending);self.filter_new=get_bool_item("raditaz.Explore.filter_new",self.filter_new);self.filter_my=get_bool_item("raditaz.Explore.filter_my",self.filter_my);self.filter_other=get_bool_item("raditaz.Explore.filter_other",self.filter_other);s_val=stor.get("raditaz.Explore.filter_search");if(typeof s_val==="string"){self.filter_search=s_val;}};return this;};Explore.prototype=new Model();Explore.prototype.constructor=Explore;var Page=function Page(){window.player=this.player=new Player();window.explore=this.explore=new Explore();this.explore.init();this.playHistory=[];this.stationHistory=[];this.currentUser=new User();this.currentStation=new Station();this.editingStation=null;this.playCount=0;this.unauthedPlayCount=0;this.PLAY_COUNT_ALERT=100;this.UNAUTHED_PLAY_COUNT_ALERT=7;this.topStations=null;this._2011Hits=null;this.topHitByYear=null;this.decades=null;this.genres=null;this.comedy=null;this.trendingStations=[];this.tagStations={};this.isLoadingCategories=false;this.pendingCategoryTables={};var c=this;var b=function(){};this.incrementPlayCount=function(){c.playCount++;};this.resetPlayCount=function(){c.playCount=0;};this.incrementUnauthedPlayCount=function(){c.unauthedPlayCount++;if(c.unauthedPlayCount>c.UNAUTHED_PLAY_COUNT_ALERT){c.fireEvent("unauthedPlayCountAlert",c.unauthedPlayCount);}};this.resetUnauthedPlayCount=function(){c.unauthedPlayCount=0;};this.setCurrentStation=function(i){var l=i.seed,q=i.stationId,A=i.name,k=i.userId,m=bool_from_item(i.waitForSong),x=bool_from_item(i.isPrebuilt),j=bool_from_item(i.isTemporary),u=i.leadWith,s=bool_from_item(i.createdFromTempForUser),n=q?c.getStation(q):null,o,v,z;$("#intro-page").hide();if(!m){m=false;}if(contentFlow){contentFlow.firstLoad=true;}o=c.currentStation;o.seed=l;o.stationId=q;if(n){o.skips=n.skips;}o.tempStationId=null;v=o.name=((typeof A==="string"&&A.length>0)?A:((typeof l==="string")?l:""));o.userId=checked_int_id(k);o.isPrebuilt=x?true:false;o.isTemporary=j?true:false;z=c.currentUser;var w=false,r=false;if(z.loggedIn){w=true;r=(q&&z.hasStationFavorited(q));}favoriteStationButton.setEnabled(w);favoriteStationButton.setSelected(r);editStationButton.setSelected(false);if(q){debug_log("will play saved station: "+q);c.player.playSavedStation(o,A,u);if(z.loggedIn&&z.ownsStation(q)){editStationButton.setEnabled(true);$("#editstation").show();$("#favoritestation").hide();}else{$("#editstation").hide();$("#favoritestation").show();}}else{if(l){o.skips=[];c.player.seedStation(l,m,u);$("#editstation").hide();$("#favoritestation").show();}else{debug_log("will seed prebuilt station: "+o.stationId);c.player.playStation(o,u);$("#editstation").hide();$("#favoritestation").show();}}setStationTitle(v,!s);document.title="Raditaz // Music Moves // "+v;var e=u?"/?leadWith="+u:"";var h=checked_str_id(q);debug_log("have_station_id "+h+": "+q);if(h&&k){location.hash="/station/id/"+encodeURI(q)+e;}else{if(h){var p="";var y="id";if(x){y="prebuilt";var f=v.trim().split("-");p=f[0].trim();if(f.length>1){p+=" - "+f[1].trim();}}location.hash="/station/"+y+"/"+encodeURI(q)+"/"+(p?encodeURI(p):"")+e;}else{if(l){location.hash="/station/seed/"+encodeURI(l)+e;}}}c.fireEvent("updatedURL",location.href);if(z.loggedIn){c.fireEvent("updatedStationInfo",z.getOwnedStation(q));}var g=o.isPrebuilt?"prebuilt":((o.stationId!==null)?"user created":"artist");ga_recordEvent("play station",g,ga_stationLabel(o));};this.userCreatedStationCallback=function(g,f,h){var e=c.currentUser;if(e.loggedIn){c.setCurrentStation({seed:f.seed,stationId:f.stationId,name:f.name,userId:e.userId,waitForSong:false,isPrebuilt:false,isTemporary:false,leadWith:h,createdFromTempForUser:true});e.getStations();}};this.getStation=function(o){var u=null;if(c.currentUser.loggedIn&&(u=c.currentUser.getStation(o))){return u;}if((u=c.explore.getNearbyStation(o))){return u;}var q=c.topStations;if(q&&(u=q.getStation(o))){return u;}var f=c.topHitsByYear;if(f&&(u=f.getStation(o))){return u;}var r=c.decades;if(r&&(u=r.getStation(o))){return u;}var l=c.genres;if(l&&(u=l.getStation(o))){return u;}var p=c.trendingStations;for(var j=0,i=p.length;j<i;j++){u=p[j];if(o==u.stationId){return u;}}var h,k=c.tagStations;for(var t in k){h=k[t];for(var g=0,e=h.length;g<e;g++){u=h[g];if(o==u.stationId){return u;}}}if(o==c.currentStation.stationId){return c.currentStation;}return null;};this.getTrack=function(p){var l=c.playHistory;var o;var m=player.current_track;if(m&&m._id==p){return m;}var n=player.next_track;if(n&&n._id==p){return n;}for(var h=0,f=l.length;h<f;h++){o=l[h];if(o._id==p){return o;}}var k=c.stationHistory;for(var e=0,g=k.length;e<g;e++){o=k[e];if(o._id==p){return o;}}return null;};return this;};Page.prototype=new this.Model();Page.prototype.constructor=this.Page;
