var baseLinkColor = "#99ccff";var Main = {selectTag : function (form) {if (!form) {form = document.edit;}var tagList = form.tag_menu;var idx = tagList.selectedIndex;if (idx <= 0) {return;}eval("var json = " + form.tagJSON.value);var tagId = tagList[idx].value;var tagObj = json[tagId];var val = form.tags.value;if (val.length > 0) {val += ",";}val += tagObj.tag;form.tags.value = val;},searchTag : function (form) {if (!form) {form = document.search;}if (form.tag.selectedIndex == 0) {this.showAllMemo();return;}this.postForm();},searchKeyword : function (form) {if (!form) {form = document.search;}var keyword = form.keyword.value;if (keyword.length == 0) {alert("キーワードを入力してください");return;}this.postForm();},showAllMemo : function () {var query = new Query();query.addElement("action", "default");query.addElement("boardId", $("hidden_board_id").value);ajax_post(query);},postForm : function (params) {var str = this.getAllConditions();if (str.length > 0) {if (params && params.toString() && params.toString().length > 0) {str += '&' + params.toString();}} else {str = params.toString();}ajax_post(str);},getAllConditions : function () {var query = new Query();if (document.search.keyword.value.length > 0) {query.addElement("keyword", document.search.keyword.value);}var idx = document.search.tag.selectedIndex;if (idx > 0) {query.addElement("tagId", document.search.tag[idx].value);}query.addElement("boardId", $("hidden_board_id").value);return query.toString();}};var Memo = {mouseOver : function (event, memo_id) {var memo = $("memo_" + memo_id);if (memo) { if ($("hidden_memo_color").value.length > 0) {Log.display("not in " + memo.style.backgroundColor + "|" + $("hidden_memo_color").value);return;}Log.display("in " + memo.style.backgroundColor + "|" + $("hidden_memo_color").value);$("hidden_memo_color").value = memo.style.backgroundColor;memo.style.backgroundColor = baseLinkColor;memo.style.borderColor = "#ffffff";}var proc = "onmouseout='Memo.mouseOut(event, "+ memo_id + ");'";this.changeCtlText(memo_id, "<img src='img/modify.png' "+ proc +" alt='編集'/>", "<img src='img/remove.png' "+ proc +" alt='削除'/>", "<img src='img/move.png' "+ proc +" alt='移動'/>");},mouseOut : function (event, memo_id) {if ($("hidden_memo_color").value == "") {return;}if (!memo_id) {memo_id = $("hidden_memo_id").value;}var memo = $("memo_" + memo_id);if (memo) {if (Position.within(memo, Event.pointerX(event), Event.pointerY(event))) {Log.display("not out " + memo.style.backgroundColor + "|" + $("hidden_memo_color").value);return;}Log.display("out " + memo.style.backgroundColor + "|" + $("hidden_memo_color").value);memo.style.backgroundColor = $("hidden_memo_color").value;$("hidden_memo_color").value = "";memo.style.borderColor = "#000000";}this.changeCtlText(memo_id, "", "", "");},changeCtlText : function (memo_id, mod, del, mov) {var memo_ctl_mod = $("memo_ctl_mod_" + memo_id);var memo_ctl_del = $("memo_ctl_del_" + memo_id);var memo_ctl_mov = $("memo_ctl_mov_" + memo_id);if (memo_ctl_mod && memo_ctl_del && memo_ctl_mov) {memo_ctl_mod.innerHTML = mod;memo_ctl_del.innerHTML = del;memo_ctl_mov.innerHTML = mov;}},add : function (form) {if (!form) {form = document.edit;}if (form.text.value.length == 0) {alert("メモを入力してください");return;}var query = new Query();query.addElement("action", "add");query.addElement("text", form.text.value);if (form.tags.value.length > 0) {query.addElement("tags", form.tags.value);}Main.postForm(query.toString());},modify : function (memo_id) {var query = new Query();query.addElement("action", "default");query.addElement("modify", memo_id);Main.postForm(query.toString());},update : function (form) {if (!form) {form = document.edit;}if (form.text.value.length == 0) {alert("メモを入力してください");return;}var query = new Query();query.addElement("action", "modify");query.addElement("text", form.text.value); query.addElement("id", form.memo_id.value); if (form.tags.value.length > 0) {query.addElement("tags", form.tags.value); }Main.postForm(query.toString());},remove : function (memo_id) {if (confirm("削除しますか？")) {var query = new Query();query.addElement("action", "delete");query.addElement("id", memo_id);Main.postForm(query.toString());}}};var Tag = {select : function (form) {if (!form) {form = document.tag;}var idx = form.tag_list.selectedIndex;var tagName = "";var color = "";if (idx == -1) {} else {eval("var json = " + form.tagJSON.value);var tagId = form.tag_list[idx].value;var tagObj = json[tagId];tagName = tagObj.tag;color = tagObj.color;if (!color) {color = "#ffffff";}}form.modify_tag.value = tagName;Color.select(color);},add : function (form) {if (!form) {form = document.tag;}var tag = form.add_tag.value;if (tag.length == 0) {alert("タグが入力されていません");return;}var query = new Query();query.addElement("action", "add");query.addElement("tag", tag);ajax_post(query, 'tag');},modify : function (form) {if (!form) {form = document.tag;}var idx = form.tag_list.selectedIndex;if (idx == -1) {alert("タグが選択されていません");return;}var tagId = form.tag_list[idx].value;var tagName = form.modify_tag.value;eval("var json = " + form.tagJSON.value);var tagObj = json[tagId];var query = new Query();query.addElement("action", "modify");query.addElement("tagId", tagId);if (tagName.length > 0 && tagName != tagObj.tag) {query.addElement("tag", tagName);} else {return;}ajax_post(query, 'tag');},modifyColor : function (color, form) {if (!color || color.length == 0) {color = "#ffffff";}if (!form) {form = document.tag;}var idx = form.tag_list.selectedIndex;if (idx == -1) {alert("タグが選択されていません");return;}var tagId = form.tag_list[idx].value;Color.select(color);var query = new Query();query.addElement("action", "modify");query.addElement("tagId", tagId);query.addElement("color", color);ajax_post(query, 'tag');},remove : function (form) {if (!form) {form = document.tag;}var idx = form.tag_list.selectedIndex;if (idx == -1) {alert("タグが選択されていません");return;}var tagId = form.tag_list[idx].value;var query = new Query();query.addElement("action", "delete");query.addElement("tagId", tagId);ajax_post(query, 'tag');}};var Board = {change : function (boardId) {var query = new Query();query.addElement("action", "default");query.addElement("boardId", boardId);ajax_post(query);},select : function (form) {if (!form) {form = document.board;}var idx = form.board_list.selectedIndex;var name = "";var color = "";if (idx == -1) {} else {var boardId = form.board_list[idx].value;eval("var json =" + form.boardJSON.value);var boardObj = json[boardId];name = boardObj.title;color = boardObj.color;if (!color) {color = "#ffffff";}}form.modify_board.value = name;Color.select(color);},add : function (form) {if (!form) {form = document.board;}var title = form.add_board.value;if (title.length == 0) {alert("ボード名が入力されていません");return;}var query = new Query();query.addElement("action", "add");query.addElement("title", title);ajax_post(query, 'board');},modify : function (form) {if (!form) {form = document.board;}var idx = form.board_list.selectedIndex;if (idx == -1) {alert("ボードが選択されていません");return;}var boardId = form.board_list[idx].value;var title = form.modify_board.value;eval("var json = " + form.boardJSON.value);var boardObj = json[boardId];var query = new Query();query.addElement("action", "modify");query.addElement("boardId", boardId);if (title.length > 0 && title != boardObj.title) {query.addElement("title", title);} else {return;}ajax_post(query, 'board');},modifyColor : function (color, form) {if (!color || color.length == 0) {color = "#ffffff";}if (!form) {form = document.board;}var idx = form.board_list.selectedIndex;if (idx == -1) {alert("ボードが選択されていません");return;}var boardId = form.board_list[idx].value;Color.select(color);var query = new Query();query.addElement("action", "modify");query.addElement("boardId", boardId);query.addElement("color", color);ajax_post(query, 'board');},remove : function (form) {if (!form) {form = document.board;}var idx = form.board_list.selectedIndex;if (idx == -1) {alert("ボードが選択されていません");return;}eval("var json = " + form.boardJSON.value);var boardId = form.board_list[idx].value;var boardObj = json[boardId];if (confirm("'" + boardObj.title + "'に含まれるすべてのメモも削除されますが、よろしいですか？（この操作は取り消しできません）")) {var query = new Query();query.addElement("action", "delete");query.addElement("boardId", boardId);ajax_post(query, 'board');}},showMenu : function (event, memo_id) {$("hidden_memo_id").value = memo_id;var style = $('board_menu').style;style.left = Event.pointerX(event) + "px";style.top = Event.pointerY(event) + "px";style.display = "block";},mouseOutMenu : function (event) {var menu = $('board_menu');if (menu.style.display == "block") {if (!Position.within(menu, Event.pointerX(event), Event.pointerY(event))) {menu.style.display = "none";Memo.mouseOut();$("hidden_memo_id").value = "";}}},tabBGColor : "",mouseOverTab : function (boardId) {this.tabBGColor = $(boardId).style.backgroundColor;$(boardId).style.backgroundColor = baseLinkColor;},mouseOutTab : function (boardId) {$(boardId).style.backgroundColor = this.tabBGColor;},moveMemo : function (boardId) {if ($("hidden_memo_id").value == "") {return;}var query = new Query();query.addElement("action", "move");query.addElement("boardId", $("hidden_board_id").value);query.addElement("newId", boardId);query.addElement("memoId", $("hidden_memo_id").value);Main.postForm(query);},arrangeBoardList : function (isUp, form) {if (!form) {form = document.board;}var idx = form.board_list.selectedIndex;if (idx == -1) {alert("ボードが選択されていません");return;}var newIdx = (isUp) ? idx - 1 : idx + 1;if (!(newIdx >= 0 && newIdx < form.board_list.length)) {return;}var options = new Array;for (var i = 0; i < form.board_list.length; i++) {if (i == idx) {options.push(form.board_list.options[newIdx]);} else if (i == newIdx) {options.push(form.board_list.options[idx]);} else {options.push(form.board_list.options[i]);}}form.board_list.length = 0;for (var i = 0; i < options.length; i++) {form.board_list.options[i] = new Option;form.board_list.options[i] = options[i];}}, saveArrange : function () {var query = new Query();query.addElement("action", "arrange");var form = document.board;for (var i = 0; i < form.board_list.length; i++) {query.addElement("board" + i, form.board_list.options[i].value);}query.addElement("length", form.board_list.length);ajax_post(query, 'board');}};var Register = {onLoad : function () {this.checkForm();},confirm : function (form) {if (!form) {form = document.register;}if (!this.valid) {alert("入力が不正です");return;}var query = new Query();query.addElement("action", "confirm");query.addElement("email", $F(form.email));query.addElement("password", $F(form.password));query.addElement("birth", $F(form.date_Year) + "-" + $F(form.date_Month) + "-" + $F(form.date_Day));ajax_post(query, "register");},commit : function (form) {if (!form) {form = document.register_confirm;}var query = new Query();query.addElement("action", "commit");query.addElement("email", $F(form.email));query.addElement("password", $F(form.password));query.addElement("birth", $F(form.birth));ajax_post(query, "register");},valid : false,checkForm : function (form) {if (!form) {form = document.register;}var email = form.email;var email2 = form.email2;var password = form.password;var password2 = form.password2;if (checkEmailAddress($F(email))) {email.style.backgroundColor = "#ffffff";this.valid = true;} else {email.style.backgroundColor = "#ffcccc";this.valid = false;}if (checkEmailAddress($F(email2)) && $F(email) == $F(email2)) {email2.style.backgroundColor = "#ffffff";this.valid = true;} else {email2.style.backgroundColor = "#ffcccc";this.valid = false;}if ($F(password).length >= 6 && $F(password).length <= 12) {password.style.backgroundColor = "#ffffff";this.valid = true;} else {password.style.backgroundColor = "#ffcccc";this.valid = false;}if (($F(password2).length >= 6 && $F(password2).length <= 12) && $F(password) == $F(password2)) {password2.style.backgroundColor = "#ffffff";this.valid = true;} else {password2.style.backgroundColor = "#ffcccc";this.valid = false;}}};var User = {valid : false,onLoad : function () {this.checkForm();},confirm : function (form) {if (!form) {form = document.user;}if (!this.valid) {alert("入力が不正です");return;}var query = new Query();query.addElement("action", "confirm");query.addElement("email", $F(form.email));query.addElement("password", $F(form.password));query.addElement("birth", $F(form.date_Year) + "-" + $F(form.date_Month) + "-" + $F(form.date_Day));ajax_post(query, "user");},commit : function (form) {if (!form) {form = document.user_confirm;}var query = new Query();query.addElement("action", "commit");if (form.email) {query.addElement("email", $F(form.email));}if (form.password) {query.addElement("password", $F(form.password));}if (form.birth) {query.addElement("birth", $F(form.birth));}ajax_post(query, "user");},unregister : function (form) {if (!form) {form = document.user;}if (confirm($F(form.email) + "さんのデータをすべて削除します。よろしいですか？（この操作は取り消しできません）")) {var query = new Query();query.addElement("action", "unregister");ajax_post(query, "user");}},checkForm : function (form) {if (!form) {form = document.user;}var email = form.email;var password = form.password;var password2 = form.password2;if (checkEmailAddress($F(email))) {email.style.backgroundColor = "#ffffff";this.valid = true;} else {email.style.backgroundColor = "#ffcccc";this.valid = false;}if ($F(password).length == 0 || ($F(password).length >= 6 && $F(password).length <= 12)) {password.style.backgroundColor = "#ffffff";this.valid = true;} else {password.style.backgroundColor = "#ffcccc";this.valid = false;}if (($F(password2).length == 0 || ($F(password2).length >= 6 && $F(password2).length <= 12)) && $F(password) == $F(password2)) {password2.style.backgroundColor = "#ffffff";this.valid = true;} else {password2.style.backgroundColor = "#ffcccc";this.valid = false;}}};var Password = {onLoad : function () {this.checkForm();},send : function (form) {if (!form) {form = document.password;}if (!this.valid) {alert("入力が不正です");return;}var query = new Query();query.addElement("action", "send");query.addElement("email", $F(form.email));query.addElement("birth", $F(form.date_Year) + "-" + $F(form.date_Month) + "-" + $F(form.date_Day));ajax_post(query, "password");},valid : false,checkForm : function (form) {if (!form) {form = document.password;}var email = form.email;if (checkEmailAddress($F(email))) {email.style.backgroundColor = "#ffffff";this.valid = true;} else {email.style.backgroundColor = "#ffcccc";this.valid = false;}}};var Login = {valid : false,onLoad : function () {this.checkForm();},login : function () {return this.valid;},checkForm : function (event, form) {if (!form) {form = document.login;}var email = form.email;var password = form.password;if (checkEmailAddress($F(email))) {email.style.backgroundColor = "#ffffff";this.valid = true;} else {email.style.backgroundColor = "#ffcccc";this.valid = false;}if (($F(password).length >= 6 && $F(password).length <= 12)) {password.style.backgroundColor = "#ffffff";this.valid = true;} else {password.style.backgroundColor = "#ffcccc";this.valid = false;}if (event) {if (this.valid && event.keyCode == 13) {form.submit();}}}};var Color = {colors : ["ff","dd","bb","99"],defaultColor : "#cccccc",selectColor : "#000000",overColor : "#666666",selected : "",mouseOver : function (color) {$(color).style.borderColor = this.overColor;},mouseOut : function (color) {if (color == this.selected) {$(color).style.borderColor = this.selectColor;} else {$(color).style.borderColor = this.defaultColor;}},select : function (color) {var r,g,b;for (r = 0; r < 4; r++) {for (g = 0; g < 4; g++) {for (b = 0; b < 4; b++) {var c = "#" + this.colors[r] + this.colors[g] + this.colors[b];$(c).style.borderColor = this.defaultColor;}}}if ($(color) == null) {this.selected = null;} else {$(color).style.borderColor = this.selectColor;this.selected = color;}}};function Query(autoEncode){this.encode = (autoEncode) ? autoEncode : true;this.str = "";};Query.prototype = {addElement : function (key, value) {if (this.str.length > 0) {this.str += "&";}if (this.encode) {this.str += encodeURIComponent(key) + "=" + encodeURIComponent(value);} else {this.str += key + "=" + value;}},addElements : function (keys, values) {for (var idx = 0; idx < keys.length; idx++) {this.addElement(keys[idx], values[idx]);}},toString : function () {return this.str;}};function onLoad(mode) {if (!mode) {mode = 'main';}var _name = mode.charAt(0).toUpperCase() + mode.substring(1, mode.length);try {eval("var val = " + _name);} catch (e) {}if (val && val.onLoad) {val.onLoad();}ajax_post("", mode);};function onBeforeUnload(mode) {if (!mode) {mode = 'main';}var _name = mode.charAt(0).toUpperCase() + mode.substring(1, mode.length);try {eval("var val = " + _name);} catch (e) {}if (val && val.onBeforeUnload) {val.onBeforeUnload();}};function gotoTop() {location.href = "index.php";};function ajax_post(obj, mode, async) {var params = obj.toString();if (!mode) {mode = 'main';}if (async != null && async == false) {var para = {asynchronous : true,method : 'post',parameters : params,onComplete : ajax_callback};} else {if (params.length > 0) {var para = {method : 'post',parameters : params,onSuccess : ajax_callback};} else {var para = {method : 'post',onSuccess : ajax_callback};}}var req = new Ajax.Request('ajax.php?mode=' + mode, para);};function ajax_callback(req, json){if (req.responseText.length > 0) {eval("var json=" + req.responseText);if (json) {var func = null;for (var idx in json) {var item = json[idx];var content = (item.encode || item.type == "html" || item.type == "options") ? decodeURIComponent(item.content) : item.content;if (item.name == "alert") {alert(content);continue;}if ($(item.name) != null) {var element = $(item.name);} else {eval("var element =" + item.name);}if (!element) {continue;}switch (item.type) {case "text" :case "html" :element.innerHTML = content;break;case "select" :for (var op in element) {if (op.value == content) {op.selected = true;} else {op.selected = false;}}break;case "value" :element.value = content;break;case "options" :eval("var _options =" + content);if (_options) {element.length = 0;for (var idx in _options) {element.options[idx] = new Option;element.options[idx].text = _options[idx].text;element.options[idx].value = _options[idx].value;}}break;case "function" :func = element;break;case "display" :element.style.display = content;default :break;}}if (func) {func();}} else {}}};var Log = {append : function (msg) {if (document.debug) {document.debug.log.value += "\n" + msg;}},display : function (msg) {if (document.debug) {document.debug.log.value = msg;}},clear : function () {if (document.debug) {document.debug.log.value = "";}}};