
(function(){var myGamesContainer;var psn_id,theme,currently_playing,widget_preview,layout;var recreate_demo_widget=function(loading_anim){var data=get_widget_data();if(!data.theme){return;}
$.ajaxPost({url:'/a/xhr/make_widget_preview',data:data,loading_anim:loading_anim,error:function(XMLHttpRequest,textStatus,errorThrown){},success:function(data,textStatus){if(data.status=='success'){widget_preview.attr('src',data.widget_url+'?'+new Date().getTime());widget_preview.attr('class',"notrans "+layout.val());}}});};var theme_data;var get_theme_data=function(){var options=theme.find("option");var by_layout={};var by_optval={};$.each(options,function(){var val=$(this).attr('value');var fullname=$(this).text();var m=/^(.*?)__(.*)$/.exec(val);var optval=m[0];var layout=m[1];var slug=m[2];m=/^(.*?) - (.*)$/.exec(fullname);var layoutname=m[1];var themename=m[2];var dat={name:themename,full_name:fullname,layout_name:layoutname,option_value:optval,slug:slug,layout:layout};if(!by_layout[layout]){by_layout[layout]=[];}
by_layout[layout].push(dat);by_optval[optval]=dat;});return{by_layout:by_layout,by_optval:by_optval};};var updateThemes=function(){var current_optval=theme.find("option:selected").attr('value');var last=theme_data.by_optval[current_optval];if(layout.find('option').length===0){for(var layout_choice in theme_data.by_layout){var layout_name=layout_choice.substring(0,1).toUpperCase()+layout_choice.substring(1,layout_choice.length);layout.addOption(layout_choice,layout_name,false);}
layout.selectOptions(last.layout);$('.layout-select').show();}
var layout_val=layout.val();var themes=theme_data.by_layout[layout_val];theme.empty();var existing_selection,default_selection;for(var i=0;i<themes.length;i++){var t=themes[i];if(last.name==t.name){existing_selection=t.option_value;}
theme.addOption(t.option_value,t.name,false);}
if(existing_selection){theme.selectOptions(existing_selection);}
recreate_demo_widget();};var slugToTrophyJSONUri=function(slug){var uri="/a/game/"+slug+"/trophies-json";return uri;};var addGameData=function(gameId){var uri=slugToTrophyJSONUri(gameId);jQuery.getJSON(uri,function(data){generateGameMarkup(data,gameId);});};var findTrophyInArray=function(id,array){for(var i=0;i<array.length;i++){if(array[i].id==id){return array[i];}}
return undefined;};var isTrophyPresent=function(trophies,id){var found=false;trophies.each(function(){if(this==id){found=true;}});return found;};var generateUnselectedTrophyOptionsForGame=function(game_data,select,li){var ts=game_data.trophies;select=$(select).get(0);select.cache=undefined;select.options.length=0;select=$(select);var rows=$('tr',li);var trophies=[];var last_number=/_(\d+)$/;trophies=rows.map(function(){var element_id=this.id;var trophy_id=last_number.exec(element_id);return trophy_id[1];});var max_length=50;for(var i=0;i<ts.length;i++){var value=ts[i].id;var desc=game_data.trophies[i].desc;if(desc.length>max_length){desc=desc.substr(0,max_length)+' ...';}
var name='('+ts[i].type+') '+ts[i].name+' - '+desc;var present=isTrophyPresent(trophies,value);if(!present){select.addOption(value,name,false);}}};var removeTrophy=function(){var element=$(this).parents('tr')[0];var li=$(element).parents('li')[0];var table=$('table',li);if($('tr',table).length==1){$('.collapse a',li).click();$('.expand',li).hide();}
var select=$('select',li);$(element).remove();var id=/_(\d+)$/.exec(element.id)[1];select.addOption(""+id);recreate_demo_widget();var game_data=li.$game_data;generateUnselectedTrophyOptionsForGame(game_data,select,li);return false;};var generateTrophyMarkup=function(t,timestamp){var tr=document.createElement('tr');tr.id='trophy_'+t.id;var image_td=document.createElement('td');image_td.className="image";var img=document.createElement('img');img.src=site_media_url+t.icon_small;img.alt='';image_td.appendChild(img);var input=document.createElement('input');input.type='hidden';input.name='trophy';input.className='trophy_id';if(!timestamp){var now=new Date();timestamp=now.getTime();}
input.value=timestamp+'/'+t.id;image_td.appendChild(input);tr.appendChild(image_td);var td_text=document.createElement('td');td_text.className="text";var name=document.createElement('p');name.appendChild(document.createTextNode(t.name));name.className='name';var about=document.createElement('p');about.appendChild(document.createTextNode(t.desc));td_text.appendChild(name);td_text.appendChild(about);tr.appendChild(td_text);var td_trophy=document.createElement('td');td_trophy.className="trophy transimg";var trophy=document.createElement('img');trophy.src=static_media_url+t.type_icon;trophy.alt=t.type;td_trophy.appendChild(trophy);tr.appendChild(td_trophy);var td_remove=document.createElement('td');td_remove.className="remove";var remove=document.createElement('button');remove.className='remove';$(remove).click(removeTrophy);var text=document.createTextNode('Remove');var span=document.createElement('span');span.appendChild(text);remove.appendChild(span);td_remove.appendChild(remove);tr.appendChild(td_remove);return tr;};var addTrophy=function(container,trophy_id,timestamp){if(!trophy_id){var selected_trophy=$('option:selected',container);if(selected_trophy.length===0){return false;}
trophy_id=selected_trophy.val();}
var game_data=container.$game_data;var trophies=game_data.trophies;var trophy=findTrophyInArray(trophy_id,trophies);var table=$('table',container);if(table.length==0){var collapse_img=document.createElement('img');collapse_img.src='http://c.pfcdn.net/static/images/icons/delete_trans.png?68461c';collapse_img.alt='';var collapse_link=document.createElement('a');collapse_link.href='#';collapse_link.appendChild(document.createTextNode('Collapse'));var collapse_div=document.createElement('div');collapse_div.className='collapse_expand collapse';collapse_div.appendChild(collapse_img);collapse_div.appendChild(collapse_link);container.appendChild(collapse_div);var expand_img=document.createElement('img');expand_img.src='http://c.pfcdn.net/static/images/icons/add.png?1988c3';expand_img.alt='';var expand_link=document.createElement('a');expand_link.href='#';expand_link.appendChild(document.createTextNode('Expand'));var expand_div=document.createElement('div');expand_div.className='collapse_expand expand';expand_div.appendChild(expand_img);expand_div.appendChild(expand_link);container.appendChild(expand_div);$(collapse_link).click(function(){$(table).slideUp();$(collapse_div).hide();$(expand_div).show();return false;});$(expand_link).click(function(){$(table).slideDown();$(expand_div).hide();$(collapse_div).show();return false;});container.appendChild(document.createElement('table'));table=$('table',container);}
var tr=$('#trophy_'+trophy.id,table);if(tr.length==0){tr=generateTrophyMarkup(trophy,timestamp);if(tr){table.append(tr);}}
var select=$('select',container);select.removeOption(""+trophy.id);};var removeGame=function(){if(!confirm("Are you sure you want to remove ALL the trophies for this game?")){return false;}
var element=$(this).parents('li')[0];$(element).remove();repopulateGameSelect();recreate_demo_widget();return false;};var generateGameMarkup=function(game_data,slug){var game_container=$('#game-'+slug);if(game_container.length){return false;}
if(!myGamesContainer){myGamesContainer=$('#myGames');if(!myGamesContainer){return false;}
myGamesContainer.append('<ul></ul>');myGamesContainer=$('ul',myGamesContainer);}
var li=document.createElement('li');li.id="game-"+slug;li.$game_data=game_data;var icon=document.createElement('img');icon.alt='';icon.src=site_media_url+game_data.game.avatar;icon.height=62;icon.width=62;li.appendChild(icon);var content=document.createElement('div');content.className='game_content';var title=document.createElement('p');title.className='game';title.appendChild(document.createTextNode(game_data.game.name));content.appendChild(title);var remove=document.createElement('button');remove.className='remove';$(remove).click(removeGame);var text=document.createTextNode('Remove');var span=document.createElement('span');span.appendChild(text);remove.appendChild(span);content.appendChild(remove);var pseudo_form=document.createElement('div');pseudo_form.style.clear='left';var select=document.createElement('select');var max_length=50;for(var i=0;i<game_data.trophies.length;i++){var desc=game_data.trophies[i].desc;if(desc.length>max_length){desc=desc.substr(0,max_length)+' ...';}
var name='('+game_data.trophies[i].type+') '+game_data.trophies[i].name+' - '+desc;var value=game_data.trophies[i].id;select.options[select.length]=new Option(name,value);}
pseudo_form.appendChild(select);var button=create_add_button();$('button',button).click(function(event){var container=$(this).parents('li').get(0);addTrophy(container);$('.expand a',container).click();recreate_demo_widget();return false;});pseudo_form.appendChild(button);content.appendChild(pseudo_form);li.appendChild(content);myGamesContainer=$(myGamesContainer).get(0);if(myGamesContainer.hasChildNodes){myGamesContainer.insertBefore(li,myGamesContainer.firstChild);}else{myGamesContainer.appendChild(li);}
return li;};var knownGames=[];var populateKnownGames=function(){var el=$('#add_trophies');if(el.length){var o=el.get(0).options;for(var i=0;i<o.length;i++){var option=o[i];knownGames.push({text:option.text,value:option.value});}}};var repopulateGameSelect=function(){var select=$('#add_trophies').get(0);select.cache=undefined;select.options.length=0;select=$(select);for(var i=0;i<knownGames.length;i++){var value=knownGames[i].value;var text=knownGames[i].text;var game_container=$('#game-'+value);if(!game_container.length){select.addOption(value,text,false);}}};var addGame=function(){var el=$('#add_trophies');var opt=$('option:selected',el);var game=opt.val();if(!game){return false;}
var game_container=$('#game-'+game);if(!game_container.length){addGameData(game);}
el.removeOption(""+game);};var owned;var hasTrophy=function(id){if(owned===undefined){if(existing_trophy_data&&existing_trophy_data.owned_trophy_ids){owned=existing_trophy_data.owned_trophy_ids;}else{owned={};}}
if(owned[id]){return owned[id];}else{return undefined;}};var sortTrophiesByDate=function(a,b){if(a.time<b.time){return-1;}else{return 1;}};var populateExistingTrophyData=function(){if(existing_trophy_data&&existing_trophy_data.game_trophy_data){var select=$('#add_trophies');var gs=existing_trophy_data.game_trophy_data;for(var i=0;i<gs.length;i++){var game=gs[i].game;var slug=game.slug;var li=generateGameMarkup(gs[i],slug);select.removeOption(""+slug);var ts=gs[i].trophies;var trophies_to_add=[];for(var j=0;j<ts.length;j++){var t=ts[j];var time=hasTrophy(t.id);if(time){trophies_to_add.push({id:t.id,time:time});}}
trophies_to_add.sort(sortTrophiesByDate);for(var k=0;k<trophies_to_add.length;k++){addTrophy(li,trophies_to_add[k].id,trophies_to_add[k].time);}}}};$(document).ready(function(){if(!document.location.href.match(/create_widget_detail/)){return false;}
psn_id=$('#id_psn_id');theme=$('#theme');theme_data=get_theme_data();layout=$('#layout');currently_playing=$('#id_currently_playing');widget_preview=$('img#widget_preview');populateKnownGames();$('#add_game_button').click(addGame);currently_playing.change(function(){recreate_demo_widget({pos:'after',element:$(this)});});theme.change(function(){recreate_demo_widget({pos:{side:'right',top:0,left:5},element:$(this)});});psn_id.blur(function(){recreate_demo_widget({pos:'after',element:$(this)});});populateExistingTrophyData();layout.change(updateThemes);updateThemes();var show_register_login_thickbox=function(){tb_show('Register now!','#TB_inline?height=400&amp;width=855&amp;inlineId=reg-box',false);};$('.save-button').click(show_register_login_thickbox);$('.submit-action').click(function(){add_loading_animation('after',$(this));});$('#return_to_editing').click(tb_remove);var switch_to_login_form=function(){$('input[name=credentials-type]').val('existing');$('#email-field').css('display','none');$('#login-option').css('display','none');$('#create-option').css('display','block');};var switch_to_create_form=function(){$('input[name=credentials-type]').val('create');$('#email-field').css('display','block');$('#login-option').css('display','block');$('#create-option').css('display','none');};$('#switch-to-login-form').click(switch_to_login_form);$('#switch-to-create-form').click(switch_to_create_form);var submit_form=function(){$('#controls input').copy_to_form_and_submit('#create-widget-form');};$('#skip-this').click(function(){if(!confirm("Are you sure? If you skip you can't add more trophies later, or change your theme.")){return false;}
$('input[name=credentials-type]').val('skip');add_loading_animation('after',$(this));submit_form();return false;});if(straight_to_thickbox){var cred=$('input[name=credentials-type]').val();if(cred=='existing'){switch_to_login_form();}else{switch_to_create_form();}
show_register_login_thickbox();}else{switch_to_create_form();}
$('.thickbox-submit').click(submit_form);return false;});var trophies_selected=function(){var trophies=[];var inputs=$("input.trophy_id");inputs.each(function(){trophies.push(this.value);});return trophies;};var get_widget_data=function(){var psn_id_text=psn_id.length?psn_id.val():'Sample McUserson';return{psn_id:psn_id_text,trophies:trophies_selected(),theme:theme.val(),currently_playing:currently_playing.val()};};var create_add_button=function(text,type){if(!text){text=' Add';}
if(!type){type='button';}
var create_recursive_span=function(level,child){level--;if(level===0){return child;}else{var parent=document.createElement('span');parent.appendChild(child);return create_recursive_span(level,parent);}};var div=document.createElement('div');div.className="cta add";var button=document.createElement('button');var textNode=document.createTextNode(text);var inner_span=document.createElement('span');var img=document.createElement('img');img.alt='';img.src='http://c.pfcdn.net/static/images/tro/plusicon.png?462113';img.className='transimg';inner_span.appendChild(img);inner_span.appendChild(textNode);var span=create_recursive_span(4,inner_span);button.appendChild(span);div.appendChild(button);return div;};}());