﻿$(function(){window.Version="1.19";$("#version").text("Ver."+window.Version);$(document.body).css("cursor","wait");setTimeout(function(){window.DataSource=new DataSource();window.Information=new Information($("#information"));window.Generator=new Generator($("#generator"));window.Skill=new Skill($("#skill"));window.Guild=new Guild($("#guild"));window.Inventory=new Inventory($("#inventory"));window.Status=new Status($("#status"));window.Status.charSelect.selectOptions("c01").click();$(document.body).css("cursor","default")},50);$(window).unload(function(){window.DataSource=null;window.Status=null;window.Inventory=null;window.Guild=null;window.Generator=null;window.Skill=null;window.Information=null})});var events={};function bindEvent(a,b,c,d,f,g,h,i,j,k,l,m){return function(e){e.events=events;b.call(a,e,c,d,f,g,h,i,j,k,l,m)}}function newElement(a,b){var c=$(document.createElement(a));if(b)c.append(b);return c}function clear(){$("#debug").empty()}function debug(){var a="";for(var i=0;i<debug.arguments.length;i++){if(i>0)a+=", ";a+=debug.arguments[i]}var d=new Date();var b="00"+d.getSeconds();var c="000"+d.getMilliseconds();$("#debug").prepend(b.substring(b.length-2)+"."+c.substring(c.length-3)+" "+a+"<br>")}function DataSource(){return this.init()};DataSource.prototype={dataCache:{},init:function(){return this},getData:function(b){if(b.match(/none/))return null;var c=this.dataCache;if(!c[b]){this.getDataSync("data/"+b+".json",function(a){c[b]=a})}return c[b]},getDataSync:function(a,b){return $.ajax({type:"GET",url:a,success:b,dataType:"json",ifModified:true,async:false,data:null})},getDataASync:function(a,b){return $.ajax({type:"GET",url:a,success:b,dataType:"json",ifModified:true,data:null})}};function Generator(a){return this.init(a)};Generator.prototype={element:null,charSelect:null,partSelect:null,itemSelect:null,generateItem:null,itemGrades:{},valueSelects:{},itemParams:null,itemOptions:null,init:function(a){a.hide();this.element=a;var b=this.data;var c=newElement("select").addClass("select").addClass("charSelect");var d=DataSource.getData("status/chars");var e={};for(var i in d)e[i]=d[i]["name"];a.append(c.addOption({c00:"全て"}).addOption(e,false));this.charSelect=c;var f=newElement("select").addClass("select").addClass("partSelect");a.append(f.addOption({none:"選択"}).addOption(DataSource.getData("items/parts"),false));this.partSelect=f;var g=newElement("select").addClass("select").addClass("itemSelect");a.append(g.addOption({none:"アイテム選択"}));this.itemSelect=g;var h=newElement("img").addClass("button").addClass("generate").attr("src","img/generate.png");a.append(h);var j=newElement("img").addClass("button").addClass("close").attr("src","img/close.png");a.append(j);var k=newElement("ul").addClass("itemParams");a.append(k);this.itemParams=k;var l={};for(var i=0;i<3;i++){var m=newElement("img").addClass("button").addClass("optionClear").addClass("optionsRow"+i).attr("src","img/clear.png");a.append(m);var n=newElement("select").addClass("select").addClass("typeSelect").addClass("optionsRow"+i);n.addOption({none:""}).addOption(DataSource.getData("options/types"),false);l["typeSelect"+i]=n;a.append(n);var o=newElement("select").addClass("select").addClass("optionSelect").addClass("optionsRow"+i);o.addOption({none:""});l["optionSelect"+i]=o;a.append(o);var p=newElement("ul").addClass("optionParams");l["optionParams"+i]=p;a.append(p);l["optionValues"+i]={};m.click(bindEvent(this,this.onOptionClear,i,n,o));n.change(bindEvent(this,this.onOptionTypeChange,i,n,o,p,l["optionValues"+i]));o.change(bindEvent(this,this.onOptionChange,i,n,o,p,l["optionValues"+i]))}this.itemOptions=l;c.change(bindEvent(this,this.onCharChange));f.change(bindEvent(this,this.onPartChange));g.change(bindEvent(this,this.onItemChange));h.click(bindEvent(this,this.onGenerateClick));j.click(bindEvent(this,this.onCloseClick));return this},restoreItem:function(a){var b=a["id"];var c=DataSource.getData("items/"+b.substring(0,1))[b];var d=this.createItem(b,c["img"]);d.save=a;var e={item:{dx:c["dx"],u:c["u"]}};for(var f=0;f<3;f++){if(a["op"+f]){var g=a["op"+f]["id"];var h=DataSource.getData("options/"+g.substring(0,2))[g];e["option"+f]={u:"r",dx:h["dx"]}}}Generator.setGrades(d,e);Generator.setItemInfo(d,c);return d},createItem:function(a,b){var c=newElement("div").addClass("item").css("top",10).css("left",11);c.save={id:a};c.img="img/"+a.substring(0,2)+"/"+b+".png";c.css("background-image","url('"+c.img+"')");return c},setGrades:function(a,b){if(a){a.empty();var c=null;for(var i in b){if(b[i]&&b[i]["dx"]){c=b[i]["dx"];if(c=="um")break}}if(c)a.append(newElement("div").addClass(c));var d=null;if(b["item"]&&b["item"]["u"])d=b["item"]["u"];for(var i=0;i<3;i++){if(b["option"+i]&&b["option"+i]["u"]){if(d=="u")d="s";else d="r";break}}if(d)a.append(newElement("div").addClass(d))}},setItemInfo:function(c,d){var e={};var f=c.save["id"];var g=c.save["val"];if(!d)d=DataSource.getData("items/"+f.substring(0,1))[f];var h=d["lv"];var k=[];for(var i in d["par"]){var l=d["par"][i];if(l.match(/{#[0-9]}/))for(var j in g)l=l.replace(new RegExp("{#"+j+"}","g"),g[j]);k.push(l)}var m={};for(var i in d["sts"]){var n=d["sts"][i];if(n.match(/{#[0-9]}/))for(var j in g)n=n.replace(new RegExp("{#"+j+"}","g"),g[j]);m[i]=n}if(d["req"]){var o=$.extend({},d["req"]);for(var i in d["req"]){if(o[i].match(/{#[0-9]}/))for(var j in g)o[i]=o[i].replace(new RegExp("{#"+j+"}","g"),g[j]);o[i]=parseInt(eval(o[i]))}}e["item"]=$.extend({},d);e["item"]["par"]=k;var p=[];for(var q=0;q<3;q++){if(c.save["op"+q]){var r=c.save["op"+q]["id"];var g=c.save["op"+q]["val"];var d=DataSource.getData("options/"+r.substring(0,2))[r];var k=[];for(var i in d["par"]){var l=d["par"][i];if(l.match(/{#[0-9]}/))for(var j in g)l=l.replace(new RegExp("{#"+j+"}","g"),g[j]);k.push(l)}for(var i in d["sts"]){var n=d["sts"][i];if(n.match(/{#[0-9]}/))for(var j in g)n=n.replace(new RegExp("{#"+j+"}","g"),g[j]);if(m[i])m[i]+=n;else m[i]=n}e["op"+q]=$.extend({},d);e["op"+q]["par"]=k;p.push(e["op"+q]["lv"])}}if(p.length>0){if(!o)o={};if(!o["lv"])o["lv"]=0;p.sort(function(a,b){return parseInt(b)-parseInt(a)});for(var i=0;i<p.length;i++)if(p[i])o["lv"]+=parseInt(p[i]*(3-i)/3)}e["item"]["req"]=o;c.info=e;c.status=m;var s=false;for(var i in m){if(i.match(/c[01][0-9]/)||i.match(/lv[0-9]/)){s=true;break}}c.changedSkill=s},setItemParams:function(b,c,d,f){if(b){for(var i in b){var g=newElement("li").append("－");if(c){var h=b[i];var l=h.split(/{#[0-1]}/g);var m=h.match(/{#[0-1]}/g);for(var j in l){g.append(newElement("span").addClass("paramText").html(" "+$.trim(l[j])+" "));if(m&&m[j]){var n=m[j].match(/[0-1]/);if(d[n]){var o=newElement("span").addClass("paramText").html(d[n].selectedValue());d[n].change(bindEvent(this,function(e,a){a.html(d[n].selectedValue())},o));g.append(o)}else{var p=c[n].split("~");var q={};for(var k=parseInt(p[0]);k<=parseInt(p[1]);k++){q[k]=k}d[n]=newElement("select").addClass("select").addClass("paramText").addOption(q);g.append(d[n])}}}}else{g.append(" "+$.trim(b[i]))}f.append(g)}}},onCharChange:function(e){this.partSelect.change();this.itemValues={};this.itemParams.empty();this.itemGrades["item"]=null;if(this.generateItem){this.generateItem.remove();this.generateItem=null}},onPartChange:function(e){this.itemSelect.removeOption(/./).addOption({none:"アイテム選択"});this.itemValues={};this.itemParams.empty();this.itemGrades["item"]=null;if(this.generateItem){this.generateItem.remove();this.generateItem=null}var a=this.charSelect.selectedValue();var b=this.partSelect.selectedValue();var c=DataSource.getData("items/"+b);var d={};for(var f in c){var g=c[f];if(!g["chr"]||a=="c00"){d[f]=g.name}else if(g["chr"]=="m"||g["chr"]=="w"){var h=DataSource.getData("status/chars")[a];if(g["chr"]==h["sex"])d[f]=g.name}else{for(var i in g["chr"]){if(a==g["chr"][i]){d[f]=g.name;break}}}}this.itemSelect.addOption(d,false)},onItemChange:function(e){this.valueSelects={};this.itemParams.empty();this.itemGrades["item"]=null;if(this.generateItem){this.generateItem.remove();this.generateItem=null}var a=this.charSelect.selectedValue();var b=this.partSelect.selectedValue();var c=this.itemSelect.selectedValue();if(a&&b&&c){var d=DataSource.getData("items/"+b)[c];var f=this.createItem(c,d["img"]);this.itemGrades["item"]={dx:d["dx"],u:d["u"]};this.setGrades(f,this.itemGrades);this.setItemParams(d["par"],d["val"],this.valueSelects,this.itemParams);this.generateItem=f;this.element.append(f)}},onOptionClear:function(e,a,b,c){b.selectOptions("none").change()},onOptionTypeChange:function(e,a,b,c,d,f){this.itemGrades["option"+a]=null;this.setGrades(this.generateItem,this.itemGrades);d.hide().empty().show();c.removeOption(/./).addOption({none:""});for(var i in f)f[i]=null;var g=b.selectedValue();if(g!="none"){var h=DataSource.getData("options/"+g);var j=0;var k={};for(var l in h){k[l]=h[l].name;j++}if(j>1)c.addOption(k,false);else{c.addOption(k,true);var m=h[c.selectedValue()];this.itemGrades["option"+a]={u:"r",dx:m["dx"]};this.setGrades(this.generateItem,this.itemGrades);this.setItemParams(m["par"],m["val"],f,d)}}},onOptionChange:function(e,a,b,c,d,f){this.itemGrades["option"+a]=null;this.setGrades(this.generateItem,this.itemGrades);d.hide().empty().show();for(var i in f)f[i]=null;var g=b.selectedValue();var h=c.selectedValue();if(g!="none"&&h&&h!="none"){var j=DataSource.getData("options/"+g)[h];this.itemGrades["option"+a]={u:"r",dx:j["dx"]};this.setGrades(this.generateItem,this.itemGrades);this.setItemParams(j["par"],j["val"],f,d)}},onGenerateClick:function(e){e.preventDefault();if(!this.generateItem)return;var a=this.generateItem.clone();a.img=this.generateItem.img;a.save=$.extend({},this.generateItem.save);var b=[];for(var i in this.valueSelects)if(this.valueSelects[i])b.push("");if(b.length>0){for(var i=0;i<b.length;i++)b[i]=this.valueSelects[i].selectedValue();a.save["val"]=b}var c=0;for(var d=0;d<3;d++){var f=this.itemOptions["optionSelect"+d].selectedValue();if(f&&f!="none"){var g={};g["id"]=f;var h=this.itemOptions["optionValues"+d];var b=[];for(var i in h)if(h[i])b.push("");if(b.length>0){for(var i=0;i<b.length;i++)b[i]=h[i].selectedValue();g["val"]=b}a.save["op"+c++]=g}}this.setItemInfo(a);Inventory.appendItem(a)},onCloseClick:function(e){e.preventDefault();this.hide()},show:function(){this.element.show()},hide:function(){this.element.hide()}};function Guild(a){return this.init(a)};Guild.prototype={element:null,guildPost:null,guildText:null,guildSelect:null,postArea:null,statusArea:null,skillArea:null,stoneArea:null,areas:{},guildStatus:{},init:function(a){this.guildPost="g0";var b=DataSource.getData("status/posts");var c=this.postArea=newElement("div").addClass("post");a.append(c);var d=this.guildText=newElement("div").addClass("postText").addClass("button").css("color","white");c.append(d.text(b[this.guildPost].name));var e=this.guildSelect=newElement("select").addClass("select");c.append(e.hide());var f={};for(var i in b)f[i]=b[i]["name"];e.addOption(f,false).attr("size",e.attr("options").length);var g=newElement("img").addClass("button").addClass("close").attr("src","img/close.png");a.append(g);var h=this.statusArea=newElement("div").addClass("status");a.append(h);var j=this.skillArea=newElement("div").addClass("skills");a.append(j);var k=this.stoneArea=newElement("div").addClass("stones");a.append(k);var l=DataSource.getData("status/guilds");for(var i in l){var m=null;switch(i.substring(0,2)){case"st":m=h;break;case"sk":m=j;break;default:m=k}var n=newElement("div").addClass("guildText").addClass("button").css("color","gray");m.append(n.text(l[i].name));var o=newElement("select").addClass("select");m.append(o.hide());var f={none:""};for(var p=1;p<=parseInt(l[i].lv);p++)f[p]=l[i].disp.replace(/{lv}/g,p);o.addOption(f,false).attr("size",o.attr("options").length);o.click(bindEvent(this,this.onSelectChange,i));n.click(bindEvent(this,this.onTextClick,m,i));this.areas[i]={select:o,text:n}}d.click(bindEvent(this,this.onGuildClick));e.click(bindEvent(this,this.onGuildChange)).selectOptions(this.guildPost);g.click(bindEvent(this,this.onCloseClick));this.element=a.hide();return this},changeStatus:function(){var a=DataSource.getData("status/posts")[this.guildPost];var b=DataSource.getData("status/guilds");var c=this.guildStatus={};for(var i in this.areas){var d=this.areas[i];var e=d.select.selectedValue();if(e!="none"){var f=b[i].status;for(var j in f){var g=f[j].replace(/{lv}/g,e).replace(/{gp}/g,a.status[j]);g=parseInt(eval(g));if(c[j])c[j]+=g;else c[j]=g}}}},show:function(){$("select:visible",this.element).hide();this.element.show();this.guildSelect.selectOptions(this.guildPost)},storeStatus:function(){var a=this.guildPost;for(var i in DataSource.getData("status/guilds")){value=this.areas[i].select.selectedValue();if(value!="none")a+="."+value;else a+="."}return a},restoreStatus:function(a,b){if(!a)return;var c=DataSource.getData("status/guilds");var d=a.split(".");this.guildPost=d[0];this.guildSelect.selectOptions(this.guildPost);var e=DataSource.getData("status/posts")[this.guildPost];this.guildText.text(e["name"]);Status.guildText.text(e["name"]);var f=1;for(var i in c){var g=this.areas[i];var h=d[f++];var j=g.select.get(0);if(h==""){if(j.selectedIndex!=0){j.selectedIndex=0;g.text.css("color","gray").text(c[i]["name"])}}else{if(j.selectedIndex!=parseInt(h)){j.selectedIndex=parseInt(h);g.text.css("color","white").text(c[i]["disp"].replace(/{lv}/g,h))}}}this.changeStatus()},onGuildChange:function(e){e.preventDefault();var a=this.guildPost=this.guildSelect.hide().selectedValue();var b=DataSource.getData("status/posts")[a];this.guildText.text(b["name"]).css("disabled",null);Status.guildText.text(b["name"]);var c=$.extend({},this.guildStatus);this.changeStatus();Status.showStatus();for(var i in Skill.chars){var d=Skill.chars[i];if(c[d]!=this.guildStatus[d]){Skill.showSkill();break}}},onGuildClick:function(e){e.preventDefault();$("select:visible",this.element).hide();this.guildSelect.css("z-index",10).show();this.guildText.css("disabled","disabled")},onCloseClick:function(e){this.element.hide()},onSelectChange:function(e,a){e.preventDefault();var b=this.areas[a];var c=b.select.hide().selectedValue();var d=DataSource.getData("status/guilds")[a];if(c=="none")b.text.css("color","gray").text(d.name);else b.text.css("color","white").text(d.disp.replace(/{lv}/g,c));b.text.css("disabled",null);var f=$.extend({},this.guildStatus);this.changeStatus();Status.showStatus();for(var i in Skill.chars){var g=Skill.chars[i];if(f[g]!=this.guildStatus[g]){Skill.showSkill();break}}},onTextClick:function(e,a,b){e.preventDefault();var c=this.areas[b];var d=a.offset();var f=c.text.offset();c.text.css("disabled","disabled");$("select:visible",this.element).hide();c.select.css("z-index",10).css("top",f.top-d.top).css("left",f.left-d.left).show()}};function Information(a){return this.init(a)};Information.prototype={element:null,isShow:false,basic:null,notes:null,requests:null,chars:null,after:null,footer:null,init:function(a){this.element=a.hide();this.basic=newElement("div").addClass("info").addClass("basic");this.notes=newElement("div").addClass("info").addClass("notes");this.requests=newElement("div").addClass("info").addClass("requests");this.chars=newElement("div").addClass("info").addClass("chars");this.after=newElement("div").addClass("info").addClass("after");this.information=newElement("div").addClass("info").addClass("information");this.attack=newElement("div").addClass("info").addClass("attack");this.footer=newElement("div").addClass("info").addClass("footer");return this},showStatus:function(a,b,c,d){var e=this.element;e.empty();var f=Status.charStatus;if(f.change)c=f.change[c];var g=f.get(c);if(!g)g=0;var h=Guild.guildStatus[c];if(!h)h=0;var i=Status.titleStatus[c];if(!i)i=0;var j=Status.assistStatus[c];if(!j)j=0;var k=Inventory.itemStatus.get(c,f.get("lv"));if(!k)k=0;if("st,it,ag,ws,vt,ca,lu".match(c)){var l=Inventory.itemStatus.get(c+"x",f.get("lv"));if(l)k=0}var m=h+i+j+k;var n=Status.getStatus();n[c]=g+m;if(f.addBonus)n=f.addBonus(n);var o=n[c];var p=o-g-m;if(l){k=l-o;o=l}var q=newElement("div").addClass("info").addClass("data");e.append(q);q.append(newElement("span").addClass("name").addClass("status").text(d));var r=" "+o+"<"+g;if(o-g>=0)r+="+";r+=(o-g)+">";q.append(newElement("span").addClass("name").text(r));if(k!=0){var r="－ 装備補正 ";if(k>0)r+="+";r+=k;e.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(r))}if(i!=0){var r="－ 称号補正 ";if(i>0)r+="+";r+=i;e.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(r))}if(h!=0){var r="－ ギルド補正 ";if(h>0)r+="+";r+=h;e.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(r))}if(j!=0){var r="－ スキル補正 ";if(j>0)r+="+";r+=j;e.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(r))}if(p!=0){var r="－ 職業補正 ";if(p>0)r+="+";r+=p;e.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(r))}e.append(this.footer);e.css("top",a-2).css("left",b-2);e.show();this.isShow=true},showItem:function(a,b,c){var d=this.element;d.empty();var e=c.info["item"];var f=[];for(var i=0;i<3;i++)f[i]=c.info["op"+i];var g=newElement("div").addClass("info").addClass("data").addClass("image");d.append(g);g.append(newElement("img").addClass("item").attr("src",c.img));var h=newElement("div").addClass("info").addClass("data");d.append(h);if(!e["dx"])for(var i=0;i<3;i++)if(f[i]&&f[i]["dx"]){h.append(newElement("span").addClass("name").addClass("deluxe").text("DX "));break}var k=0;var l="";for(var i=0;i<3;i++)if(f[i])h.append(newElement("span").addClass("name").addClass("option").text("［"+f[i]["name"]+"］"));var m=newElement("span").addClass("name");if(e["u"])m.addClass("unique");else if(f[0]||f[1]||f[2])m.addClass("rare");else m.addClass("normal");h.append(m.text(e["name"]));var n="";for(var i in e["par"])n+="－ "+e["par"][i]+"\r";for(var i=0;i<3;i++)if(f[i])for(var j in f[i]["par"])n+="－ "+f[i]["par"][j]+"\r";d.append(this.basic);d.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(n));if(e["req"]){var o="";for(var i in e["req"])if(e["req"][i]>0)o+="－ "+Status.position[i].name+" "+e["req"][i]+"\r";d.append(this.requests);d.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(o))}if(e["chr"]){var p="";var q=DataSource.getData("items/chars");for(var i in e["chr"]){var r=e["chr"][i];var s=q[r];p+="－ "+s+"\r"}d.append(this.chars);d.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(p))}if(c.socket.name.substring(0,3)=="bag"){var t="";var u=Status.displayStatus;var v=Status.getStatus(c);for(var i in Status.position){if(v[i]!=u[i]){var w=Status.position[i];var x=v[i]-u[i];if(x>0)x="+"+x;else x="‐"+Math.abs(x);t+="－ "+w.name+" "+x;if(w.suffix)t+=w.suffix;t+="\r"}}if(t!=""){d.append(this.after);d.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(t))}}d.append(this.footer);d.css("top",a-2).css("left",b-2);d.show();this.isShow=true},showSkill:function(c,d,e,f){var g=this.element;g.empty();var h=DataSource.getData("status/skills")[Skill.skill][e].skills[f];var i=Skill.chars[e];var j=Skill.skills[e][f];var k=0;if(j>0&&i==Status.character){var l=Guild.guildStatus[i];if(!l)l=0;var m=Status.titleStatus[i];if(!m)m=0;var n=Status.assistStatus[i];if(!n)n=0;var o=Inventory.itemStatus.get(i,Status.charStatus.get("lv"));if(!o)o=0;var p=Inventory.itemStatus.get("lv"+h.lv,Status.charStatus.get("lv"));if(p)o+=p;k=l+m+n+o}var q=j+k;var r=newElement("div").addClass("info").addClass("data");g.append(r);r.append(newElement("span").addClass("name").addClass("skill").text(h.name));var s=" "+q+"<"+j;if(q-j>=0)s+="+";s+=(q-j)+">";r.append(newElement("span").addClass("name").text(s));if(j>0&&i==Status.character){if(o!=0){var s="－ 装備補正 ";if(o>0)s+="+";s+=o;g.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(s))}if(m!=0){var s="－ 称号補正 ";if(m>0)s+="+";s+=m;g.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(s))}if(l!=0){var s="－ ギルド補正 ";if(l>0)s+="+";s+=l;g.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(s))}if(n!=0){var s="－ スキル補正 ";if(n>0)s+="+";s+=n;g.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(s))}}var t="－ スキル難易度 "+h.lv;if(j>0){if(h.ccp){var u=parseInt(eval(h.ccp.replace(/{slv}/g,q)));t+="\r－ 消耗CP "+u}if(h.gcp){var v=parseInt(eval(h.gcp.replace(/{slv}/g,q)));t+="\r－ 獲得CP "+v}}if(t!=""){g.append(this.information);g.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(t))}if(j>0&&i==Status.character){var w="";var x={length:0,lv:h.lv,addStatus:function(a,b){this[a]=b;this.length++}};if(h.dm)x.addStatus("dm",parseFloat(eval(h.dm.replace(/{slv}/g,q))));if(h.cnt)x.addStatus("cnt",parseInt(eval(h.cnt.replace(/{slv}/g,q))));$.each(["fir","wat","win","ear","lig","dar","firx","watx","winx","earx","ligx","darx"],function(){if(h["l"+this])x.addStatus("l"+this,parseFloat(eval(h["l"+this].replace(/{slv}/g,q))));if(h["u"+this])x.addStatus("u"+this,parseFloat(eval(h["u"+this].replace(/{slv}/g,q))));if(h["c"+this])x.addStatus("c"+this,parseInt(eval(h["c"+this].replace(/{slv}/g,q))))});if(x.length>0){var y=Status.getStatus(null,x);if(h.dm){w+="\r－ 物理ダメージ "+y["lat"]+"~"+y["uat"];if(h.cnt)w+="x"+y["cnt"]}var z={fir:"炎",wat:"水",win:"風",ear:"大地",lig:"光",dar:"闇",firx:"炎",watx:"水",winx:"風",earx:"大地",ligx:"光",darx:"闇"};$.each(["fir","wat","win","ear","lig","dar","firx","watx","winx","earx","ligx","darx"],function(){var a="\r－ "+z[this]+"ダメージ ";if(h["l"+this])w+=a+y["l"+this];if(h["u"+this])w+="~"+y["u"+this];if(h["c"+this])w+="x"+y["c"+this]});w=w.substring(1)}if(w!=""){g.append(this.attack);g.append(newElement("pre").addClass("info").addClass("data").addClass("param").text(w))}}g.append(this.footer);g.css("top",c-2).css("left",d-2);g.show();this.isShow=true},hide:function(){if(this.isShow){this.element.hide();this.isShow=false}}};function Inventory(a){return this.init(a)};Inventory.prototype={element:null,partSockets:null,bagSockets:null,dustSockets:null,dragItem:null,dragImage:null,itemStatus:null,newItemStatus:{character:null,sockets:null,itemStatus:null,init:function(a,b){this.character=a;this.sockets=b;this.change();return this},change:function(){var a={};for(var i in this.sockets){if(this.sockets[i].item){var b=this.sockets[i].item.status;for(var j in b)if(a[j])a[j]+=b[j];else a[j]=b[j]}}this.itemStatus=a},get:function(a,b){if(!this.itemStatus[a])return null;value=this.itemStatus[a].replace(/{lv}/g,b);var c=value.match(/\([0-9]+\)/g);if(c){var d=0;for(var i in c)if(i.match(/[0-9]+/)&&d<parseInt(eval(c[i])))d=parseInt(eval(c[i]));return d}else{return parseInt(eval(value))}}},init:function(a){this.element=a;var b={top:0,left:0,rate:1.0,isRangeX:function(x){return this.left<x&&x<this.left+2+34*this.rate},isRangeY:function(y){return this.top<y&&y<this.top+2+34*this.rate},isRange:function(x,y){return this.isRangeX(x)&&this.isRangeY(y)}};var c={};c["weaponL"]=$.extend({},b,{name:"weaponL",top:42,left:19});c["weaponR"]=$.extend({},b,{name:"weaponR",top:42,left:220});c["shield"]=$.extend({},b,{name:"shield",top:27,left:61});c["necklace"]=$.extend({},b,{name:"necklace",top:27,left:100});c["helmet"]=$.extend({},b,{name:"helmet",top:27,left:139});c["mantle"]=$.extend({},b,{name:"mantle",top:27,left:178});c["belt"]=$.extend({},b,{name:"belt",top:65,left:61});c["glove"]=$.extend({},b,{name:"glove",top:65,left:100});c["armor"]=$.extend({},b,{name:"armor",top:65,left:139});c["shoes"]=$.extend({},b,{name:"shoes",top:65,left:178});for(var i=0;i<8;i++)c["ring"+i]=$.extend({},b,{name:"ring"+i,top:104,left:i*28+20+(i<4?0:12),rate:0.71});for(var i=0;i<5;i++)c["boost"+i]=$.extend({},b,{name:"boost"+i,top:8*37+140,left:i*40+19});var d={};for(var y=0;y<8;y++)for(var x=0;x<6;x++)d["bag"+x+y]=$.extend({},b,{name:"bag"+x+y,top:y*37+140,left:x*40+19});this.dustSockets=$.extend({},b,{name:"dust",top:8*37+140,left:i*40+19});this.partSockets=c;this.bagSockets=d;var e=newElement("img").addClass("button").addClass("generate").attr("src","img/generate.png");a.append(e);e.click(bindEvent(this,this.onGenerateClick));$(document).mousemove(bindEvent(this,this.onMove));$(document).mouseup(bindEvent(this,this.onDrop));return this},storeItems:function(){var c=function(a){var b=a["id"];if(a["val"])for(var i in a["val"])b+="."+a["val"][i];return b};var d="";$.each(this.partSockets,function(){d+="_";if(this.item){var a=this.item.save;var b=c(a);if(a["op0"])b+="-"+c(a["op0"]);if(a["op1"])b+="-"+c(a["op1"]);if(a["op2"])b+="-"+c(a["op2"]);d+=b}});$.each(this.bagSockets,function(){if(this.name.substring(0,3)=="bag"){d+="_";if(this.item){var a=this.item.save;var b=c(a);if(a["op0"])b+="-"+c(a["op0"]);if(a["op1"])b+="-"+c(a["op1"]);if(a["op2"])b+="-"+c(a["op2"]);d+=b}}});return d.substring(1)},restoreItems:function(f,g){var h=function(a){var b={};var c=a.split(".");b["id"]=c[0];if(c[2])b["val"]=[parseInt(c[1]),parseInt(c[2])];else if(c[1])b["val"]=[parseInt(c[1])];return b};var i=function(a,b){if(a.item)Inventory.trashItem(a.item,true);if(b&&b!=""){var c=b.split("-");var d=h(c[0]);if(c[1]&&c[1]!="")d["op0"]=h(c[1]);if(c[2]&&c[2]!="")d["op1"]=h(c[2]);if(c[3]&&c[3]!="")d["op2"]=h(c[3]);var e=Generator.restoreItem(d);Inventory.setItemEvent(e);Inventory.bindItem(a,e,true);Inventory.element.append(e)}};var j=f.split("_");var k=0;$.each(this.partSockets,function(){i(this,j[k++])});$.each(this.bagSockets,function(){i(this,j[k++])});this.itemStatus.change()},setItemEvent:function(a){a.dblclick(bindEvent(this,this.onDblClick,a));a.mouseover(bindEvent(this,this.onMouseOver,a));a.mouseout(bindEvent(this,this.onMouseOut));a.mousedown(bindEvent(this,this.onDrag,a))},appendItem:function(a){for(var i in this.bagSockets){var b=this.bagSockets[i];if(!b.item){if(a.socket){this.swapItem(b,a.socket)}else{this.setItemEvent(a);this.bindItem(b,a);this.element.append(a)}return}}},trashItem:function(a,b){if(a.socket)this.unbindItem(a.socket,b);a.socket=null;a.save=null;a.info=null;a.img=null;a.unbind("dblclick",bindEvent(this,this.onDblClick,a));a.unbind("mouseover",bindEvent(this,this.onMouseOver,a));a.unbind("mouseout",bindEvent(this,this.onMouseOut));a.unbind("mousedown",bindEvent(this,this.onDrag,a));a.empty();a.remove()},bindItem:function(a,b,c){b.css("top",a.top).css("left",a.left);b.css("z-index",0).css("opacity",1.0).css("zoom",a.rate);b.socket=a;a.item=b;if(!c&&a.name.substring(0,3)!="bag"){var d=$.extend({},this.itemStatus.itemStatus);this.itemStatus.change();Status.showStatus();for(var i in Skill.chars){var e=Skill.chars[i];if(d[e]!=this.itemStatus.itemStatus[e]||d["lv1"]!=this.itemStatus.itemStatus["lv1"]){Skill.showSkill();break}}}},unbindItem:function(a,b){if(a.item){var c=a.item.changedSkill;a.item.socket=null;a.item=null;if(!b&&a.name.substring(0,3)!="bag"){var d=$.extend({},this.itemStatus.itemStatus);this.itemStatus.change();Status.showStatus();for(var i in Skill.chars){var e=Skill.chars[i];if(d[e]!=this.itemStatus.itemStatus[e]||d["lv1"]!=this.itemStatus.itemStatus["lv1"]){Skill.showSkill();break}}}}},swapItem:function(a,b){var c=a.item;var d=b.item;if(c&&d){this.unbindItem(a,true);this.unbindItem(b,true)}else{this.unbindItem(a);this.unbindItem(b)}if(c)this.bindItem(b,c);if(d)this.bindItem(a,d)},getPartSocket:function(a,x,y){var b=this.partSockets;var c={a:"weapon",b:"shield",c:"necklace",d:"helmet",e:"mantle",f:"belt",g:"glove",h:"armor",i:"shoes",j:"ring",y:"boost",z:"boost"};var d=Status.character;var e=c[a.substring(0,1)];if(e=="weapon"){e="weaponL";switch(a.substring(0,2)){case"a2":if(d=="c01"){if(x&&x<200)e="weaponL";else e="weaponR"}else if(d!="c15")e="weaponR";break;case"a7":if(d=="c13"||d=="c14")e="weaponR";break;case"a3":case"a8":case"aa":case"ac":if(d!="c15")e="weaponR";break;case"ad":if(d=="c15"){if(x&&x>200)e="weaponR";else e="weaponL"}else if(d=="c16"){if(x&&x<200)e="weaponL";else e="weaponR"}else e="weaponR";break;default:e="weaponL"}return b[e]}else if(e=="ring"){if(x&&y&&b["ring0"].isRangeY(y))for(var i=0;i<8;i++)if(b["ring"+i].isRangeX(x))return b["ring"+i];for(var i=0;i<8;i++)if(!b["ring"+i].item)return b["ring"+i];return b["ring"+0]}else if(e=="boost"){if(x&&y&&b["boost0"].isRangeY(y))for(var i=0;i<5;i++)if(b["boost"+i].isRangeX(x))return b["boost"+i];for(var i=0;i<5;i++)if(!b["boost"+i].item)return b["boost"+i];return b["boost"+0]}else{return b[e]}return null},getSocket:function(a,x,y){var b=this.element.offset();x-=b.left;y-=b.top;if(y<140||(435<y&&x<220)){return this.getPartSocket(a,x,y)}else if(this.dustSockets.isRange(x,y)){return this.dustSockets}else{for(var i=0;i<6;i++)if(this.bagSockets["bag"+i+"0"].isRangeX(x))for(var j=0;j<8;j++)if(this.bagSockets["bag"+i+j].isRangeY(y))return this.bagSockets["bag"+i+j]}return null},getChangeStatus:function(a){var b=this.getPartSocket(a.save.id);var c=this.itemStatus.character;var d={};for(var i in this.itemStatus.sockets){if(i==b.name)d[i]=a.socket;else d[i]=this.itemStatus.sockets[i]}return $.extend({},this.newItemStatus.init(c,d))},newStatus:function(a,b){var c={};for(var i in this.partSockets)if(i.match(/weapon/)){if(i=="weapon"+b.weapon)c[i]=this.partSockets[i]}else if(i=="shield"){if(b.shield)c[i]=this.partSockets[i]}else{c[i]=this.partSockets[i]}this.itemStatus=$.extend({},this.newItemStatus.init(a,c))},onDrag:function(e,b){e.preventDefault();clearTimeout(e.events[this.onDrag]);clearTimeout(e.events[this.onMouseOver]);var c=this;e.events[this.onDrag]=setTimeout(function(){Information.hide();var a=document.createElement("img");a.src=b.img;a=$(a).addClass("item").css("top",e.pageY-17).css("left",e.pageX-17);a.css("z-index",100).css("opacity",0.7).css("zoom",1.0);c.dragImage=a;c.dragItem=b;$("body").append(a)},100)},onMove:function(e){e.preventDefault();if(this.dragImage)this.dragImage.css("top",e.pageY-17).css("left",e.pageX-17)},onDrop:function(e){clearTimeout(e.events[this.onDrag]);var a=this.dragItem;if(this.dragImage&&a){this.dragImage.remove();var b=this.getSocket(a.save.id,e.pageX,e.pageY);if(b)if(b.name=="dust")this.trashItem(a);else if(b!=a.socket)this.swapItem(b,a.socket)}this.dragItem=null;this.dragImage=null;e.preventDefault()},onDblClick:function(e,a){e.preventDefault();clearTimeout(e.events[this.onDrag]);clearTimeout(e.events[this.onMouseOver]);if(a&&a.socket){Information.hide();if(a.socket.name.substring(0,3)!="bag"){this.appendItem(a)}else{var b=this.getPartSocket(a.save.id);if(b&&b!=a.socket)this.swapItem(a.socket,b)}}},onMouseOver:function(e,d){e.preventDefault();if(this.dragImage)return;var f=this;var x=e.pageX;var y=e.pageY;e.events[this.onMouseOver]=setTimeout(function(){if(d.save){var a=f.getSocket(d.save.id,x,y);var b=f.element.offset().top+a.top;var c=a.left;Information.showItem(b,c,d)}},250)},onMouseOut:function(e){e.preventDefault();clearTimeout(e.events[this.onMouseOver]);if(this.dragImage)return;Information.hide()},onGenerateClick:function(e){e.preventDefault();Generator.show()}};function Skill(a){return this.init(a)};Skill.prototype={element:null,skill:null,firstPoint:[0,1,3,8,24,50],pointText:{lsp:null,usp:null},chars:{a:null,b:null},texts:{a:new Array(25),b:new Array(25)},skills:{a:new Array(25),b:new Array(25)},init:function(a){this.element=a;var b={a:{left:5},b:{left:235}};for(var c in b){var d=30;var e=b[c].left;for(var i=0;i<25;i++){d+=17;var f=this.skills[c][i]=0;var g=this.texts[c][i]=newElement("span").addClass("valueText").css("top",d).css("left",e).css("width",212).text(f);var h=newElement("img").addClass("button").css("top",d+3).css("left",e+180).attr("src","img/minus.png");var j=newElement("img").addClass("button").css("top",d+3).css("left",e+216).attr("src","img/plus.png");a.append(g);a.append(h);a.append(j);g.mouseover(bindEvent(this,this.onSkillMouseOver,d,e,c,i));g.mouseout(bindEvent(this,this.onSkillMouseOut));h.click(bindEvent(this,this.onMinusClick,c,i));j.click(bindEvent(this,this.onPlusClick,c,i))}}var k=this.pointText.lsp=newElement("span").addClass("pointText");var l=this.pointText.usp=newElement("span").addClass("pointText");a.append(l);var m=newElement("img").addClass("button").addClass("reset").attr("src","img/reset.png");a.append(m);m.click(bindEvent(this,this.onResetClick));return this},showSkill:function(a){if(!a){var b=DataSource.getData("status/skills")[this.skill];for(var c in this.chars){var d=Guild.guildStatus[this.chars[c]];if(!d)d=0;var e=Status.titleStatus[this.chars[c]];if(!e)e=0;var f=Status.assistStatus[this.chars[c]];if(!f)f=0;var g=Inventory.itemStatus.get(this.chars[c],Status.charStatus.get("lv"));if(!g)g=0;for(var i=0;i<25;i++){var h=this.skills[c][i];if(h>0&&this.chars[c]==Status.character){h+=d+e+f+g;var j=Inventory.itemStatus.get("lv"+b[c].skills[i].lv,Status.charStatus.get("lv"));if(j)h+=j}this.texts[c][i].text(h)}}}this.pointText.lsp.text(Status.charStatus.get("lsp"));this.pointText.usp.text(Status.charStatus.get("usp"))},changeCharacter:function(a){if(this.skill!=a){var b=DataSource.getData("status/skills")[a];this.skill=a;this.element.css("background-image","url('img/"+a+".png')");for(var c in this.chars)this.chars[c]=b[c].id;this.resetSkill()}this.showSkill()},getTotalLv:function(a){var b=DataSource.getData("status/chars")[a].type;var c=DataSource.getData("status/skills")[this.skill][b];var d=0;for(var i=0;i<25;i++)if(this.skills[b][i]==50)d+=parseInt(c.skills[i].lv);return d},addSkill:function(a,b,c){var d=DataSource.getData("status/skills")[this.skill][a];var e=this.skills[a][b];if(e==0&&c>0){if(d.skills[b].pres&&d.skills[b].pres!=""){var f=d.skills[b].pres.split(",");for(var i in f){var g=f[i].split("-");var t=g[0].substring(0,1);var s=parseInt(g[0].substring(1))-1;var v=parseInt(g[1]);if(this.skills[t][s]<v)this.addSkill(t,s,v-this.skills[t][s])}}}if(e+c<0)c=-e;else if(e+c>50)c=50-e;var h=d.skills[b].lv;var j=Status.charStatus.getSkill();var k=0;if(c<0){for(k=e;k>e+c;k--){if(k==1)j+=this.firstPoint[h];else j+=h*k}}else{for(k=e;k<e+c;k++){if(k==0&&this.firstPoint[h]<=j)j-=this.firstPoint[h];else if(k>0&&h*(k+1)<=j)j-=h*(k+1);else break}}this.skills[a][b]=k;Status.charStatus.addSkill(Status.charStatus.getSkill()-j);if(c<0){if(d.skills[b].reqs&&d.skills[b].reqs!=""){var f=d.skills[b].reqs.split(",");for(var i in f){var g=f[i].split("-");var t=g[1].substring(0,1);var s=parseInt(g[1].substring(1))-1;var v=parseInt(g[0]);if(k<v)this.addSkill(t,s,-this.skills[t][s])}}}},resetSkill:function(){for(var a in this.skills)for(var i=0;i<25;i++)this.skills[a][i]=0;Status.charStatus.resetSkill()},storeSkills:function(){var a={a:"",b:""};for(var b in a)for(var i=0;i<25;i++){a[b]+=".";if(this.skills[b][i]!=0)a[b]+=this.skills[b][i]}return a.a.substring(1)+"_"+a.b.substring(1)},restoreSkills:function(a,b){if(!a)return;var c=a.split("_");var d={a:c[0].split("."),b:c[1].split(".")};for(var e in d)for(var i=0;i<25;i++)if(d[e][i]!="")this.skills[e][i]=parseInt(d[e][i]);else this.skills[e][i]=0},onResetClick:function(e){var a=confirm("スキルを初期化してもよろしいですか？");if(!a)return;this.resetSkill();this.showSkill()},onSkillMouseOver:function(e,a,b,c,d){e.preventDefault();var f=this;var x=e.pageX;var y=e.pageY;e.events[this.onSkillMouseOver]=setTimeout(function(){a+=f.element.offset().top+18;b+=265+235;Information.showSkill(a,b,c,d)},50)},onSkillMouseOut:function(e){e.preventDefault();clearTimeout(e.events[this.onSkillMouseOver]);Information.hide()},onPlusClick:function(e,a,b){e.preventDefault();var c=1;if(e.ctrlKey&&e.shiftKey)c=100;else if(e.shiftKey)c=10;this.addSkill(a,b,c);Status.changeOtherStatus();this.showSkill()},onMinusClick:function(e,a,b){e.preventDefault();var c=-1;if(e.ctrlKey&&e.shiftKey)c=-100;else if(e.shiftKey)c=-10;this.addSkill(a,b,c);Status.changeOtherStatus();this.showSkill()}};function Status(a){return this.init(a)};Status.prototype={element:null,character:null,charSelect:null,charText:null,guildPost:null,guildSelect:null,guildText:null,titleArea:null,titleAreas:{},mainquestArea:null,mainquestAreas:{},assistArea:null,assistAreas:{},charStatusText:{},charStatus:null,titleStatus:null,mainquestStatus:null,assistStatus:null,displayStatus:null,position:{lv:{top:73,left:58,button:true,name:"レベル"},hp:{top:91,left:58,name:"HP"},cp:{top:104,left:58,name:"CP"},lat:{top:91,left:190,name:"最小攻撃力"},uat:{top:91,left:230,name:"最大攻撃力"},df:{top:104,left:190,name:"防御力"},st:{top:136,left:36,button:true,info:true,name:"力"},it:{top:163,left:36,button:true,info:true,name:"知識"},ag:{top:136,left:95,button:true,info:true,name:"敏捷"},ws:{top:163,left:95,button:true,info:true,name:"知恵"},vt:{top:136,left:154,button:true,info:true,name:"健康"},ca:{top:163,left:154,button:true,info:true,name:"カリスマ"},lu:{top:136,left:213,button:true,info:true,name:"運"},po:{top:163,left:213},ats:{top:195,left:21,suffix:"%",name:"攻撃速度"},hit:{top:195,left:80,suffix:"%",name:"命中率"},blk:{top:195,left:139,suffix:"%",name:"ブロック率"},pos:{top:195,left:198,suffix:"%",name:"薬回復速度"},mvs:{top:222,left:21,suffix:"%",name:"移動速度"},avd:{top:222,left:80,suffix:"%",name:"回避率"},bls:{top:222,left:139,suffix:"%",name:"防御速度"},fir:{top:271,left:20,suffix:"%",name:"火抵抗"},wat:{top:271,left:59,suffix:"%",name:"水抵抗"},win:{top:271,left:98,suffix:"%",name:"風抵抗"},ear:{top:271,left:137,suffix:"%",name:"大地抵抗"},lig:{top:271,left:176,suffix:"%",name:"光抵抗"},dar:{top:271,left:215,suffix:"%",name:"闇抵抗"},cri:{top:301,left:21,suffix:"%",name:"致命打抵抗"},cra:{top:301,left:80,suffix:"%",name:"決定打抵抗"},cus:{top:301,left:139,suffix:"%",name:"呪い系抵抗"},abn:{top:301,left:198,suffix:"%",name:"異常系抵抗"},kil:{top:328,left:21,suffix:"%",name:"即死抵抗"},knk:{top:328,left:80,suffix:"%",name:"後退転倒抵抗"},dec:{top:328,left:139,suffix:"%",name:"低下系抵抗"}},init:function(a){this.element=a;var b=this.charSelect=newElement("select").addClass("select").addClass("charSelect");var c=DataSource.getData("status/chars");var d={};for(var i in c)d[i]=c[i]["name"];a.append(b.hide());b.addOption(d,false).attr("size",b.attr("options").length);var e=this.charText=newElement("span").css("color","lime");var f=newElement("div").addClass("button").addClass("nameText").addClass("charText");a.append(f);f.append(newElement("span","［")).append(e).append(newElement("span","］"));var g=this.guildText=newElement("span").css("color","lime");g.text(DataSource.getData("status/posts")[Guild.guildPost].name);var h=newElement("div").addClass("button").addClass("nameText").addClass("guildText");a.append(h);h.append(newElement("span","［")).append(g).append(newElement("span","］"));var k=newElement("img").addClass("button").addClass("store").attr("src","img/store.png");a.append(k);var l=newElement("img").addClass("button").addClass("restore").attr("src","img/restore.png");a.append(l);var m=newElement("img").addClass("button").addClass("reset").attr("src","img/reset.png");a.append(m);for(var i in this.position){var n=this.position[i];var o=this.charStatusText[i]=newElement("span").addClass("valueText").css("top",n.top).css("left",n.left).css("width",28);if(i=="uat"){a.append(newElement("span").addClass("valueText").css("top",n.top).css("left",n.left-9).text("~"));o.css("text-align","left")}a.append(o);if(n.info){o.mouseover(bindEvent(this,this.onStatusMouseOver,n,i));o.mouseout(bindEvent(this,this.onStatusMouseOut))}if(n.suffix)a.append(newElement("span").addClass("valueText").css("top",n.top).css("left",n.left+30).text(n.suffix));if(n.button){var p=newElement("img").addClass("button").css("top",n.top+3).css("left",n.left-10).attr("src","img/minus.png");var q=newElement("img").addClass("button").css("top",n.top+3).css("left",n.left+32).attr("src","img/plus.png");a.append(p);a.append(q);p.click(bindEvent(this,this.onMinusClick,i));q.click(bindEvent(this,this.onPlusClick,i))}}var r=newElement("img").addClass("button").addClass("title").attr("src","img/title.png");a.append(r);r.click(bindEvent(this,this.onTitleChangeClick,"title"));var s=this.titleArea=newElement("div").addClass("titles");a.append(s);var t=DataSource.getData("status/titles");D=false;E=0;for(var i in t){var u=newElement("div").addClass("titleText").addClass("button").css("color","gray");u.css("top",E);if(D){u.css("left",120);if(i>="ag")E+=15}D=!D;s.append(u.text(t[i].name));var v=newElement("select").addClass("select").addClass("titleSelect");s.append(v.hide());var d={none:""};for(var j in t[i].detail)d[j]=t[i].detail[j].name;v.addOption(d,false).attr("size",v.attr("options").length);v.click(bindEvent(this,this.onTitleChange,i));u.click(bindEvent(this,this.onTitleClick,i));this.titleAreas[i]={select:v,text:u}}var w=newElement("img").addClass("button").addClass("title").attr("src","img/mainquest.png");a.append(w);w.click(bindEvent(this,this.onTitleChangeClick,"mainquest"));var x=this.mainquestArea=newElement("div").addClass("titles").hide();a.append(x);var y=DataSource.getData("status/mainquests");D=false;E=0;for(var i in y){var u=newElement("div").addClass("titleText").addClass("button").css("color","gray");u.css("top",E);if(D){u.css("left",120);E+=15}D=!D;x.append(u.text(y[i].name));var z=newElement("select").addClass("select").addClass("titleSelect");x.append(z.hide());var d={none:""};for(var j in y[i].detail)d[j]=y[i].detail[j].name;z.addOption(d,false).attr("size",z.attr("options").length);z.click(bindEvent(this,this.onMainquestChange,i));u.click(bindEvent(this,this.onMainquestClick,i));this.mainquestAreas[i]={select:z,text:u}}var A=newElement("img").addClass("button").addClass("title").attr("src","img/assist.png");a.append(A);A.click(bindEvent(this,this.onTitleChangeClick,"assist"));var B=this.assistArea=newElement("div").addClass("titles").hide();a.append(B);var C=DataSource.getData("status/assists");var D=false;var E=0;for(var i in C){var F=newElement("div").addClass("titleText").addClass("button").css("color","gray");F.css("top",E);if(D){F.css("left",120);E+=15}D=!D;B.append(F.text(C[i].name));var G=newElement("select").addClass("select");B.append(G.hide());var H=C[i].lv.split("~");var d={none:""};for(var I=parseInt(H[0]);I<=parseInt(H[1]);I++)d[I]=C[i].disp.replace(/{slv}/g,I);G.addOption(d,false).attr("size",10);G.click(bindEvent(this,this.onAssistChange,i));F.click(bindEvent(this,this.onAssistClick,i));this.assistAreas[i]={select:G,text:F}}k.click(bindEvent(this,this.onStoreClick));l.click(bindEvent(this,this.onRestoreClick));m.click(bindEvent(this,this.onResetClick));b.click(bindEvent(this,this.onCharChange));e.click(bindEvent(this,this.onCharClick));g.click(bindEvent(this,this.onGuildClick));return this},getNewStatus:function(d){var e={lvBonus:null,freePoint:4,baseStatus:{lv:1,hp:0,cp:0,lat:0,uat:0,ldm:0,udm:0,df:0,st:0,it:0,ag:0,ws:0,vt:0,ca:0,lu:0,po:0,lsp:0,usp:0,fir:0},addedStatus:{lv:0,st:0,it:0,ag:0,ws:0,vt:0,ca:0,lu:0,po:0,lsp:0,usp:0},mainquestStatus:{mpo:0,msp:0},get:function(a){var b=this.getStatus(a);if(a=="hp")b+=this.get("lv");else if(a=="cp")b+=this.get("lv");else if(a=="po"&&this.mainquestStatus["mpo"])b+=this.mainquestStatus["mpo"];else if((a=="lsp"||a=="usp")&&this.mainquestStatus["msp"])b+=this.mainquestStatus["msp"];return b},add:function(a,b){if(a=="lv"){if(this.addedStatus["lv"]+b<0)b=-this.addedStatus["lv"];if(b<0){for(var c=this.addedStatus["lv"];c>this.addedStatus["lv"]+b;c--){this.addedStatus["lsp"]-=c+1<100?c+1:100;this.addedStatus["usp"]-=c+2<100?c+2:100}}else{for(var c=this.addedStatus["lv"];c<this.addedStatus["lv"]+b;c++){this.addedStatus["lsp"]+=c+2<100?c+2:100;this.addedStatus["usp"]+=c+3<100?c+3:100}}this.addedStatus["lv"]+=b;this.addedStatus["po"]+=b*this.freePoint}else{if(this.get("po")<b)b=this.get("po");this.addStatus(a,b)}},getStatus:function(a){var b=this.baseStatus[a];if(this.addedStatus[a])b+=this.addedStatus[a];if(this.lvBonus&&a==this.lvBonus)b+=this.addedStatus["lv"];return b},getSkill:function(){return this.get("usp")},addStatus:function(a,b){if(this.addedStatus[a]+b<0)b=-this.addedStatus[a];this.addedStatus["po"]-=b;this.addedStatus[a]+=b},addSkill:function(a){this.addedStatus["lsp"]-=a;this.addedStatus["usp"]-=a},resetSkill:function(){if(this.addedStatus["lv"]<100)this.addedStatus["lsp"]=(2+this.addedStatus["lv"]+1)*this.addedStatus["lv"]/2;else this.addedStatus["lsp"]=5049+(this.addedStatus["lv"]-99)*100;if(this.addedStatus["lv"]<99)this.addedStatus["usp"]=this.addedStatus["lsp"]+this.addedStatus["lv"]+1;else this.addedStatus["usp"]=this.addedStatus["lsp"]+99}};var f=$.extend({},e);switch(d){case"c08":f=$.extend(f,{addBonus:function(a){a["lat"]+=Math.floor(Math.floor(a["lv"]/5)*1.0+(a["lv"]<2?0:1));a["uat"]+=Math.floor(Math.floor(a["lv"]/5)*1.2+(a["lv"]<5?0:1));return a}});break;case"c10":f=$.extend(f,{addBonus:function(a){a["ca"]+=Math.floor(a["ca"]*0.01);a["ws"]+=Math.floor(a["ws"]*0.03);return a}});break;case"c12":f=$.extend(f,{change:{st:"it",it:"st",ag:"ws",ws:"ag",vt:"ca",ca:"vt",lu:"lu"},exchange:function(a){var b=$.extend({},a);for(var i in this.change)b[i]=a[this.change[i]];return b},addStatus:function(a,b){if(this.change[a])a=this.change[a];if(this.addedStatus[a]+b<0)b=-this.addedStatus[a];this.addedStatus["po"]-=b;this.addedStatus[a]+=b}});break;case"c14":f=$.extend(f,{addBonus:function(a){a["ca"]+=Math.floor(a["lu"]/4);return a}});break;case"c15":case"c16":f=$.extend(f,{freePoint:5});break}var g=DataSource.getData("status/chars")[d];f.lvBonus=g["bonus"];f.freePoint=parseInt(g["point"]);for(var i in g["status"])f.baseStatus[i]=parseInt(g["status"][i]);return f},changeOtherStatus:function(a){if(!a||a=="title"){var b=this.titleStatus={};var c=DataSource.getData("status/titles");for(var i in this.titleAreas){var d=this.titleAreas[i].select.selectedValue();if(d!="none"){var e=c[i].detail[d];if(e.sts)for(var j in e.sts){var f=e.sts[j];if(f.match(/{slv}/))f=f.replace(/{slv}/g,Skill.getTotalLv(j));f=parseInt(eval(f));if(b[j])b[j]+=f;else b[j]=f}}}}if(!a||a=="mainquest"){var g=this.mainquestStatus=this.charStatus.mainquestStatus={};var h=DataSource.getData("status/mainquests");for(var i in this.mainquestAreas){var d=this.mainquestAreas[i].select.selectedValue();if(d!="none"){var e=h[i].detail[d];if(e.sts)for(var j in e.sts){var f=e.sts[j];if(f.match(/{slv}/))f=f.replace(/{slv}/g,Skill.getTotalLv(j));f=parseInt(eval(f));if(g[j])g[j]+=f;else g[j]=f}}}}if(!a||a=="assist"){var k=this.assistStatus={};var l=DataSource.getData("status/assists");for(var i in this.assistAreas){var m=this.assistAreas[i].select.get(0).selectedIndex;if(m!=0){if(l[i]&&l[i].sts)for(var j in l[i].sts){var f=l[i].sts[j];f=parseInt(eval(f.replace(/{slv}/g,m)));if(!k[j]||k[j]<f)k[j]=f}}}}},getStatus:function(l,m){var n=this.character;var o=this.charStatus;var p=Guild.guildStatus;var q=this.titleStatus;var r=this.mainquestStatus;var s=this.assistStatus;var t=null;if(l)t=Inventory.getChangeStatus(l);else t=Inventory.itemStatus;var u={};$.each(["lv","po","stx","itx","agx","wsx","vtx","cax","lux","st","it","ag","ws","vt","ca","lu"],function(){var a=o.get(this);if(!a)a=0;var b=p[this];if(!b)b=0;var c=q[this];if(!c)c=0;var d=r[this];if(!d)d=0;var e=s[this];if(!e)e=0;var f=t.get(this,u["lv"]);if(!f)f=0;u[this]=0;if("st,it,ag,ws,vt,ca,lu".match(this)&&u[this+"x"]){u[this]=u[this+"x"]}else{u[this]=a+b+c+d+e+f}});if(o.addBonus)u=o.addBonus(u);$.each(["it","ag","ws","vt","ca","lu"],function(){if(u[this+"x"]>0)u[this]=u[this+"x"]});if(o.exchange)u=o.exchange(u);if(m){var v=0;if(u["it"]<524)v=u["it"]/58;else if(u["it"]<930)v=7+(u["it"]-524)/176;else v=9+(u["it"]-930)/230;v=1+parseInt(v)/50;$.each(["lab","uab","lag","uag","lai","uai","ldm","udm","ldr","udr","dm","lat","uat","upfir","upwat","upwin","upear","uplig","updar","lfir","ufir","lwat","uwat","lwin","uwin","lear","uear","llig","ulig","ldar","udar","lfirx","ufirx","lwatx","uwatx","lwinx","uwinx","learx","uearx","lligx","uligx","ldarx","udarx","cnt","cfir","cwat","cwin","cear","clig","cdar","cfirx","cwatx","cwinx","cearx","cligx","cdarx"],function(){var a=o.get(this);if(!a)a=0;var b=p[this];if(!b)b=0;var c=q[this];if(!c)c=0;var d=r[this];if(!d)d=0;var e=s[this];if(!e)e=0;var f=t.get(this,u["lv"]);if(!f)f=0;var g=m[this];if(!g){g=0}u[this]=0;if("lat,uat".match(this)){var h=this.substring(0,1);var i=u["dm"];if(!i)i=0;var j=a+f;if("c01,c03,c13".match(n))j+=u[h+"ab"];if("c08,c12".match(n))j+=u[h+"ag"];if("c08".match(n))j+=u[h+"ai"];if(j!=0)u[this]+=j*(1+u["st"]/200)*(100+i)/100;var k=u[h+"dm"];if("c01,c02,c04,c05,c06,c08,c09,c12,c14,c15,c16".match(n))k+=u[h+"dr"];if(k!=0)u[this]+=k*(1+u["st"]/200);u[this]=(parseInt(u[this]*100)/100).toFixed(2)}else if("lfir,ufir,lwat,uwat,lwin,uwin,lear,uear,llig,ulig,ldar,udar".match(this)){var i=u["up"+this.substring(1)];var j=g;if(!j)j=0;j=j*(1+u["it"]/200*v);j=(parseInt(j*100)/100).toFixed(2);j=j*(100+i)/100;u[this]=(parseInt(j*100)/100).toFixed(2)}else if("lfirx,ufirx,lwatx,uwatx,lwinx,uwinx,learx,uearx,lligx,uligx,ldarx,udarx".match(this)){var j=g;if(!j)j=0;j=j*(1+u["it"]/200);j=(parseInt(j*100)/100).toFixed(2);u[this]=(parseInt(j*100)/100).toFixed(2)}else{u[this]=a+b+c+d+e+f+g}})}else{$.each(["hpr","cpr","hp","cp","lab","uab","lag","uag","lai","uai","ldm","udm","ldr","udr","dm","lat","uat","dfr","dfo","df","ats","mvs","hit","avd","blk","bls","pos","fir","wat","win","ear","lig","dar","cri","kil","cra","knk","cus","dec","abn"],function(){var a=o.get(this);if(!a)a=0;var b=p[this];if(!b)b=0;var c=q[this];if(!c)c=0;var d=r[this];if(!d)d=0;var e=s[this];if(!e)e=0;var f=t.get(this,u["lv"]);if(!f)f=0;u[this]=0;if("hp"==this){u[this]=a+u["vt"];var g=u[this+"r"];if(g!=0)u[this]=u[this]*(1+g/100);u[this]+=b+c+d+e+f;u[this]=Math.floor(u[this])}else if("cp"==this){u[this]=a+u["ca"];var g=u[this+"r"];if(g!=0)u[this]=u[this]*(1+g/100);u[this]+=b+c+d+e+f;u[this]=Math.floor(u[this])}else if("lat,uat".match(this)){var h=this.substring(0,1);var g=u["dm"];if(!g)g=0;var i=a+f;if("c01".match(n))i+=u[h+"ab"];if("c08,c12".match(n))i+=u[h+"ag"];if("c08".match(n))i+=u[h+"ai"];if(i!=0)u[this]+=i*(1+u["st"]/200)*(100+g)/100;var j=u[h+"dm"];if("c01,c02,c04,c05,c06,c08,c09,c12,c14,c15,c16".match(n))j+=u[h+"dr"];if(j!=0)u[this]+=j*(1+u["st"]/200);u[this]=Math.floor(u[this])}else if("df"==this){var g=u["dfr"];if(!g)g=0;if(f!=0)u[this]+=f*(1+u["vt"]/100)*(100+g)/100;var j=u["dfo"];if(j&&j!=0)u[this]+=j*(1+u["vt"]/100);u[this]=Math.floor(u[this])}else if("fir,wat,win,ear,lig,dar".match(this)){u[this]=a+b+c+d+e+f;u[this]+=Math.floor(u["ws"]/20)}else{u[this]=a+b+c+d+e+f}})}return u},showStatus:function(){var a=this.displayStatus=this.getStatus();for(var i in this.charStatusText){this.charStatusText[i].text(a[i])}},resetStatus:function(){var a=this.charStatus.addedStatus["lv"];var b=this.charStatus.addedStatus["lsp"];var c=this.charStatus.addedStatus["usp"];this.charStatus=this.getNewStatus(this.character);this.charStatus.add("lv",a);this.charStatus.addedStatus["lsp"]=b;this.charStatus.addedStatus["usp"]=c;this.charStatus.mainquestStatus=this.mainquestStatus},storeStatus:function(){var a="";for(var i in this.charStatus.addedStatus)a+="."+this.charStatus.addedStatus[i];a=a.substring(1);var b="";for(var i in this.titleAreas){var c=this.titleAreas[i].select.selectedValue();if(c!="none")b+="."+c;else b+="."}b=b.substring(1);var d="";for(var i in this.mainquestAreas){var c=this.mainquestAreas[i].select.selectedValue();if(c!="none")d+="."+c;else d+="."}d=d.substring(1);return a+"_"+b+"_"+d+"_"+Guild.storeStatus()},restoreStatus:function(a,b){if(!a)return;a=this.convertVersion(a,b);var c=a.split("_");var d=c[0].split(".");var e=0;for(var i in this.charStatus.addedStatus){if(e<d.length)this.charStatus.addedStatus[i]=parseInt(d[e++]);else if(i=="usp")this.charStatus.resetSkill()}var f=DataSource.getData("status/titles");var g=c[1].split(".");var e=0;for(var i in this.titleAreas){var h=this.titleAreas[i];if(f[i]["chr"]&&!f[i]["chr"].join(",").match(this.character)){h.select.get(0).selectedIndex=0}else if(g[e]){var j=g[e];var k=h.select.get(0);if(j!=""&&j.substring(0,2)==i){if(k.options[k.selectedIndex].value!=j){h.select.selectOptions(j);h.text.css("color","white").text(f[i].detail[j]["name"])}}else{if(k.selectedIndex!=0){k.selectedIndex=0;h.text.css("color","gray").text(f[i]["name"])}if(j!="")continue}}e++}var l=DataSource.getData("status/mainquests");var m=c[2].split(".");var e=0;for(var i in this.mainquestAreas){var n=this.mainquestAreas[i];if(m[e]){var o=m[e];var k=n.select.get(0);if(o!=""&&o.substring(0,2)==i){if(k.options[k.selectedIndex].value!=o){n.select.selectOptions(o);n.text.css("color","white").text(l[i].detail[o]["name"])}}else{if(k.selectedIndex!=0){k.selectedIndex=0;n.text.css("color","gray").text(l[i]["name"])}if(o!="")continue}}e++}this.changeOtherStatus();Guild.restoreStatus(c[3],b)},convertVersion:function(a,b){if(b<="1.09"){var c=a.split("_");var d=c[1].split(".");var e=new Array(d.length+1);for(var i=0;i<17;i++)e[i]=d[i];e[17]="";for(var i=17;i<d.length;i++)e[i+1]=d[i];c[1]=e.join(".");a=c.join("_")}if(b<="1.17"){var c=a.split("_");var f=new Array(c.length+1);for(var i=0;i<2;i++)f[i]=c[i];f[2]="....";for(var i=2;i<c.length;i++)f[i+1]=c[i];a=f.join("_")}return a},onStoreClick:function(e){var a=confirm("このキャラクタとアイテムを保存してもよろしいですか？");if(!a)return;var b=document.cookie.split(';');$.cookie("item",Version+"!"+Inventory.storeItems(),{expires:365});$.cookie(this.character,null);$.cookie(this.character,Version+"!"+Status.storeStatus()+"!"+Skill.storeSkills(),{expires:365});var c=$.cookie(this.character);if(!c){for(var i in b){var d=$.trim(b[i]);var f=d.substring(0,d.indexOf("="));if(f!="item"&&f!=this.character){$.cookie(f,null);c=$.cookie(this.character);if(c)break}}}},onRestoreClick:function(e){var f=confirm("保存されているキャラクタとアイテムを復元してもよろしいですか？");if(!f)return;$(document.body).css("cursor","wait");var g=this;setTimeout(function(){var a=$.cookie("item");if(!a){alert("保存されているデータはありません。");$(document.body).css("cursor","default");return}var b=a.split("!");var c=b[0];Inventory.restoreItems(b[1],c);a=$.cookie(g.character);if(!a){var d=DataSource.getData("status/chars")[g.character];alert(d["name"]+"のデータは保存されていません。");$(document.body).css("cursor","default");return}b=a.split("!");if(b.length==2){Skill.restoreSkills(b[1],c);g.restoreStatus(b[0],c)}else{var c=b[0];Skill.restoreSkills(b[2],c);g.restoreStatus(b[1],c)}g.showStatus();Skill.showSkill();$(document.body).css("cursor","default")},100)},onResetClick:function(e){var a=confirm("ステータスを初期化してもよろしいですか？");if(!a)return;this.resetStatus();this.showStatus()},onPlusClick:function(e,a){e.preventDefault();var b=1;if(e.ctrlKey&&e.shiftKey)b=100;else if(e.shiftKey)b=10;this.charStatus.add(a,b);this.showStatus();if(a=="lv")Skill.showSkill(true)},onMinusClick:function(e,a){e.preventDefault();var b=-1;if(e.ctrlKey&&e.shiftKey)b=-100;else if(e.shiftKey)b=-10;this.charStatus.add(a,b);this.showStatus();if(a=="lv")Skill.showSkill(true)},onCharChange:function(e){var a=this.character=this.charSelect.hide().selectedValue();var b=DataSource.getData("status/chars")[a];this.charText.text(b.name).css("disabled","disabled");var c=this.charStatus;this.charStatus=this.getNewStatus(a);if(c&&c.addedStatus){var d={lv:"lv",st:"st",it:"it",ag:"ag",ws:"ws",vt:"vt",ca:"ca",lu:"lu"};if(this.charStatus.change)d=$.extend(d,this.charStatus.change);for(var i in d)this.charStatus.add(d[i],c.addedStatus[i]);this.charStatus.addedStatus["lsp"]=c.addedStatus["lsp"];this.charStatus.addedStatus["usp"]=c.addedStatus["usp"]}var f=DataSource.getData("status/titles");for(var i in this.titleAreas){if(!f[i]["chr"]||f[i]["chr"].join(",").match(this.character))this.titleAreas[i]["text"].show();else this.titleAreas[i]["text"].hide()}this.changeOtherStatus();Inventory.newStatus(a,b);Generator.charSelect.selectOptions(a).change();this.showStatus();Skill.changeCharacter(b.skill)},onCharClick:function(e){this.charText.css("disabled",null);$("select:visible",this.element).hide();this.charSelect.css("z-index",10).show();this.charSelect.selectOptions(this.character);e.preventDefault()},onStatusMouseOver:function(e,c,d){e.preventDefault();var f=this;var x=e.pageX;var y=e.pageY;e.events[this.onStatusMouseOver]=setTimeout(function(){var a=f.element.offset().top+c.top-10;var b=c.left+45;Information.showStatus(a,b,d,c.name)},50)},onStatusMouseOut:function(e){e.preventDefault();clearTimeout(e.events[this.onStatusMouseOver]);Information.hide()},onGuildClick:function(e){e.preventDefault();$("select:visible",this.element).hide();Guild.show()},onTitleChangeClick:function(e,a){switch(a){case"title":this.titleArea.show();this.mainquestArea.hide();this.assistArea.hide();break;case"mainquest":this.mainquestArea.show();this.titleArea.hide();this.assistArea.hide();break;case"assist":this.assistArea.show();this.titleArea.hide();this.mainquestArea.hide();break}},onTitleChange:function(e,a){e.preventDefault();var b=this.titleAreas[a];var c=b.select.hide().selectedValue();var d=DataSource.getData("status/titles")[a];if(c=="none")b.text.css("color","gray").text(d.name);else b.text.css("color","white").text(d.detail[c].name);b.text.css("disabled",null);var f=$.extend({},this.titleStatus);this.changeOtherStatus("title");this.showStatus();for(var i in Skill.chars){var g=Skill.chars[i];if(f[g]!=this.titleStatus[g]){Skill.showSkill();break}}},onTitleClick:function(e,a){e.preventDefault();var b=this.titleAreas[a];var c=this.titleArea.offset();var d=b.text.offset();$("select:visible",this.element).hide();b.select.css("z-index",10).css("top",d.top-c.top).css("left",d.left-c.left).show();b.text.css("disabled","disabled")},onMainquestChange:function(e,a){e.preventDefault();var b=this.mainquestAreas[a];var c=b.select.hide().selectedValue();var d=DataSource.getData("status/mainquests")[a];if(c=="none")b.text.css("color","gray").text(d.name);else b.text.css("color","white").text(d.detail[c].name);b.text.css("disabled",null);var f=$.extend({},this.mainquestStatus);this.changeOtherStatus("mainquest");this.showStatus();if(a=="s2"){Skill.showSkill()}},onMainquestClick:function(e,a){e.preventDefault();var b=this.mainquestAreas[a];var c=this.mainquestArea.offset();var d=b.text.offset();$("select:visible",this.element).hide();b.select.css("z-index",10).css("top",d.top-c.top).css("left",d.left-c.left).show();b.text.css("disabled","disabled")},onAssistChange:function(e,a){e.preventDefault();var b=this.assistAreas[a];var c=DataSource.getData("status/assists")[a];var d=b.select.hide().selectedValue();if(d=="none")b.text.css("color","gray").text(c.name);else b.text.css("color","white").text(c.disp.replace(/{slv}/g,d));b.text.css("disabled",null);var f=$.extend({},this.assistStatus);this.changeOtherStatus("assist");this.showStatus();for(var i in Skill.chars){var g=Skill.chars[i];if(f[g]!=this.assistStatus[g]){Skill.showSkill();break}}},onAssistClick:function(e,a){e.preventDefault();var b=this.assistAreas[a];var c=this.assistArea.offset();var d=b.text.offset();$("select:visible",this.element).hide();b.select.css("z-index",10).css("top",d.top-c.top).css("left",d.left-c.left).show();b.text.css("disabled","disabled")}};