$.feature('my_games',function(){var game_search=function(input_el,err_handler)
{err_handler.hide();if(input_el.val()==="")
{err_handler.show("Please enter the title of the game that you would like to search for.");}
else
{var game_search_wrapper=input_el.closest('.game_search_wrapper');var search_origin=game_search_wrapper.find('input[name=search_origin]').val();game_search_wrapper.find('a.suggest_game').attr('href','/a/contribute/add_game_options?name='+escape(input_el.val()));var search_error=function(){err_handler.show("There was a problem performing the search.");game_search_wrapper.find(".xhr_loading").remove().end().find(".msg_start_searching").removeClass("msg_start_searching");};var search_results_wrapper=game_search_wrapper.find(".game_search_results").eq(0);input_el.after('<img class="xhr_loading" src="http://c.pfcdn.net/static/images/xhrloading_e0eef5.gif?9949b5" width="16" height="16" alt="Loading..." />');$.ajax({type:"GET",url:"/a/xhr/game_inline_search",dataType:"json",data:{q:input_el.val(),so:search_origin},error:search_error,success:function(data){err_handler.hide();if(data.status!='success'){search_error();return;}
var game_data=data.games;var platform_name_lookup=data.platforms;var lookup_platform_name=function(gpi){return platform_name_lookup[gpi[1]];};if(game_data.length>0)
{search_results_wrapper.find("div.search_results").eq(0).empty().append("<ul class='listfix' />");var has_gp=function(gpi){return gpi[2];};for(var i=0;i<game_data.length;i++)
{var row=game_data[i];var li_game=$("<li id='game_"+row.id+"' class='search_result'></li>");li_game.append("<img class='game_cover' src='"+row.avatar_small+"' width='31' height='46' />");li_game.append("<p class='game_title'><span class='title'>"+row.name+"</span></p>");var gp_data=row.gps;var owned_gp_data=[];var unowned_gp_data=[];var platform_id_lookup={};for(var j=0;j<gp_data.length;j++){var owned_or_unowned=(has_gp(gp_data[j])?owned_gp_data:unowned_gp_data);owned_or_unowned.push(gp_data[j]);platform_id_lookup[gp_data[j][0]]=gp_data[j][1];}
li_game.data('owned_gps',owned_gp_data);li_game.data('platform_id_lookup',platform_id_lookup);li_game.data('platform_name_lookup',platform_name_lookup);if(owned_gp_data.length>0)
{li_game.addClass("already_added");var pnames=jQuery.map(owned_gp_data,lookup_platform_name);var added_platforms=pnames.join(', ');var add_another=((owned_gp_data.length==gp_data.length)?"":"<span class='add_another_container'><a class='add_another' href='#'>+ Add another</a> | </span>");li_game.find(".game_title").eq(0).append("<br /><span class='added'>Already added for "+added_platforms+"</span>").after("<div class='already_added'>"+add_another+"<a class='edit_details' href='#'>Edit details</a> | <a class='remove' href='#'>Remove</a></div>");}
var platform_dropdown=$('<select class=\'platform\'></select>');for(var k=0,datalen=unowned_gp_data.length;k<datalen;k++){var gp_id=unowned_gp_data[k][0];var platform_name=platform_name_lookup[unowned_gp_data[k][1]];platform_dropdown.append($('<option value="'+gp_id+'"'+'>'+platform_name+'</option>'));}
var dropdown_div=$("<div style='display: none;' class='add'></div>").append(platform_dropdown).append($('<input type="image" src="http://c.pfcdn.net/static/images/buttons/add.png?cdfc61" width="45" height="21" alt="" />'));li_game.find(".game_title").after(dropdown_div);if(owned_gp_data.length===0){li_game.find("div.add").show();}
search_results_wrapper.find("ul.listfix").eq(0).append(li_game);}
search_results_wrapper.show().scrollTop(0);game_search_wrapper.find(".xhr_loading").remove().end().find(".msg_start_searching").removeClass("msg_start_searching");game_search_wrapper.find("div.add input").click(function(){var input_add=$(this);var search_origin=game_search_wrapper.find('input[name=search_origin]').val();var viewtype=game_search_wrapper.find('input[name=viewtype]').val();var gp_id=input_add.prev('select').val();var added_console=input_add.parent().find("select.platform :selected").text();var data={'gp_id':gp_id,'viewtype':viewtype};var args=search_origin.split(';');var m;for(var i=0;i<args.length;i++){m=/^(.*)=(.*)$/.exec(args[i]);data[m[1]]=m[2];}
$.ajaxPost({url:'/a/xhr/add_gameplatform',data:data,success:function(data){if(data.status=='success'){if(data.redirect_url!==''){location.href=data.redirect_url;}
var li_game=input_add.parents('li.search_result').eq(0);var platform_id=li_game.data('platform_id_lookup')[gp_id];li_game.data('owned_gps').push([gp_id,platform_id,true]);if(!li_game.hasClass("already_added"))
{li_game.addClass("already_added").find(".game_title").eq(0).append("<br /><span class='added'>Added for </span>");}
else
{li_game.find(".game_title .added").append(", ");}
if(li_game.find(".already_added").length>0)
{li_game.find(".already_added").show();}
else
{li_game.find(".game_title").after("<div class='already_added'><span class='add_another_container'><a class='add_another' href='#'>+ Add another</a> | </span><a class='edit_details' href='#'>Edit details</a> | <a class='remove' href='#'>Remove</a></div>");}
li_game.find("div.add").hide();li_game.find(".game_title .added").append(added_console);var lists=$('div.game_search_wrapper input[value='+search_origin+']');lists.each(function(){var games_list=$(this).parent('div').nextAll('div.games_container')[0];var list_ul=$(games_list).children('ul');if(list_ul.length===0){var box_div=$(games_list).children('div');box_div.addClass("box_art_inner");list_ul=box_div.children('ul');}
list_ul.prepend(data.game_li);list_ul.siblings('img.no_games_found').hide();});update_list_counts(data.counts,game_search_wrapper);var select=input_add.prev('select');select.find('option[value='+gp_id+']').remove();if(select.find('option:visible').length===0){select.hide();select.next('input').hide();li_game.find('span.add_another_container').hide();}
$('#list_games_consoles li#overview').addClass('updated');_gaq.push(['_trackPageview','/other-event/add-game']);}
return false;},error:function(xhr,textStatus,errorThrown){}});});}
else
{err_handler.show("No games found. <a href='/a/contribute/add_game_options?name="+escape(input_el.val())+"'>Can't find what you're looking for? Suggest new game.</a>");game_search_wrapper.find(".xhr_loading").remove().end().find(".msg_start_searching").removeClass("msg_start_searching").end().find(".game_search_results").hide();}}});}};$(".game_search_wrapper").each(function(){var game_search_wrapper=$(this);var search_input=game_search_wrapper.find(".game_search input.search").eq(0);var gs_err_handler=error_handler.generic_ajax({context:game_search_wrapper.find(".game_search div.title"),position:"after",margin:"18px 0 0 0"},ajax_error_translator());if(search_input.val()===""){search_input.css({"background-color":"Transparent"});}
search_input.focus(function(){$(this).css({"background-color":"#e0eef5"});}).blur(function(){if($(this).val()===""){$(this).css({"background-color":"Transparent"});}}).parent().click(function(){search_input.focus();});var game_search_delay=function()
{if(search_input.zid){clearTimeout(search_input.zid);}
if(search_input.val()!==""){search_input.zid=setTimeout(function(){game_search(search_input,gs_err_handler);},500);}};search_input.keypress(function(e){if(e.which==13){clearTimeout(search_input.zid);game_search(search_input,gs_err_handler);}
else{game_search_delay();}});game_search_wrapper.find("a.close_search").click(function(){$(this).closest('.game_search_wrapper').find(".game_search_results").slideUp(500);return false;});});$.live(".search_result","mouseenter",function(e){$(this).addClass("hover");});$.live(".search_result","mouseleave",function(e){$(this).removeClass("hover");});$.live(".search_result select.platform","click",function(){$(this).parent().parent().addClass("adding");});$("div.search_results li a.add_another").live("click",function(){var li_game=$(this).parent('span').parent('div').parent('li');li_game.find(".already_added").hide();li_game.find(".add").show();return false;});var gp_chooser=function(title,note,action,callback){return function(e){var game_li=$(this).parents('li.search_result').eq(0);var owned_gps=game_li.data('owned_gps');var game_name=game_li.find('p.game_title span.title').text();var pnl=game_li.data('platform_name_lookup');var context=this;if(owned_gps.length===1){var gp=owned_gps[0];callback(gp[0],context);}else{var choose_lb=make_lightbox({classes:'generic_lightbox platform_choice_lightbox',title:title,show_close:false});var choices=jQuery.map(owned_gps,function(gpi){return('<p class="platform_choice"><span name="'+gpi[1]+'">'+pnl[gpi[1]]+'</span><a href="#" rel="choice" name="'+gpi[0]+'">'+action+'</a></p>');}).join('');choose_lb.content.html('<h3 class="title_content_small">'+note.replace(/%GAME%/,game_name)+'</h3>'+
choices+'<div class="buttons">'+'<span class="btn">or <a class="cancel" href="#">Cancel</a></span>'+'</div>');choose_lb.element.find('a.cancel').click(function(){choose_lb.close();});choose_lb.element.find('a[rel=choice]').click(function(){var gp_id=parseInt($(this).attr('name'),10);choose_lb.close();callback(gp_id,context);});}
return false;};};var edit_for_gp=function(gp_id){window.features.edit_game_lightbox(gp_id);};$("div.search_results li a.edit_details").live("click",gp_chooser('Edit game','For which platform would you like to edit "%GAME%"?','Edit',edit_for_gp));var remove_for_gp=function(gp_id,context){var list_ident=$(context).closest('.game_search_wrapper').attr('data-ident');window.show_delete_lightbox(gp_id,list_ident);};$("div.search_results li a.remove").live("click",gp_chooser('Remove game','For which platform would you like to remove "%GAME%"?','Remove',remove_for_gp));});