// ----------------------------------------------------------------- ごみ箱関係

function moveTrash(articleId, pageNumber, tabType, deleteFlag) {
	var userId = $('#uid').val();

	$.alerts.okButton     = 'は　い';
	$.alerts.cancelButton = 'いいえ';
	$.alerts.dialogClass  = 'mystyle';

	var confirmTitle = 'このページを元に戻しますか？';
	if (deleteFlag == 1) {
		confirmTitle = 'このページをごみ箱に移しますか？';
	}

	jConfirm(confirmTitle, '', function(r) {
		if (r == true) {
			$.post("post_trash.php", {"aid" : articleId, "delete_flg" : deleteFlag}, function(data) {

				if (data == 'success') {

					setList(pageNumber, tabType, '');
					if (deleteFlag == 1) {
	 					jAlert("このページをごみ箱へ移しました。", '');
					} else {
						jAlert("このページを元に戻しました。", "");
					}
				} else {
					jAlert('予期せぬエラーが発生しました。もう一度直前の操作をやり直してください。\n' + data, '');
				}
			});
		}
	});
}


/**
 * コメント一覧を表示します。
 *
 * @param articleId
 * @return
 */
function displayComments(articleId) {

	var userId = $('#uid').val();

//	alert("user_id : " + userId);

	$.post("../" + userId + "/object_comment.php", {"aid" : articleId}, function(data) {

		$("#comment_area").html(data);
	});
}

/**
 * コメントを投稿します。
 *
 * @return コメント一覧を出力します。
 */
function registerComment() {

	var userId     = $('#uid').val();
	var articleId  = $('#aid').val();
	var title      = $('#title').val();
	var cmt        = $('#cmt').val();
	var key        = $('#key').val();

//	alert("uid = " + blogUserId);
//	return;

    var value = $('#blog_comment #input textarea').val();
    if (value == null || value == '') {
        $('#blog_comment #input .message').html('<font color="red">コメントを入力してください</font>');
    } else {
        $.alerts.okButton = 'は　い';
        $.alerts.cancelButton = 'いいえ';
        $.alerts.dialogClass = 'mystyle';
        jConfirm('コメントを投稿しますか？', '', function(r)
        {
            if (r == true) {
            	setLoading("loading_comment");
            	$.post("../" + userId + "/post_comment.php", {"aid" : articleId, "title" : title, "cmt" : cmt, "key" : key}, function(data) {

//            		alert(data);

					if (data == 'success') {
						displayComments(articleId);
					} else {
						jAlert('予期せぬエラーが発生しました。もう一度直前の操作をやり直してください。\n' + data, '');
					}


//    				$("#comment_area").html(data);
//    				$('#title').val('');
//    				$('#cmt').val('');
//    				endLoading("loading_comment");
            	});
            }
        });
    }
}

 _seqMap = new Array();

 /**
  * コメントを削除します。
  *
  * @return
  */
 function deleteComments() {

 	articleId = $('#aid').val();

// 	var seqs = "";
// 	count = 0;
// 	$('input[@name=seq]:checked').each(function() {
//        if (this.checked)
//        {
//     	   if (count == 0) {
//         	   seqs += "seq[]=" + this.value;
 //
//     	   } else {
//         	   seqs += "&seq[]=" + this.value;
//     	   }
//     	   count++;
//        }
// 	});

 	var seqs = "";
 	count = 0;
     for (var key in _seqMap) {

 		isChecked = _seqMap[key];

// 		alert("key : " + key + " checked : " + isChecked);

 		if (isChecked) {

 			values = key.split(":");

 			seq = values[1];

 			if (count == 0) {
 				seqs += "seq[]=" + seq;

 			} else {
 				seqs += "&seq[]=" + seq;
 			}
 			count++;
 		}
 	}

     if (count == 0) {
     	jAlert('削除するコメントを1つ以上選んでください。', '');
     	return;
     }

// 	alert(seqs);

     $.alerts.okButton     = 'は　い';
     $.alerts.cancelButton = 'いいえ';
     $.alerts.dialogClass  = 'mystyle';

 	var userId     = $('#uid').val();

     jConfirm('チェックしたコメントを削除しますか？', '', function(r)
     {
         if (r == true) {
         	$.post("../" + userId + "/post_delete.php?" + seqs, {"aid" : articleId}, function(data) {

         		if (data == 'success') {
					displayComments(articleId);
         		}
// 				$("#comment_area").html(data);
 				 _seqMap = new Array();
         	});
         }
     });
}

