var OtherDiary = {
  add_favorite_user_check: function(member_id, nickname) {
    new Ajax.Request(baseURL + '/diary/add_favorite_user_check/'+member_id,
		     {
		       asynchronous: true,
		       evalScripts: true,
		       onComplete: function(obj) {
			 if(obj.responseText == 'OK') {
			   OtherDiary.add_favorite_user(member_id, nickname);
			 } else {
			   OtherDiary.error_favorite_user(obj.responseText);
			 }
		       }
		     });
  },

  add_favorite_user: function(member_id, nickname) {
    var mess = '<br /><br /><span class="point_text">お気に入り登録</span><br /><br />';
    mess += nickname+'さんを<br />';
    mess += 'お気に入り登録しますか？';
    Dialog.confirm(mess,
		   {
		     className: 'portalpop',
		     id: 'add_favorite_user',
		     width: 411,
		     height: 271,
		     okLabel: '',
		     cancelLabel: '',
		     showEffectOptions: { duration: 0.1 },
		     hideEffectOptions: { duration: 0.1 },
		     cancel: function() {
		       return;
		     },
		     ok: function() {
		       new Ajax.Request(baseURL + '/diary/add_favorite_user/'+member_id,
					{
					  asynchronous: true,
					  evalScripts: true,
					  onComplete: function(obj) {
					    parent.window.Windows.closeAll();
					  }
					});
		     }
		   });
  },

  error_favorite_user: function(error_code) {
    var mess = '<br /><br /><span class="point_text">お気に入り登録</span><br /><br />';
    switch(error_code) {
    case 'NOT_LOGIN':
      mess += '「お気に入り登録」機能は会員限定サービスです。<br />';
      mess += '会員登録してからご利用ください。';
      mess += '(<a href="javascript:parent.window.location.href=\''+baseHTTPS+'/regist\';">新規会員登録</a>)';
      break;
    case 'SELF':
      mess += '自分自身は登録できません。';
      break;
    case 'REGISTED':
      mess += 'すでにお気に入り登録済みです。';
      break;
    default:
      mess += 'このユーザーは退会しました。';
      break;
    }
    Dialog.myalert(mess,
		   {
		     className: 'portalpop',
		     closable: true,
		     width: 411,
		     height: 271,
		     buttonClass: 'close_button'
		   });
  },

  update_calender: function(member_id, year, mon) {
    new Ajax.Updater('portal_calender',
                     baseURL + '/diary/view_calender/'+member_id+'/'+year+'/'+mon,
                     {
                       asynchronous: true,
                       evalScripts: true
                     });
  },

  comment_add_check: function(element, owner_id, date_str) {
    new Ajax.Request(baseURL + '/diary/comment_add_check/'+owner_id+'/'+date_str,
                     {
                       asynchronous: true,
                       evalScripts: true,
                       parameters: Form.serialize(element.form),
                       method: 'post',
                       onComplete: function(obj) {
                         var res = obj.responseText.evalJSON(true);
                         if(res.Status == 'OK') {
                           $('comment_error').style.display = 'none';
                           OtherDiary.comment_add(element, owner_id, date_str);
                         } else {
                           $('comment_error').update(res.Error);
                           $('comment_error').style.display = 'block';
                         }
                       }
                     });
  },

  comment_add: function(element, owner_id, date_str) {
    var mess = '<br /><br /><span class="point_text">コメントの投稿</span><br /><br />';
    mess += 'コメントを投稿します。<br />よろしいですか？';
    Dialog.confirm(mess,
                   {
                     className: 'portalpop',
                     id: 'comment_add',
                     width: 411,
                     height: 271,
                     okLabel: '',
                     cancelLabel: '',
                     showEffectOptions: { duration: 0.1 },
                     hideEffectOptions: { duration: 0.1 },
                     cancel: function() {
                       return;
                     },
		     ok: function() {
                       new Ajax.Request(baseURL + '/diary/comment_add/'+owner_id+'/'+date_str,
                                        {
                                          asynchronous: true,
                                          evalScripts: true,
                                          parameters: Form.serialize(element.form),
                                          method: 'post',
                                          onComplete: function(obj) {
                                            OtherDiary.update_comment_list(owner_id, date_str, 1);
                                          }
                                        });
                     }
                   });
  },

  update_comment_list: function(owner_id, date_str, page) {
    new Ajax.Updater('comment_area',
                     baseURL + '/diary/view_comments/'+owner_id+'/'+date_str+'/'+page+'/1'
,
                     {
                       asynchronous: true,
                       evalScripts: true,
                       onComplete: function() {
                         Windows.closeAll();
                       }
                     });
  },

  update_meal: function(owner_id, date_str) {
    new Ajax.Updater('karute',
                     baseURL + '/diary/update_meal/'+owner_id+'/'+date_str,
                     {
                       asynchronous: true,
                       evalScripts: true
                     });
  },

  update_eiyo: function(owner_id, date_str) {
    new Ajax.Updater('karute',
                     baseURL + '/diary/update_eiyo/'+owner_id+'/'+date_str,
                     {
                       asynchronous: true,
                       evalScripts: true
                     });
  },

  del_favorite_user: function(member_id, nickname) {
    var mess = '<br /><br /><span class="point_text">お気に入り解除</span><br /><br />';
    mess += nickname+'さんを<br />';
    mess += 'お気に入りから解除しますか？';
    Dialog.confirm(mess,
		   {
		     className: 'portalpop',
		     id: 'del_favorite_user',
		     width: 411,
		     height: 271,
		     okLabel: '',
		     cancelLabel: '',
		     showEffectOptions: { duration: 0.1 },
		     hideEffectOptions: { duration: 0.1 },
		     cancel: function() {
		       return;
		     },
		     ok: function() {
		       new Ajax.Request(baseURL + '/diary/del_favorite_user/'+member_id,
					{
					  asynchronous: true,
					  evalScripts: true,
					  onComplete: function(obj) {
					    parent.location.href = parent.location.href;
					  }
					});
		     }
		   });
  },

    click_useful: function(member_id, record_date, nickname) {
	new Ajax.Request(baseURL+'/diary/click_useful/'+member_id+'/'+record_date,
			 {
			     asynchronous: true,
			     evalScripts: true,
			     onComplete: function(obj) {
	                         var res = obj.responseText.evalJSON(true);
				 if(res.result != undefined &&
				    res.result == 'OK') {
				     $('num_useful_users').innerHTML = res.num_user;
				     OtherDiary.click_button_message(res.mess, nickname, '参考になった');
				 } else {
				     if(res.mess != undefined) {
					 OtherDiary.click_button_message(res.mess, nickname, '参考になった');					 
				     }
				 }
			     }
			 });
    },

    click_fight: function(member_id, record_date, nickname) {
	new Ajax.Request(baseURL+'/diary/click_fight/'+member_id+'/'+record_date,
			 {
			     asynchronous: true,
			     evalScripts: true,
			     onComplete: function(obj) {
				 var res = obj.responseText.evalJSON(true);
				 if(res.result != undefined &&
                                    res.result == 'OK') {
                                     $('num_fight_clicks').innerHTML = res.num_click;
                                     OtherDiary.click_button_message(res.mess, nickname, 'がんばって');
                                 } else {
                                     if(res.mess != undefined) {
                                         OtherDiary.click_button_message(res.mess, nickname, 'がんばって');
                                     }
				 }
			     }
			 });
    },

    click_button_message: function(error_code, nickname, title) {
	var mess = '<br /><br /><span class="point_text">'+title+'</span><br /><br />';
	char1 = new Array('”', '’');
	char2 = new Array('"', "'");
	while(nickname.match(/[”’]/)) {
	    for(count = 0; count < char1.length; count ++) {
		nickname = nickname.replace(char1[count], char2[count]);
	    }
	}
	switch(error_code) {
	case 'OK':
	    var mess = '<br /><br /><span class="point_text">受け付けました</span><br /><br />';
	    mess += 'あなたの声を'+nickname+'さんにお届けします！';
	    break;
	case 'NOT_LOGIN':
	    var mess = '<br /><br /><span class="point_text">ごめんなさい！</span><br /><br />';
	    mess += '「'+title+'」機能は会員限定サービスです。<br />';
	    mess += '会員登録してからご利用ください。';
	    mess += '(<a href="javascript:parent.window.location.href=\''+baseHTTPS+'/regist\';">新規会員登録</a>)';
	    break;
	case 'SELF':
	    var mess = '<br /><br /><span class="point_text">ごめんなさい！</span><br /><br />';
	    mess += '自分のボタンは押すことができません。';
	    break;
	case 'REGISTED':
	    var mess = '<br /><br /><span class="point_text">すでに受付済みです</span><br /><br />';
	    mess += '「'+title+'」ボタンは1ダイアリーにつき1回だけ押すことができます。';
	    break;
	default:
	    return;
	    break;
	}
	Dialog.myalert(mess,
		       {
			   className: 'portalpop',
			   closable: true,
			   width: 411,
			   height: 271,
			   buttonClass: 'close_button'
		       });	
    }
}
