(function(a){function i(b){var c=a('<div class="item-box"></div>').append("<p>交換しようよ！</p>").append('<img src="/assets/straw-item-'+b+'.gif" />').append('<a href="#" class="answer">Yes</a>');return c}var b=0,c={},d=["home","vision","business","company","access","twitter"],e={home:[0,1,2],vision:[3,4,5],business:[6,7,8],company:[9,10,11],access:[12,13,14],twitter:[15,16,17]},f=!0,g={itemToStaff:function(c,f){var g={level:1,exclude_item:"",exclude_panel:"",parent_item:""};a.extend(g,f);var j=h.items({level:g.level,exclude:g.exclude_item});if(b>1){var k=h.random.keys(j.length);k=k.slice(0,5);var l=[];for(var m=0;m<k.length;m++)l.push(j[k[m]]);j=l}if(typeof g.parent_item=="object"){var n=h.random.key(j.length);j.splice(n,1,g.parent_item)}var o=h.random.keys(j.length),p=0;for(var m=0;m<d.length;m++){if(d[m]==g.exclude_panel)continue;var q=e[d[m]].length,r=h.random.key(q),s=e[d[m]][r],t=j[o[p]].name,u=a(c[s]),v=a("<img />").attr("src","/assets/straw-item-balloon-small.png").addClass("item-balloon-small");u.attr("data-item",t).append(v).append(i(t)),p++}},itemHistory:function(c){if(b<6){var d="item_"+b;localStorage[d]=c;if(b===5){var e=new Date,f=e.getTime();localStorage.end_time=f,localStorage.status="finish"}var g=a("<img />").attr("src","/assets/straw-item-"+c+".gif");a("#game-panel-status").children("div.content").children("ul.item-list").children("li:eq("+(b-1)+")").append(g)}}},h={random:{keys:function(a){var b=[];while(b.length<a){var c=Math.floor(Math.random()*a);if(b.length==0)b.push(c);else{var d=!1;for(var e in b)b[e]==c&&(d=!0);d||b.push(c)}}return b},key:function(a){return Math.floor(Math.random()*a)}},item:function(a){for(var b in c)if(a===c[b].name)return c[b]},items:function(b){var d={level:1,exclude:""};a.extend(d,b);var e=[];for(var f in c)if(typeof d.level=="number")d.level===c[f].level&&e.push(c[f]);else for(var g in d.level)d.level[g]===c[f].level&&e.push(c[f]);if(d.exclude.length>0)for(var f in e)if(typeof d.exclude=="string")d.exclude==e[f]["name"]&&e.splice(f,1);else for(var g in d.exclude)d.exclude[g]==e[f]["name"]&&e.splice(f,1);return e},parentItem:function(a){var b;for(var d=0;d<c.length;d++)c[d].child===a&&(b=c[d]);return b},belongsToPanel:function(a){var b="";for(var c in e)for(var d=0;d<e[c].length;d++)a==e[c][d]&&(b=c);return b},allLowerLevel:function(a){var b=[a];while(a>1)a-=1,b.push(a);return b},scores:function(){var a=h.item(localStorage.item_5),b=a.level*100,c=Math.floor((localStorage.end_time-localStorage.start_time)/1e3);return _time_score=500-c<0?0:500-c,{total_score:b+_time_score,item_score:b,time_score:_time_score}}};a(function(){function A(){if(b===5){b=0,localStorage.status="finish";var c,d;a("div.panel").each(function(){a(this).hasClass("current")&&(c=a(this))}),c.attr("id")!=="home"?(d=e.children("div.content-game").clone(),c.append(d),s.fadeOut()):(d=e.children("div.content-game"),n.fadeOut()),c.removeClass("current"),r.fadeOut(),i.fadeOut(),d.children("a.close").hide();var f=h.item(localStorage.item_5),g=f.level<5?"pity":"max",j=a('<h2 class="'+g+' congratulation">Congratulation</h2>'),k=i.children("div.content").children("ul.item-list").clone();k.addClass(g),a.getJSON("/game/maxim/"+f.level+"/"+f.name+".json",function(b){var c=a('<div class="maxim"></div>').text(b.words).append('<p class="signature">'+b.name+"</p>"),e=a('<div class="comment">'+b.comment+"</div>"),h=a("<img />").attr("src","/assets/straw-finish-chara-"+g+".png").addClass("chara"),i=a('<a href="#" class="next">Next &raquo;</a>'),l=a("<ul class='social-button-list'><li><a class='twitter-share-button' data-count='horizontal' data-lang='ja' data-via='dkids_inc #d_clip' href='http://twitter.com/share'>ツイート</a><script src='http://platform.twitter.com/widgets.js' type='text/javascript'></script></li><li><iframe allowTransparency='true' frameborder='0' scrolling='no' src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fd-kids.co.jp&amp;amp;send=false&amp;amp;layout=button_count&amp;amp;width=100&amp;amp;show_faces=false&amp;amp;action=like&amp;amp;colorscheme=light&amp;amp;font&amp;amp;height=21' style='border:none; overflow:hidden; width:100px; height:21px;'></iframe></li><li><iframe allowTransparency='true' frameborder='0' scrolling='no' src='http://plugins.mixi.jp/favorite.pl?href=http%3A%2F%2Fd-kids.co.jp&amp;service_key=491886f525c909ba38336c047775cdddb235ac29&amp;show_faces=false&amp;width=100' style='overflow:hidden; border:0; width:100px; height:20px'></iframe></li></ul>");d.removeClass("start01").removeClass("start02").addClass("finish").addClass(g).children("div.inner").empty().append(j).append(k).append(c).append(e).append(h).append(i).append(l),z.finish.nextButton(),o.css({zIndex:4}),d.fadeIn(),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","finish","last item: "+f.name)})}}function B(){f=!0,a("div.content-game.rank-registration").removeClass("rank-registration").addClass("rank-list").children("div.inner").empty().load("/game/rank/show?layout=thickbox",function(){}),localStorage.clear()}function C(){p.each(function(){a(this).attr("data-item","").children("div.item-box").remove().end().children("img.item-balloon-small").remove()})}function D(a){if(a.length>0){var b=function(){m.animate({top:0}),u!=undefined&&clearTimeout(u),t=!1,m.unbind("click")},c=function(){clearTimeout(u),_timer_id=setTimeout(function(){b()},5e3)};m.click(function(a){a.preventDefault(),b(),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","close_flash_message")}),m.children("div.message").text(a),t?c():(t=!0,m.animate({top:-30},"normal","linear",function(){u=setTimeout(function(){b()},5e3)}))}}var e=a("#home"),i,j,k=e.children("div.content-game").children("a.close"),l=a("#straw-signboard"),m=a("#flash"),n=a("#birthd"),o=a("div.staffs"),p=a("div.staff"),q=a("<img />").attr("src","/assets/ajax-loader-58x58.gif"),r=a("#nav"),n=a("#birthd"),s=a("#birthd-mini"),t=!1,u=null,v=!0,w=!0,x={gameView:function(c){l.addClass("off").css({cursor:"default"});var e=a('<div id="game-panel-status"></div>').load("/game/panel/status",null,function(){z.straw.endButton(),z.gamePanelToggleButton(),z.straw.howToPlayButton.two(),z.straw.rankShowButton();if(c==="resume"){var b=1,d,e;while(localStorage["item_"+b]!="")d=a("<img />").attr("src","/assets/straw-item-"+localStorage["item_"+b]+".gif"),e=i.children("div.content").children("ul.item-list").children("li:eq("+(b-1)+")"),e.append(d),b++}});a("#container").before(e);for(var f=0;f<5;f++){var j=localStorage["item_"+(f+1)];if(j==undefined||j.length<=0)break}b=f;if(c==="resume"&&f>0){var k=h.item(localStorage["item_"+f]),m=h.random.key(d.length),n=k.level>1?h.allLowerLevel(k.level):k.level,o=h.parentItem(k.name),q={level:n,exclude_item:k.name,exclude_panel:d[m],parent_item:o};g.itemToStaff(p,q)}else g.itemToStaff(p);z.itemBoxClick(),w=!0},localStorage:function(a){a==undefined&&(a=!1);if(localStorage.status!=="playing"||a){var b=new Date;localStorage.start_time=b.getTime(),localStorage.end_time="",localStorage.status="playing",localStorage.item_1="",localStorage.item_2="",localStorage.item_3="",localStorage.item_4="",localStorage.item_5=""}},items:function(){var b=this.gameView;a.getJSON("/game/items.json",function(a){c=a,localStorage.status==="playing"&&b("resume")})}},y={all:function(){localStorage.clear(),l.removeClass("off").css({cursor:"pointer"}),i.remove(),C()}},z={straw:{signboard:function(){l.click(function(b){b.preventDefault();if(a(this).attr("class")!=="off"){var c=e.children("div.content-game");c.css("display")==="none"&&e.children("div.content-game").children("div.inner").empty().load("/game/panel/start",null,function(){z.straw.nextButton(),o.css({zIndex:4}),c.fadeIn("normal",function(){a.support.opacity||this.style.removeAttribute("filter")}),n.hide()})}typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","click_signboard")})},closeContentButton:function(){k.click(function(b){b.preventDefault(),o.css({zIndex:6}),a(this).parent().fadeOut(),n.show()})},closeContentButton_finish:function(b){b.children("a.close").click(function(c){c.preventDefault(),o.css({zIndex:6}),a(this).parent().fadeOut(),$navigate.fadeIn("normal",function(){a.support.opacity||this.style.removeAttribute("filter")}),s.fadeIn("normal",function(){a.support.opacity||this.style.removeAttribute("filter")}),b.parent().addClass("current")})},nextButton:function(){a("#straw-next-button").click(function(b){b.preventDefault(),a.support.tbody&&localStorage.getItem("status")!=="playing"?a(this).parent().parent().removeClass("start01").addClass("start02").end().load("/game/panel/confirm",function(){z.straw.okButton(),z.straw.howToPlayButton.one()}):(alert("申し訳ありあせんが、お使いのブラウザには対応しておりません"),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","unsupported_ua"))})},okButton:function(){a("#straw-ok-button").click(function(b){b.preventDefault(),w&&(w=!1,o.css({zIndex:6}),a(this).parent().parent().fadeOut(),n.show(),x.localStorage(),x.gameView(),D("ゲームを開始しました"),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","start"))})},howToPlayButton:{url:"/game/how?mode=from_ajax&keepThis=true&TB_iframe=true&height=490&width=650",one:function(){var b=this.url;a("#straw-how-to-play").click(function(a){a.preventDefault(),tb_show("",b),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","show_how_to_play_1")})},two:function(){var b=this.url;a("#straw-how-to-play2").click(function(a){a.preventDefault(),tb_show("",b),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","show_how_to_play_2")})}},rankShowButton:function(){var b="/game/rank/show?layout=1&keepThis=true&TB_iframe=true&height=460&width=650";a("a.rank-show").click(function(a){a.preventDefault(),tb_show("",b),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","show_ranking")})},endButton:function(){a("#straw-end-button").click(function(a){a.preventDefault(),confirm("本当にゲームを終了してよろしいですか？")&&(y.all(),D("ゲームを終了しました"),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","abort"))})}},gamePanelToggleButton:function(){i=a("#game-panel-status"),j=a("#game-panel-toggle-button"),j.click(function(a){a.preventDefault(),j.hasClass("to_open")?(i.animate({right:-50},"normal","easeOutBack"),j.removeClass("to_open").addClass("to_close")):(i.animate({right:-511},"normal","easeOutBack"),j.removeClass("to_close").addClass("to_open")),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","toggle_game_panel")})},gamePanelToggleButton_auto:function(){i.animate({right:-50},"normal","easeOutBack"),j.removeClass("to_open").addClass("to_close");var a=setInterval(function(){clearInterval(a),i.animate({right:-511},"normal","easeOutBack"),j.removeClass("to_close").addClass("to_open")},2e3)},hoverStaff:function(){var b={w:p.width(),h:p.height()},c={w:142,h:94};p.hover(function(){a(this).children("div.data-tip").fadeIn("fast",function(){a.support.opacity||this.style.removeAttribute("filter")}),a(this).children("div.item-box").fadeIn("fast",function(){a.support.opacity||this.style.removeAttribute("filter")})},function(){a(this).children("div.data-tip").fadeOut("fast"),a(this).children("div.item-box").fadeOut("fast")})},itemBoxClick:function(){o.delegate("a.answer","click",function(a){a.preventDefault()}),o.delegate("div.item-box","click",function(){if(f){f=!1,a(this).children("img").remove().end().children("p").text("交換中…").end().children("a").remove().end().append(q);var c=a(this),d=setInterval(function(){var a=c.parent().attr("id").replace(/staff-/,""),e=h.belongsToPanel(a),i=c.parent().attr("data-item"),j=h.item(i),k=h.parentItem(i),l=j.level>1?h.allLowerLevel(j.level):1,m={level:l,exclude_item:i,exclude_panel:e,parent_item:k==undefined?"":k};b++,g.itemHistory(j.name),C(),b<5?(z.gamePanelToggleButton_auto(),g.itemToStaff(p,m),f=!0):A(),D("新しいアイテム「"+j.name_ja+"」を手に入れました"),clearInterval(d),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","get_item","get count:"+b)},750)}})},finish:{nextButton:function(){var b=a("div.content-game.finish"),c=b.children("div.inner"),d=h.scores(),e=0;a.get("/game/rank/check/"+d.total_score,function(a){e=a}),c.children("a.next").click(function(a){a.preventDefault(),b.removeClass("finish").addClass("rank-registration"),c.empty().load("/game/rank/registration",function(){var a=c.children("div.your-score");a.children("div.rank-num").text(e+"位").end().children("div.last-item").children("img").attr("src","/assets/straw-item-"+localStorage.item_5+".gif").end().end().children("#rank-registration-points").children("div.total-score").text(d.total_score+"pt").end().children("span.time-score").text(d.time_score+"pt").end().children("span.item-score").text(d.item_score+"pt").end().end().children("input").focus();var b=c.siblings("a.close");b.show(),z.finish.closeButton(b),z.finish.tryAgainButton(),z.finish.rankRegistration()})})},closeButton:function(b){var c=this.endGame;b.click(function(b){b.preventDefault(),c(a(this).parent().parent()),D("ゲームを終了しました")})},tryAgainButton:function(){var b=this.endGame,c=a("#try-again");c.click(function(c){c.preventDefault(),b(a(this).parent().parent().parent()),x.gameView(),x.localStorage(),f=!0,D("ゲームを開始しました"),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","try_again")})},endGame:function(b){b.addClass("current"),b.attr("id")!="home"?(b.children("div.content-game").remove(),s.fadeIn("fast",function(){a.support.opacity||this.style.removeAttribute("filter")})):(b.children("div.content-game").fadeOut(),n.fadeIn("fast",function(){a.support.opacity||this.style.removeAttribute("filter")})),y.all(),o.css({zIndex:6}),r.fadeIn("fast",function(){a.support.opacity||this.style.removeAttribute("filter")})},rankRegistration:function(){var b=function(){var b=h.scores();a.ajax({type:"POST",url:"/game/rank/save",data:{authenticity_token:a("meta[name='csrf-token']").attr("content"),total_score:b.total_score,time_score:b.time_score,item_score:b.item_score,user_name:c.val().substring(0,13),item_name:localStorage.item_5},success:function(a){v=!0,B()}})},c=a("#rank-registration-user-name");c.bind("change keyup",function(b){var c=a(this).val();if(c.length>13){var d=b.keyCode;d!=37&&d!=38&&d!=39&&d!=40&&d!=46&&d!=8&&a(this).val(c.substring(0,13))}}),a("#rank-registration-ok").click(function(a){a.preventDefault();if(v&&c.val().length>0)v=!1,b(),typeof pageTracker!="undefined"&&pageTracker._trackEvent("Game","rank_registration",c.val());else{var d;c.val().length<=0&&(d="お名前は1文字以上入力してください"),alert(d)}})}}};z.straw.signboard(),z.straw.closeContentButton(),z.hoverStaff(),x.items()})})(jQuery)