/**
 * 読者を追加します。
 *
 * @return
 */
function registerMyFriend(handleName) {

    $.alerts.okButton = 'は　い';
    $.alerts.cancelButton = 'いいえ';
    $.alerts.dialogClass = 'mystyle';
    jConfirm(handleName + 'さんの読者になりますか？', '', function(r)
    {
        if (r == true) {
        	$.post("./post_myfriend.php", {"type" : "insert"}, function(data) {

        		if (data == 'success') {
        			displayReader();
        			jAlert('あなたを' + handleName + 'さんの読者に登録しました。', '');
        		} else if (data == 'no_login') {
        			jConfirm('読者になるにはログインが必要です。ログインしますか？', '', function(r) {
        				if (r == true) {
        	       			location.href = "../login.php?redirect_url=" + location.href;
        				}
        			});

        		} else if (data == 'reader') {
        			jAlert('あなたは既に読者に登録されています。', '');

        		} else if (data == 'writer_deny') {
        			jAlert('あなたは' + handleName + 'さんから読者登録を拒否されています。', '');

        		} else {
        			jAlert('予期せぬエラーが発生しました。もう一度直前の操作をやり直してください。\n' + data, '');
        		}
        	});
        }
    });
}


 /**
  * 読者を追加します。
  *
  * @return
  */
 function deleteMyFriend(handleName, writerId) {

     $.alerts.okButton = 'は　い';
     $.alerts.cancelButton = 'いいえ';
     $.alerts.dialogClass = 'mystyle';
     jConfirm(handleName + 'さんをお気に入りの作者から削除しますか？', '', function(r)
     {
         if (r == true) {
         	$.post("./post_myfriend.php", {"type" : "delete", "writer_id" : writerId}, function(data) {

         		if (data == 'success') {
         			displayReader();
        			jAlert(handleName + 'さんをお気に入りの作者から削除しました。', '');
         		} else {
        			jAlert('予期せぬエラーが発生しました。もう一度直前の操作をやり直してください。\n' + data, '');
         		}
         	});
         }
     });
 }

/**
 * 読者を拒否する
 *
 * @param handleName
 * @param writerId
 * @return
 */
function denyReader(handleName, readerId) {

      $.alerts.okButton = 'は　い';
      $.alerts.cancelButton = 'いいえ';
      $.alerts.dialogClass = 'mystyle';
      jConfirm(handleName + 'さんの読者登録を拒否しますか？拒否された読者は、あなたをお気に入りの作者に登録できなくなります。本当に拒否しますか？', '', function(r)
      {
          if (r == true) {
          	$.post("./post_myfriend.php", {"type" : "deny", "reader_id" : readerId}, function(data) {

          		if (data == 'success') {
          			displayReader();
         			jAlert(handleName + 'さんの読者登録を拒否しました。', '');
          		} else {
         			jAlert('予期せぬエラーが発生しました。もう一度直前の操作をやり直してください。\n' + data, '');
          		}
          	});
          }
      });
}

function saveValue(obj) {

	isChecked = obj.checked;
	seqName  = obj.name;
	seqValue = obj.value;

//	alert("name : " + seqName + " value : " + seqValue + " checked : " + isChecked);

	_seqMap[seqName + ":" + seqValue] = isChecked;
}

/**
 * 備考を更新します。
 *
 * @param articleId
 * @param initFlag
 * @return
 */
function updateBody(articleId, initFlag) {

	var myEdit = document.getElementById("myEdit").value;
//	var myEdit = getBody();

    $.alerts.okButton     = 'は　い';
    $.alerts.cancelButton = 'いいえ';
    $.alerts.dialogClass  = 'mystyle';

    var message = "この備考を更新しますか？";
    var title   = "";

    if (initFlag == '1') {
        message = "この備考を削除しますか？";
        title   = "";
    }

 	var userId     = $('#uid').val();

    jConfirm(message, title, function(r)
    {
        if (r == true) {

            if (initFlag == '1') {
            	myEdit.value = '';
            }
        	setLoading("preview_note");

        	$.post("../" + userId + "/post_note.php", {"aid" : articleId, "body" : myEdit, "init_flag" : initFlag}, function(data) {

//                if (initFlag != '1') {
//                	data = '<p class="blog-com-print">' + data + '</p>';
//                }

				$("#article_note").html(data);
//				$("#myEdit").val('');
        	});
        }
    });
}

 /**
  * コメントフラグを更新します。
  *
  * @param articleId
  * @param initFlag
  * @return
  */
 function updateNoCommentFlag(aid) {

     $.alerts.okButton     = 'は　い';
     $.alerts.cancelButton = 'いいえ';
     $.alerts.dialogClass  = 'mystyle';

     message = "コメントを解除しますか？";

     jConfirm(message, '', function(r)
     {
         if (r == true) {

         	setLoading("paid_message");
         	$.post("./post_comment_flag.php", {"aid" : aid}, function(data) {

         		if (data == 'success') {
        			jAlert('コメントの解除に成功しました。', '');
        			document.location.href = location.href;
         		} else {
        			jAlert('予期せぬエラーが発生しました。' + data, '');
         		}
         	});
         }
     });
 }

