/**
 * www.talesweb.com JavaScript 
 * talesweb.ex.js
 */ 
if (typeof(Talesweb) == 'undefined') {
 Talesweb = {};
}

Talesweb.UserMessage = {
	open: function () {
		$('UserMessageT0').innerHTML = $('UserMessage').innerHTML;
		$('UserMessage').innerHTML = $('UserMessageT1').innerHTML;
	},
	err: function () {
		$('UserMessage').innerHTML = $('UserMessageT0').innerHTML;
	},
	errMsg: 'メッセージ送信に失敗しました',
	success: function () {
		$('UserMessage').innerHTML = $('UserMessageT2').innerHTML;
	},
	post: function () {
		var form = $('formPostUserMessage');
		if (!form.message.value.length) {
			alert('メッセージが選択されていません');
			return;
		}
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					_my.err();
					alert(_my.errMsg);
					return;
				} else if (json.code > 0) {
					_my.err();
					alert(json.errMsg);
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				_my.err();
				alert(_my.errMsg);
				return;
			}
		});
	},
	name: 'UserMssage'
};

Talesweb.ProfilePublic = {
	lock : false,
	err: function () {
		alert('プロフィール設定に失敗しました');
		this.lock = false;
	},
	success: function () {
		$('ProfilePublicFixEnable').value = ($F('ProfilePublicFixEnable')==1) ? '0' : '1';
		alert('設定しました');
		this.lock = false;
	},
	mod: function (no) {
		if (!(this.lock = !this.lock)) {	// ロック処理
			return;
		}
		
		var form = $('formProfilePublic');
		var fe_chk = $('formProfilePublicRadio' + String(no));
		var fe_nul = $('formProfilePublicRadio' + ((no == 1) ? '2' : '1'));
		
		if ($F('ProfilePublicFixEnable') == fe_chk.value) {
			this.lock = false;
			return;
		}
		fe_chk.checked = true;
		
		var strChangeStatus = (Number(fe_chk.value)) ? '公開' : '非公開';
		if (!confirm('プロフィールを' + strChangeStatus + '設定に変更しますか？')) {
			fe_nul.checked = true;
			this.lock = false;
			return;
		}
		
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					fe_nul.checked = true;
					_my.err();
					return;
				} else if (json.code > 0) {
					fe_nul.checked = true;
					alert(json.errMsg);
					_my.err();
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				fe_nul.checked = true;
				_my.err();
				return;
			}
		});
	},
	name: 'ProfilePublic'
};

Talesweb.ProfileFavTalesof = {
	err: function () {
		this.mod_flg = 0;
		alert('好きな「テイルズ オブ」の設定に失敗しました');
	},
	success: function (v) {
		this.mod_flg = 0;
		alert('好きな「テイルズ オブ」を設定しました');
	},
	mod: function () {
		var form = $('formProfileFavTalesof');
		var _ct = 0;
		$A(form['talesof[]']).each(function (obj) {
			if (obj.checked) {
				_ct ++;
			}
		});
		if (!confirm('好きな「テイルズ オブ」を設定します。よろしいですか？')) {
			return;
		}
		if (this.mod_flg == 0) {
//			alert('内容が更新されていません');
//			return;
		}
		
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					_my.err();
					return;
				} else if (json.code > 0) {
					_my.mod_flg = 0;
					alert(json.errMsg);
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				_my.err();
				return;
			}
		});
	},
	
	name: 'ProfileFavTalesof'
};

Talesweb.ProfilePlayTalesof = {
	mod_flg: 0,
	err: function () {
		this.mod_flg = 0;
		alert('プレイ済み「テイルズ オブ」の設定に失敗しました');
	},
	success: function (v) {
		this.mod_flg = 0;
		alert('プレイ済み「テイルズ オブ」を設定しました');
	},
	mod: function () {
		var form = $('formProfilePlayTalesof');
		if (!confirm('プレイ済み「テイルズ オブ」を設定します。よろしいですか？')) {
			return;
		}
		if (this.mod_flg == 0) {
//			alert('内容が更新されていません');
//			return;
		}
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					_my.err();
					return;
				} else if (json.code > 0) {
					alert(json.errMsg);
					_my.mod_flg = 0;
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				_my.err();
				return;
			}
		});
	},
	
	name: 'ProfilePlayTalesof'
};

