
$.feature('f_points_summary',function(){$.live('.awards_link','click',function(){var category_slug=$(this).attr('id').split('-')[1];$('#award_links > li').removeClass('selected');$(this).parent().parent().addClass('selected');$('div.awards-container').hide();$('#awards-'+category_slug).animate({height:'show'},'medium');return false;});});
$.feature('f_devblog',function(e){$.live(".comment_submit_button",'click',function(){$(this).hide();$(this).closest('form').find('.posting_comment').show();});$('#post_tumblelog #id_content').keyup(function(){var elem=$('#post_tumblelog #id_content');elem.val(elem.val().substr(0,140));});});
$.feature('browse_games',function(){$('#browse_filters select').change(function(){var $this=$(this);window.location.href=$this.val();return false;});});
$(function(){$('#filters').submit(function(){var url="/a/gamers";$('.browse_gamers_list input').each(function(){$(this).val($(this).is(":checked")?'on':'');});var i=0;function add(name){var data=$('#filter_'+name).val();if(!data){return;}
if(i===0){url+='?';}else{url+='&';}
url+=name+'='+escape(data);i+=1;}
add('sortorder');add('country');add('gender');add('age_min');add('age_max');add('platform');add('online');add('playing');window.location=url;return false;});});
$.feature('f_trophy_cabinet',function(){function expand(link){var game_id=link.attr('id').split('_',3)[2];$('#expanded-'+game_id).show();$('#collapsed-'+game_id).hide();$('#expanded-trophies-'+game_id).animate({height:'show'},'medium');return false;}
function collapse(link){var game_id=link.attr('id').split('_',3)[2];$('#collapsed-'+game_id).show();$('#expanded-'+game_id).hide();$('#expanded-trophies-'+game_id).hide();return false;}
$.live('.expand-link','click',function(){return expand($(this));});$.live('.collapse-link','click',function(){return collapse($(this));});$('#expand_all_link').click(function(){$('#expand_all').hide();$('#collapse_all').show();$('.expand-link').each(function(){expand($(this));});return false;});$('#collapse_all_link').click(function(){$('#expand_all').show();$('#collapse_all').hide();$('.collapse-link').each(function(){collapse($(this));});return false;});});
$.feature('f_clans_groups',function(){$('ul.clans_groups').bind_expandable_divs($('ul.clans_groups > li'));$('ul.cg_invites').bind_expandable_divs($('ul.cg_invites > li'));$('.promote_link input').click(function(){$(this).select();});$.live('a.request_community_membership','click',function(){var a=$(this);var url=a.attr('href');a.attr('href','#');if(url&&url!=='#'){pf_ajax({url:url,success:function(data){var inner=$('span',a);if(!inner.length){inner=a;}
inner.html('Membership requested');},error:function(xhr,textStatus,errorThrown){a.attr('href',url);}});}
return false;});$.live('a.show_playing_games','click',function(){$(this).closest('.playing').find('.playing_games').show();$(this).remove();});$.declare_text_count('$N membership request','$N membership requests');$.declare_text_count('$N new clan invitation','$N new clan invitations');$.declare_text_count('$N new group invitation','$N new group invitations');var Interactor=function(){this.collect_data=function(){var data={};this.iter_inputs(function(){var name=$(this).attr('name');if(data[name]!==undefined){data[name].push($(this).val());}else{data[name]=[$(this).val()];}});return data;};this.iter_inputs=function(callback){this.context.find('input').each(callback);};this.community_type=$('input#community_type').val();this.run=function(){var data=this.collect_data();var self=this;if(data){pf_ajax({url:this.link.find('input[type=hidden]').val(),data:data,success:function(data){self.process_result(data);}});}};this.render=function(container,data,template){var css_class=template[0];var tstring=template[1];data.com_type=this.community_type;var out=tstring.replace(/%\((\w+)\)s/g,function(match,varname){return data[varname];});container.empty().addClass(css_class).append('<p>'+out+'</p>');};this.count_results=function(results){var c=0;for(r in results){c++;}
return c;};this.process_result=function(data){var self=this;this.iter_inputs(function(){var key=self.result_key_from_input($(this));if(data.results[key]){var cont=self.get_context($(this));self.render(cont,self.get_template_data(cont),self.templates[data.results[key]]);}});var n_counts=$('span.num_notifications').filter('.active span.num_notifications');n_counts=n_counts.add($('h2',self.context.closest('form')));n_counts=n_counts.add('#nav_home > a > .num_notifications');n_counts.text_count().decrement(this.count_results(data.results));};};var base_interactor=new Interactor();Interactor.types={invite:function(link,context){this.link=link;this.get_context=function(el){return el.closest('li');};this.context=context||this.get_context(link);this.templates={accepted:['accepted','You are now a member of the %(com_type)s %(com)s'],requested:['accepted','Your request to join the %(com_type)s %(com)s has been sent'],declined:['declined','You have declined to join the %(com_type)s %(com)s'],blocked:['blocked','You have blocked %(inviter)s from sending you community invites.']};this.result_key_from_input=function(el){return el.val();};this.get_template_data=function(context){var cg_a=context.closest('li').find('.cg_summary .name a');var com_text='<a href="'+cg_a.attr('href')+'">'+cg_a.text()+'</a>';var inviter=context.closest('li').find('.cg_summary').attr('data-inviter');return{com:com_text,inviter:inviter};};this.super_run=this.run;this.run=function(){var confirm_lb=$('#lb_block_user_invitations');var self=this;if(link.attr('data-type')=='block'){confirm_lb.showPopup({on_confirm:function(){self.super_run.call(self);}});}else{self.super_run.call(self);}};},request:function(link,context){this.link=link;this.get_context=function(el){return el.closest('div.member_request');};this.context=context||this.get_context(link);this.templates={accepted:['accepted','You have accepted %(user)s as a member of the %(com_type)s %(com)s'],rejected:['declined','You have rejected %(user)s as a member of the %(com_type)s %(com)s']};this.result_key_from_input=function(el){return el.attr('name')+'__'+el.val();};this.get_template_data=function(context){var cg_a=context.closest('li').find('.com_name a');var com_text='<a href="'+cg_a.attr('href')+'">'+cg_a.text()+'</a>';var user_a=context.find('.info .name a');var user_text='<a href="'+user_a.attr('href')+'">'+user_a.text()+'</a>';return{com:com_text,user:user_text};};}};Interactor.types.invite.prototype=base_interactor;Interactor.types.request.prototype=base_interactor;Interactor.types.block=Interactor.types.invite;$.live('a[id^=all_cg_]','click',function(){var link=$(this);var m=/all_cg_(\w+)_(\w+)/.exec(link.attr('id'));var mod_type=m[1];var choice=m[2];var handle=function(){var interactor=new Interactor.types[mod_type](link,link.closest('form'));interactor.run();};if(choice==='accept'){handle();}else{var confirm_lb=$('#lb_community_moderate_all');var action=choice+' all '+mod_type+'s';$('h2',confirm_lb).html(action.capitalize());$('a.confirm',confirm_lb).html(action.capitalize());$('div.content',confirm_lb).html('Are you sure you want to '+action+'?');confirm_lb.showPopup({on_confirm:handle});}
return false;});$.live('a.mod_com_request, a.mod_com_invite','click',function(){var link=$(this);var mod_type=link.attr('data-type');var interactor=new Interactor.types[mod_type](link);interactor.run();return false;});});$.feature('f_community_overview',function(){$('#pod_create_community input[type=text]').init_inline_label();$('#pod_search input[type=text]').init_inline_label();});$.feature('f_edit_community',function(){setup_multi_widget('div.multi_user_widget',function(data){var name=data[1];var image=data[2];return('<img class="avatar" src="'+image+'" alt=""/><div class="user_name">'+
name+'</div>');});});$(function(){var community_info=function(el){var li=el.closest('li.cg');return{root:li,name:li.find('.name')};};$.live('a.leave_cg','click',function(){var link=$(this);var cinfo=community_info(link);$.confirm('Are you sure you want to leave "'+cinfo.name.text()+'"?',function(){pf_ajax({url:link.attr('href'),success:function(data){cinfo.root.slideUp();}});});return false;});$.live('a.delete_cg','click',function(){var link=$(this);var cinfo=community_info(link);$.confirm('Are you sure you want to delete "'+cinfo.name.text()+'"?  It will be gone forever!',function(){pf_ajax({url:link.attr('href'),success:function(data){cinfo.root.slideUp();}});});return false;});});$(function(){function show_invite_friends_popup(data){$(document.body).append(data);$('#lb_community_invite_friends').showPopup({closeSelector:'.close_popup',dispose:true});}
$.live('a#invite_friends_to_community','click',function(){$.get('/a/popup/invite_friends_to_community',{type:$('#community-type').val(),slug:$('#community-slug').val()},function(data){show_invite_friends_popup(data);});return false;});$.live('#select_all_friends','click',function(){var checked_status=this.checked;$("input[name=friend_ids]").each(function(){this.checked=checked_status;});});$.live('#lb_community_invite_friends .btn_submit','click',function(){var lb=$('#lb_community_invite_friends');var friend_ids=$.makeArray($.map(lb.find('li input:checked'),function(input){return $(input).val();}));$.post('/a/popup/invite_friends_to_community',{type:lb.find('input[name=type]').val(),slug:lb.find('input[name=slug]').val(),select_all_friends:$('#select_all_friends').val(),friend_ids:friend_ids},function(data){lb.remove();show_invite_friends_popup(data);});return false;});});$(function(){var community_type=$('input#community-type').val();var community_id=$('input#community-id').val();$.live('.members_list a[id^="community_kick_user-"]','click',function(){var confirm=window.confirm("Are you sure you want to remove this user from your community?");if(!confirm){return false;}
var el=$(this);var user_id=/community_kick_user-(.*)/.exec(el.attr('id'))[1];$.ajaxPost({url:'/a/xhr/kick_from_community',data:{type:community_type,community_id:community_id,user_id:user_id},loading_anim:{pos:'after',element:el},success:function(data){if(data.status=='success'){var p=$('<p>User removed.</p>');el.after(p);el.hide();}},error:function(xhr,textStatus,errorThrown){}});return false;});});$.feature('f_community_list',function(){var tbody=$('table.communities tbody');var rows=$('tr',tbody);tbody.bind_expandable_divs(rows);});$.feature('page_community',function(){$('a.game').boxart_bubble(34,24);});
$.feature('f_edit_profile',function(){var remaining_gallery_spaces=null;$.live(".gallery_image a.remove",'click',function(){var image_div=$(this).parent().get(0);var m=/js_gallery_image_(\d+)/.exec(image_div.id);var id=m[1];$("a.remove",$(image_div)).css('background',"white url('"+loading_image_url+"') no-repeat left");$.post("/a/profile/remove_gallery_image",{'image_id':id},function(json){if(json.status=="success"){$(image_div).fadeOut("slow",function(){$(image_div).remove();});remaining_gallery_spaces=json.remaining;$("#image-spaces-left").html(remaining_gallery_spaces+"");}},"json");return false;});var update_remaining_count=function(){remaining_gallery_spaces=Global.max_gallery_spaces-$('#gallery-editor').find('div.gallery_image').length;if(remaining_gallery_spaces<0){remaining_gallery_spaces=0;}
$("#image-spaces-left").html(remaining_gallery_spaces+"");};update_remaining_count();$("#set-youtube-video").click(function(){$.ajax({type:"POST",url:"/a/profile/set_youtube_video",data:{'url_or_embed':$("#profile-video-input").val()},dataType:'json',success:function(data,text_status){if(data.status=='success'){$('#youtube-video-container').html(data.vid_embed);}else{$('#youtube-video-error').html(data.msg||"Sorry, an error occured.");}},error:function(XHR,text_status,error){$('#youtube-video-error').html("Something is horribly wrong!");}});return false;});$("#upload_profile_picture").click(function(){return uploadFile("profile-pic-input");});$("#upload_rig_picture").click(function(){return uploadFile("profile-rig-input");});$("#upload-gallery-image").click(function(){if(remaining_gallery_spaces<=0){return false;}
return uploadFile("profile-gallery-image-input",update_remaining_count);});});
$.feature('f_forum',function(){$('#search_forums').init_inline_label();$.live('.hide_stickies','click',function(){var a=$(this);$('#forum_stickies').find('.stickies_content').hide();a.removeClass('hide_stickies').addClass('show_stickies').addClass('collapsed').text('Show');pf_ajax({url:a.attr('href'),type:'POST',data:{'action':'hide'}});return false;});$.live('.show_stickies','click',function(){var a=$(this);$('#forum_stickies').find('.stickies_content').show();a.removeClass('show_stickies').addClass('hide_stickies').removeClass('collapsed').text("Hide");pf_ajax({url:a.attr('href'),type:'POST',data:{'action':'show'}});return false;});var thread_hover_timeout=500;$('.forum_thread_post').mouseenter(function(){var post=$(this);post.attr('pf-hover','true');setTimeout(function(){var hover=post.attr('pf-hover');if(hover=='true'){post.find('.post_actions_inner').fadeIn(200);}},thread_hover_timeout);}).mouseleave(function(){var post=$(this);post.attr('pf-hover','false');setTimeout(function(){var hover=post.attr('pf-hover');if(hover=='false'){post.find('.post_actions_inner').fadeOut(200);}},thread_hover_timeout);});});
$.feature('f_game_page',function(){$('#game_rating_comment').init_inline_label();$('#id_text').init_inline_label();$('#id_answer_text').init_inline_label();$("#pod_game_details").hide();$.live(".pod_tabs a","click",function(){var li=$(this).closest('li');var tag_class=/\b(about|details)\b/.exec(li.attr('class'))[1];$("#pod_game_details, #pod_game_about").hide();li.closest('ul').find('li').removeClass('active');$("#pod_game_"+tag_class).show();li.addClass('active');return false;});$.live("#pod_game_about a.read_more",'click',function(){$(this).text("Read less").addClass("read_less").parent().height("auto").height($(this).parent().height()+26);return false;});$.live("#pod_game_about a.read_less",'click',function(){$(this).text("Read more").removeClass("read_less").parent().height("170px");return false;});$.live('div#pod_game_about a.friends_also','click',function(){var link=$(this);var also_div=link.closest('div.friends_also');var friends=also_div.find('div.friends');if(link.hasClass('expanded')){friends.hide();link.removeClass('expanded');}else if(friends.length){friends.show();link.addClass('expanded');}else{var game_id=$('input#game_id').val();var content_type=link.hasClass("friends_also_own")?"own":"rated";pf_ajax({url:"/a/game/"+game_id+"/xhr/friends/"+content_type,data:{},type:'GET',success:function(data,textStatus){also_div.append(data.content);link.addClass('expanded');}});}
return false;});});$.feature('f_game_image',function(){$(document).ready(function(){var hash=window.location.hash.replace('#','');if(hash&&/^\d+$/.test(hash)){window.location=window.location.href.replace(new RegExp('/[^/]+$'),'/'+hash);}});$.live('.media_view a.next, .media_view a.prev, .media_gallery ul a','click',function(){var game_id=$('input#game_id').val();var game_slug=$('input#game_slug').val();var other_image_id=$(this).attr('rel');pf_ajax({url:'/a/game/'+game_id+'/xhr/images/'+other_image_id,data:{},type:'GET',success:function(data,textStatus){$('.media_info').html(data.media_info_html);var add_link=$('.media_info .ddl_add_content a.label');add_link.attr('href',add_link.attr('href')+game_id);$('.media_view').html(data.media_view_html);var num_comments_text=data.num_comments+' comment'+(data.num_comments!=1?'s':'');$('#right_side_content h2 .num_comments').text(num_comments_text);$('.inline_comments').replaceWith(data.comments_html);$('.inline_comments .textarea_wrapper textarea').init_inline_label();$('form.feed_comment').submit(submit_comment);window.location.hash='#'+data.image_id;url='/a/game/0000/images/1111/xhr'.replace('0000',game_slug).replace('1111',other_image_id);_gaq.push(['_trackPageview',url]);}});return false;});});
$.feature('f_invite_friends',function(){$('.input input').click(function(){$(this).select();});$('#invite-friend').submit(function(){var form=$(this);var email=form.find('#invite-friend-email').val();if(email===''){return false;}
$('#invite-friend-error').html('').hide();if(form.find('#xhr-loader').size()<1){form.append('<img id="xhr-loader" src="'+loading_image_url+'" />');}else{form.find('#xhr-loader').show();}
$.post('/a/xhr/send_single_email_invite',{xhr:'true',email:email},function(json){form.find('#xhr-loader').hide();if(json.status=='success'){form.find('#invite-friend-email').val('');$('#invite-friend-status').prepend('<li>'+json.email+' <strong>invitation sent</strong></li>');if($('#invite-friend-status li').length>4){$('#invite-friend-status li:last').remove();}}else{var responses=[];responses['already_taken']='The person with that email address already has an account.';responses['redundant']='The person with that email address has already been invited.';responses['value_error']='That email address is invalid - please check and try again.';$('#invite-friend-error').html(responses[json.reason]).show();}},'json');return false;});});
$.feature('f_leaderboard',function(){$('.filter_section').change(function(){var parts=[];function add_part(name){parts.push([name,$('#filter_'+name).val()]);}
add_part('friends');add_part('location');var str=[];for(var i=0;i<parts.length;i++){if(parts[i][1]){str.push(parts[i][0]+'='+escape(parts[i][1]));}}
window.location=leaderboard_urlconf_base+(str.length?'?'+str.join('&'):'');});});
$.feature('f_microblog',function(){$('#pod_edit_post form').submit(maintenance_check);});
$.feature('f_notifications',function(){var fetching_more=0;var fetch_more=function(a){var num=++fetching_more;if(num>1){return false;}
pf_ajax({type:'POST',data:{},url:a.attr('href'),success:function(data){a.closest('div.group').find('ul').append(data.event_lis);if(data.new_link){a.attr('href',data.new_link);}else{a.remove();}
fetching_more=0;}});};$('#notifications a.show_more').live('click',function(e){fetch_more($(e.target));return false;});var total_count=$('.total_count');var get_total_count=function(){return parseInt(total_count.text().match(/^\s*(\d+)(.*?)s?\s*$/)[1],10);};var update_total_count=function(){var out=total_count.text().replace(/^\s*(\d+)(.*?)s?\s*$/,function(all,count,noun){var total=0;$('span.group_count').each(function(){total+=parseInt($(this).text(),10);});return total+noun+(total===1?'':'s');});total_count.text(out);};var get_group_count=function(group){var c=group.find('span.group_count');return parseInt(c.text(),10);};var confirm_deletion_count_threshold=10;$('a.clear_all').live('click',function(e){var delete_group=function(){var a=$(e.target);pf_ajax({type:'POST',url:a.attr('href'),data:{},success:function(data){var group=a.closest('div.group');group.slideUp(function(){group.remove();update_total_count();});}});};var group=$(this).closest('div.group');if(get_group_count(group)>=confirm_deletion_count_threshold||group.find('a.show_more').length>0){$('#lb_clear_notifications').showPopup({'fade':false,'on_confirm':delete_group});}else{delete_group();}
return false;});$('a.clear_all_groups').live('click',function(e){var delete_all=function(){var a=$(e.target);if(!a.is('a')){a=a.closest('a');}
pf_ajax({type:'POST',url:a.attr('href'),data:{},success:function(data){var all=$('#notifications');all.slideUp(function(){all.remove();update_total_count();});}});};if(get_total_count()>=confirm_deletion_count_threshold){$('#lb_clear_all_notifications').showPopup({'fade':false,'on_confirm':delete_all});}else{delete_all();}
return false;});});
$.feature('f_welcome',function(){$('#signup_username, #signup_password, #signup_email').init_inline_label();var form_submit_check=function(){var terms=$('#terms_checkbox',this);if(!terms.is(':checked')){var must_accept=$('#welcome_splash .must_accept');must_accept.animate({opacity:0},250,function(){must_accept.addClass('highlighted');}).animate({opacity:1},250);return false;}};$('#welcome_splash form').submit(form_submit_check);});