/**
 * 記事の公開／非公開を更新します。
 *
 * @param userCode
 * @param articleId
 * @param obj
 * @return
 */
function updatePublicFlag(userCode, articleId, obj) {

    $.alerts.okButton     = 'は　い';
    $.alerts.cancelButton = 'いいえ';
    $.alerts.dialogClass  = 'mystyle';

    isPublicFlag = obj.checked;

    publicFlag = "1";
    message = "この記事を公開しますか？";
    if (! isPublicFlag) {
        message = "この記事を非公開にしますか？";
        publicFlag = "0";
    }

    jConfirm(message, '', function(r)
    {
        if (r == true) {

        	var today = new Date();

        	$.ajax({
        	    url: './pubrate.php?aid=' + articleId + '&public_flag=' + publicFlag + '&timestamp=' + today.getTime(),
        	    type: 'GET',
        	    dataType: 'text',
        	    timeout: 10000,
        	    error: function(){
        			jAlert('登録に失敗しました。直前の操作をやり直してください。', '');
        	    },
        	    success: function(data){

        	    	if (data == 'success') {

            	    	if (isPublicFlag) {
            	    		jAlert('この記事を公開しました。', '');
            	    	} else {
            	    		jAlert('この記事を非公開にしました。', '');
            	    	}
        	    	} else {
        	        	if (isPublicFlag) {
        	        		obj.checked = false;
        	        	} else {
        	        		obj.checked = true;
        	        	}
        	    		jAlert('登録に失敗しました。直前の操作をやり直してください。\n' + data, '');
        	    	}

        	    }
        	});
        } else {
        	if (isPublicFlag) {
        		obj.checked = false;
        	} else {
        		obj.checked = true;
        	}
        }
    });
}

function updateCommentOpenFlag(articleId, commentArticleId, seq, obj) {

    $.alerts.okButton     = 'は　い';
    $.alerts.cancelButton = 'いいえ';
    $.alerts.dialogClass  = 'mystyle';

    isOpenFlag = obj.checked;

    deleteFlag = "0";
    message = "このコメントを公開しますか？";
    if (! isOpenFlag) {
        message = "このコメントを非公開にしますか？";
        deleteFlag = "1";
    }

    jConfirm(message, '', function(r)
    {
        if (r == true) {

        	var today = new Date();

        	$.ajax({
        	    url: './delplay.php?aid=' + articleId + '&caid=' + commentArticleId + '&seq=' +seq + '&delete_flg=' + deleteFlag + '&timestamp=' + today.getTime(),
        	    type: 'GET',
        	    dataType: 'text',
        	    timeout: 10000,
        	    error: function(){
        			jAlert('登録に失敗しました。直前の操作をやり直してください。', '');
        	    },
        	    success: function(data){

        	    	if (data == 'success') {

            	    	if (isOpenFlag) {
            	    		jAlert('このコメントを公開しました。', '');
            	    	} else {
            	    		jAlert('このコメントを非公開にしました。', '');
            	    	}
        	    	} else {
        	        	if (isOpenFlag) {
        	        		obj.checked = false;
        	        	} else {
        	        		obj.checked = true;
        	        	}
        	    		jAlert('登録に失敗しました。直前の操作をやり直してください。\r\n' + data, '');
        	    	}
        	    }
        	});
        } else {
        	if (isOpenFlag) {
        		obj.checked = false;
        	} else {
        		obj.checked = true;
        	}
        }
    });
}

// --------------------------------------------------- Parent Comment Functions