Talesweb.FavKaodra = {
	success: function () {
		$('FavKaodra').innerHTML = $('FavKaodraT1').innerHTML;
	},
	add: function () {
		var form = $('formAddFavKaodra');
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					alert('お気に入りカオドラ登録に失敗しました');
					return;
				} else if (json.code > 0) {
					alert(json.errMsg);
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				alert('お気に入りカオドラ登録に失敗しました');
				return;
			}
		});
	},
	name: 'FavKaodra'
};

Talesweb.FavKaodraPublic = {
	lock : false,
	err: function () {
		alert('お気に入りカオドラ設定に失敗しました');
		this.lock = false;
	},
	success: function () {
		$('FavKaodraPublicFixEnable').value = ($F('FavKaodraPublicFixEnable')==1) ? '0' : '1';
		alert('設定しました');
		this.lock = false;
	},
	mod: function (no) {
		if (!(this.lock = !this.lock)) {	// ロック処理
			return;
		}
		
		var form = $('formFavKaodraPublic');
		var fe_chk = $('formFavKaodraPublicRadio' + String(no));
		var fe_nul = $('formFavKaodraPublicRadio' + ((no == 1) ? '2' : '1'));
		
		if ($F('FavKaodraPublicFixEnable') == fe_chk.value) {
			this.lock = false;
			return;
		}
		fe_chk.checked = true;
		
		var strChangeStatus = (Number(fe_chk.value)) ? '公開' : '非公開';
		if (!confirm('お気に入りカオドラを' + strChangeStatus + '設定に変更しますか？')) {
			fe_nul.checked = true;
			this.lock = false;
			return;
		}
		
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					fe_nul.checked = true;
					_my.err();
					return;
				} else if (json.code > 0) {
					fe_nul.checked = true;
					alert(json.errMsg);
					_my.err();
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				fe_nul.checked = true;
				_my.err();
				return;
			}
		});
		
	},
	name: 'FavKaodraPublic'
};