function updateParentArticleId(articleId, opaid) {

	paid = $('#paid').val();
	setLoading("paid_message");
	$.post("./post_number.php", {"aid" : articleId, "opaid" : opaid, "paid" : paid}, function(data) {

		if (data == 'success') {
			endLoading("paid_message");
			jAlert('親記事番号を修正しました。', '');
			document.location.href = location.href;
		} else {
			$("#paid_message").html("<font color='red'>" + data + "</font>");
		}
	});
}

//-------------------------------------------------------------- List Functions

function setList(pageNumber, ttype, keyValue) {


	params = {"p" : pageNumber, "ttype" : ttype};
	if (ttype == 'calendar') {
		params = {"p" : pageNumber, "ttype" : ttype, "date" : keyValue};
	} else if (ttype == 'tag') {
		params = {"p" : pageNumber, "ttype" : ttype, "tid" : keyValue};
	} else if (ttype == 'category') {
		params = {"p" : pageNumber, "ttype" : ttype, "cid" : keyValue};
	}

	$.post("./object_list.php", params, function(data) {

		$("#list_area").html(data);
		setTabType("tab-" + ttype);
	});
}

//---------------------------------------------------- ArticleComment Functions

function setArticleComment(articleId) {

	setLoading("article_comment_area");
	$.post("./object_article_comment.php", {"aid" : articleId}, function(data) {

		$("#article_comment_area").html(data);
	});
}

// ------------------------------------------------------------------- イベント

function postEvent(eventId, articleId, type) {

	$.alerts.okButton     = "は　い";
	$.alerts.cancelButton = "いいえ";
	$.alerts.dialogClass  = "mystyle";

	var message = "この作品を応募しますか？";
	if (type == 'cancel') {
		message = "この作品の応募を取り消しますか？";
	}

	var userAge    = $("#user_age").val();
	var userTitle  = $("#user_title").val();
	var handleName = $("#handle_name").val();

//	alert("age : " + userAge + " title : " + userTitle + " handle_name : " + handleName);
//	return;

	jConfirm(message, '', function(r) {

		if (r == true) {
			$.post("./post_event.php", {"event_id" : eventId, "aid" : articleId, "handle_name" : handleName, "user_age" : userAge, "user_title" : userTitle, "type" : type}, function(data) {

//				alert(data);

        		if (data == 'error') {
        			jAlert("ニックネーム、作品のタイトルは必ず入力してください。", "");
        			return;
        		}

				$("#event_article").html(data);

				var postMessage = "";
				if (type == 'cancel') {
					postMessage = "この作品の応募を取り消しました。";
				} else if (type == 'insert') {
					postMessage = "この作品の応募を受け付けました。";
				}
				jAlert(postMessage, "");

			});
		} else {
			return;
		}
	}
	);
}

// ----------------------------------------------------------------- カレンダー

function linkCalendar(year, month) {

//	alert("year : " + year + " month : " + month + " bid : " + blogUserId);

	$.post("./object_calendar.php", {"year" : year, "month" : month, "blog_page" : "true"}, function(data) {

//		alert(data);
		endLoading("calendar");

		$("#calendar").html(data);
	});
}

// --------------------------------------------------------------- カテゴリタグ

function displayCategoryTags() {

	$.post("./side_category_tags.php", {}, function(data) {
		$("#side_category_tags").html(data);
	});
}

function displayTagList(articleId) {

	$.post("./tag_list.php", {"aid" : articleId}, function(data) {

		$("#article_comment_area").html(data);
	});
}

// -------------------------------------------------------------- Tag Functions

function displayTagList(articleId) {

	$.post("./tag_list.php", {"aid" : articleId}, function(data) {

		$("#article_comment_area").html(data);
	});
}

function setTagList() {

	$.post("./tab_tag.php", {}, function(data) {

		$("#tab_contents").html(data);
//		$("#list").html("");
//		$("#main").html("");
		setTabType("tab-tag");
		$("#article_comment_area").html('');
	});
}

function setCategoryList() {

	$.post("./tab_category.php", {}, function(data) {

		$("#tab_contents").html(data);
		setTabType("tab-category");
		$("#article_comment_area").html('');
	});
}

function setTabType(selectTabName) {


	if (selectTabName == "tab-entry") {
		selectTabName = "tab-new";
	}

	if (selectTabName == "tab-count") {
		selectTabName = "tab-point";
	}

	if (selectTabName == "tab-trash") {
		selectTabName = "tab-gomi";
	}

//	alert("タブ名 : " + selectTabName);

	tabNames = new Array("tab-new", "tab-point", "tab-tag", "tab-category", "tab-gomi");

	for (i = 0; i < tabNames.length; i++) {

		tabName = tabNames[i];

		var tabObj = document.getElementById(tabName);
		if (tabObj == null) {
			continue;
		}

		if (selectTabName == tabName) {
			document.getElementById(tabName).className = tabName + "-s";
		} else {
			document.getElementById(tabName).className = tabName;
		}
	}
}

function refreshCategoryTags(articleId) {

	$.post("./object_category_tags.php", {"aid" : articleId}, function(data) {
		$("#category_tags").html(data);
	});
}

function insertTagName(articleId, tagName) {

	if (tagName == null || tagName == '') {
		jAlert("タグ名を入力してください。", "");
		return;
	}

	setLoading("tag_list");

	$.post("./post_tag.php", {"aid" : articleId, "tname" : tagName}, function(data) {

		$("#tag_list").html(data);
		refreshCategoryTags(articleId);
	});
}

function registerTag(articleId, tagId, tagName, obj) {

    isChecked = obj.checked;

//    setLoading("tag" + tagId);
	$.post("./tag_regist.php", {"aid" : articleId, "tid" : tagId, "checked" : isChecked}, function(data) {

			if (data == 'success') {
				refreshCategoryTags(articleId);
				displayCategoryTags();
				if (isChecked) {
					$("#tag" + tagId).html("<font color='red'>を追加しました。</font>");
				} else {
					$("#tag" + tagId).html("<font color='red'>を削除しました。</font>");
				}

			} else {
		    	if (isChecked) {
		    		obj.checked = false;
		    	} else {
		    		obj.checked = true;
		    	}
				jAlert('登録に失敗しました。直前の操作をやり直してください。\r\n' + data, '');
			}
    	}
    );
}

function registerCategory(articleId, categoryId, obj) {

    isChecked = obj.checked;

//    setLoading("tag" + tagId);
	$.post("./category_regist.php", {"aid" : articleId, "cid" : categoryId, "checked" : isChecked}, function(data) {

			if (data == 'success') {
				refreshCategoryTags(articleId);
				displayCategoryTags();

				for (i = 1; i < 10; i++) {
					$("#category" + "00" + i).html("");
				}
				$("#category" + "999").html("");

				if (isChecked) {
					$("#category" + categoryId).html("<font color='red'>に分類しました。</font>");
				} else {
					$("#category" + categoryId).html("<font color='red'>を削除しました。</font>");
				}

			} else {
		    	if (isChecked) {
		    		obj.checked = false;
		    	} else {
		    		obj.checked = true;
		    	}
				jAlert('登録に失敗しました。直前の操作をやり直してください。\r\n' + data, '');
			}
    	}
    );
}

//function saveProfileValue(obj) {
//
//	name  = obj.name;
//	value = obj.value;
//
////	alert("name=" + name + " value=" + value);
//
//	$.post("./profile.php", {"column_name" : name, "column_value" : value, "type" : "update"}, function(data) {
//
////			alert("ajax response data:" + data + "name:" + name + " value:" + value);
//			if (data == 'success') {
//
//				if ("pref_id" != name) {
//					$("#" + name).text(value);
//				} else {
//					setPrefName(value);
//				}
//
//	//			alert("プロフィールの登録に成功しました。");
//			} else {
//				jAlert('登録に失敗しました。直前の操作をやり直してください。\r\n' + data, 'プロフィールダイアログ');
//			}
//		}
//	);
//}
//
//function setUserInfo(name) {
//
//	$.post("./profile.php", {"column_name" : name, "type" : "select"}, function(value) {
////			alert("name:" + name + " type:select response:" + value);
//
//			if ("handle_name" == name) {
//				$("#handle_name").html("<input type='text' name='handle_name' size='20' value='" + value + "' maxlength='20' onBlur='saveProfileValue(this);'/>");
//
//			} else if ("introduction" == name) {
//				$("#introduction").html("<textarea name='introduction' style='width: 150px; height: 100px;' onBlur='saveProfileValue(this);'>" + value + "</textarea>");
//			}
//		}
//	);
//}
//
//function setPrefName(prefId) {
//
//	$.post("./prefecture.php", {"pref_id" : prefId, "type" : "pref_name"}, function(data) {
//
//			$("#pref_id").html(data);
//		}
//	);
//}