Talesweb.FavKaodraEdit = {
	readList: function (url) {
		var nowload = true;
		new Ajax.Updater($('FavKaodraEdit'), url, {
			onLoading: function () {
				if (nowload) {
					//$('FavKaodraEdit').innerHTML = $('FavKaodraEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
			},
			onFailure: function () {
				$('FavKaodraEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	modLine: function (url, id) {
		var form = $('formFavKaodraEditR' + String(id));
		var nowload = true;
		if (!confirm('リストから削除してもよろしいですか？')) {
			return;
		}
		new Ajax.Updater($('FavKaodraEdit'), url, {
			parameters: Form.serialize(form),
			onLoading: function () {
				if (nowload) {
					//$('FavKaodraEdit').innerHTML = $('FavKaodraEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
			},
			onFailure: function () {
				$('FavKaodraEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	name: 'FavKaodraEdit'
};


Talesweb.FavUser = {
	success: function () {
		$('FavUser').innerHTML = $('FavUserT1').innerHTML;
	},
	add: function () {
		var form = $('formAddFavUser');
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					alert('お気に入りユーザー登録に失敗しました');
					return;
				} else if (json.code > 0) {
					alert(json.errMsg);
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				alert('お気に入りユーザー登録に失敗しました');
				return;
			}
		});
	},
	name: 'FavUser'
};

Talesweb.FavUserPublic = {
	lock : false,
	err: function () {
		alert('お気に入りユーザー設定に失敗しました');
		this.lock = false;
	},
	success: function () {
		$('FavUserPublicFixEnable').value = ($F('FavUserPublicFixEnable')==1) ? '0' : '1';
		alert('設定しました');
		this.lock = false;
	},
	mod: function (no) {
		if (!(this.lock = !this.lock)) {	// ロック処理
			return;
		}
		
		var form = $('formFavUserPublic');
		var fe_chk = $('formFavUserPublicRadio' + String(no));
		var fe_nul = $('formFavUserPublicRadio' + ((no == 1) ? '2' : '1'));
		
		if ($F('FavUserPublicFixEnable') == fe_chk.value) {
			this.lock = false;
			return;
		}
		fe_chk.checked = true;
		
		var strChangeStatus = (Number(fe_chk.value)) ? '公開' : '非公開';
		if (!confirm('お気に入りユーザーを' + strChangeStatus + '設定に変更しますか？')) {
			fe_nul.checked = true;
			this.lock = false;
			return;
		}
		
		var _my = this;
		new Ajax.Request(form.action, {
			method: 'post', parameters: Form.serialize(form),
			onComplete: function (res) {
				var json = res.responseJSON;
				if (!json) {
					fe_nul.checked = true;
					_my.err();
					return;
				} else if (json.code > 0) {
					fe_nul.checked = true;
					alert(json.errMsg);
					return;
				} else {
					_my.success();
				}
			},
			onFailure: function () {
				fe_nul.checked = true;
				_my.err();
				return;
			}
		});
	},
	
	name: 'FavUserPublic'
};

Talesweb.FavUserEdit = {
	readList: function (url) {
		var nowload = true;
		new Ajax.Updater($('FavUserEdit'), url, {
			onLoading: function () {
				if (nowload) {
					//$('FavUserEdit').innerHTML = $('FavUserEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
			},
			onFailure: function () {
				$('FavUserEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	modLine: function (url, id) {
		var form = $('formFavUserEditR' + String(id));
		var nowload = true;
		if (!confirm('リストから削除してもよろしいですか？')) {
			return;
		}
		new Ajax.Updater($('FavUserEdit'), url, {
			parameters: Form.serialize(form),
			onLoading: function () {
				if (nowload) {
					//$('FavUserEdit').innerHTML = $('FavUserEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
			},
			onFailure: function () {
				$('FavUserEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	name: 'FavUserEdit'
};

Talesweb.MyKaodraEdit = {
	readList: function (url) {
		var nowload = true;
		new Ajax.Updater($('MyKaodraEdit'), url, {
			onLoading: function () {
				if (nowload) {
					//$('MyKaodraEdit').innerHTML = $('MyKaodraEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
			},
			onFailure: function () {
				$('MyKaodraEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	updList: function (id) {
		var form = $('formMyKaodraEdit' + String(id));
		var nowload = true;
		new Ajax.Updater($('MyKaodraEdit'), form.action, {
			parameters: Form.serialize(form),
			onLoading: function () {
				if (nowload) {
					//$('MyKaodraEdit').innerHTML = $('MyKaodraEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
			},
			onFailure: function () {
				$('MyKaodraEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	delLine: function (id) {
		var form = $('formMyKaodraEditDel' + String(id));
		var nowload = true;
		
		var msg ="このカオドラを削除しますがよろしいですか？\n\n"
		 	+ "一度削除されたカオドラを再度公開することはできませんのでご注意ください。";
		if (!confirm(msg)) {
			return;
		}
		
		new Ajax.Updater($('MyKaodraEdit'), form.action, {
			parameters: Form.serialize(form),
			onLoading: function () {
				if (nowload) {
					//$('MyKaodraEdit').innerHTML = $('MyKaodraEditL').innerHTML;
				}
			},
			onComplete: function () {
				nowload = false;
				alert("削除しました");
			},
			onFailure: function () {
				$('MyKaodraEdit').hide();
				alert('ロードに失敗しました');
			}
		});
	},
	name: 'MyKaodraEdit'
};

Talesweb.MyKaodraTagEdit = {
	mod_flg : {},
	addBuff: function (id) {
		var form = $('formMyKaodraTagEdit' + String(id));
		var sel_val = $('MyKaodraTagEditTagList' + String(id)).value;
		for (var i=0; i<5; i++) {
			var form_e = form['MyKaodraTagEditTagBuff[' + i + ']']
			var e = $('MyKaodraTagEditTagBuff[' + i + ']' + String(id));
			if (e.innerHTML == sel_val) {
				alert('そのタグは既に設定されています');
				break;
			}
			if (!e.innerHTML.length) {
				form_e.value = e.innerHTML = sel_val;
				this.mod_flg[id] = 1;
				break;
			}
			if (i==4) {
				alert('タグは5つまでです');
			}
		}
	},
	delBuff: function (id, tid) {
		var form = $('formMyKaodraTagEdit' + String(id));
		for (var i=tid; i<5; i++) {
			var form_e = form['MyKaodraTagEditTagBuff[' + i + ']'];
			var t_e = $('MyKaodraTagEditTagBuff[' + i + ']' + String(id));
			var f_e = $('MyKaodraTagEditTagBuff[' + (i+1) + ']' + String(id));
			form_e.value = t_e.innerHTML = '';
			if (f_e && f_e.innerHTML.length) {
				form_e.value = t_e.innerHTML = f_e.innerHTML;
			}
			this.mod_flg[id] = 1;
		}
	},
	closeForm: function (id) {
		var _div = $('MyKaodraTagEdit' + String(id));
		var _btm = $('MyKaodraTagEditOpen' + String(id));
		if (this.mod_flg[id]) {
			if (!confirm("タグ設定内容が変更されています。\n更新せずに編集を終了してもよろしいですか？")) {
				return;
			}
		}
		
		_div.hide();
		_btm.show();
	},
	readForm: function (id) {
		var form = $('formMyKaodraTagEditOpen' + String(id));
		var _div = $('MyKaodraTagEdit' + String(id));
		var _btm = $('MyKaodraTagEditOpen' + String(id));
		
		if (!_div) {
			var tag = '<div class="userTbOpen" id="' + 'MyKaodraTagEdit' + String(id) + '"></div>';
			new Insertion.After('MyKaodraEditR' + String(id), tag);
			_div = $('MyKaodraTagEdit' + String(id));
		}
		
		
		_btm.hide();
		_div.hide();
		
		var nowload = true;
		new Ajax.Updater(_div, form.action, {
			parameters: Form.serialize(form),
			onLoading: function () {
				if (nowload) {
					//_div.innerHTML = 'ロード中';
				}
			},
			onComplete: function () {
				nowload = false;
				_div.show();
			},
			onFailure: function () {
				_div.hide();
				_btm.show();
				alert('ロードに失敗しました');
			}
		});
	},
	updForm: function (id) {
		var form = $('formMyKaodraTagEdit' + String(id));
		var _div = $('MyKaodraTagEdit' + String(id));
		
		if (!this.mod_flg[id]) {
			alert('タグの設定内容が変更されてません');
			return;
		}
		if (!confirm('このタグ設定で更新しますか？')) {
			return;
		}
		
		var _my = this;
		var nowload = true;
		new Ajax.Updater(_div, form.action, {
			parameters: Form.serialize(form),
			onLoading: function () {
				if (nowload) {
					//_div.innerHTML = 'ロード中';
				}
			},
			onComplete: function () {
				nowload = false;
				_my.mod_flg[id] = 0;
				
				alert('タグ設定を更新しました');
				if (confirm('タグ編集を終了しますか？')) {
					_my.closeForm(id);
				}
			},
			onFailure: function () {
				_div.hide();
				alert('ロードに失敗しました');
			}
		});
	},
	name: 'TagEdit'
};

