/**
 * @copyright 2008 NTT Communications
 * @author    NTT Communications CO.,LTD.
 * @version   $Id$
 * @link      http://photofriend.jp/
*/
/**
 * pfctrl.js
 *
 * 	モーダルダイヤログ制御用JS
 *
 * フォームのID、NAMEが変更となった場合 は本ファイルも併せて編集する必要があります
 *
 */
var ie = false;
var ie6 = false;
var ie7 = false;
var opera = window.opera ? true : false;

// 以下はieバージョン判定用コード
/*@cc_on
  ie = true;
  if (window.XMLHttpRequest) {
    ie7 = true;
  } else {
    ie6 = true;
  }
//alert("ie:" + ie + " ie6:" + ie6 + " ie7:" + ie7);
@*/

//共通ファイルのインクルード
document.write("<script type='text/javascript' src='/js/common.js'></script>");
//モーダルダイヤログ制御ライブラリのインクルード
document.write("<script type='text/javascript' src='/js/prototype-1.6.0.2.js'></script>");
document.write("<script type='text/javascript' src='/js/control.modal.2.2.3.js'></script>");

var privacyInfoCnt = 0;		//公開設定を保持する情報を格納する変数の件数
var privacyInfos = null;	//公開設定を保持する情報を格納する変数

var delPhotoConfInfoCnt = 0;	//写真削除確認用の情報を保持する情報を格納する変数の件数
var delPhotoConfInfos = null;	//写真削除確認用の情報を保持する情報を格納する変数

var favMemberInfoCnt = 0;		//お気に入りメンバを保持する情報を格納する変数の件数
var favMemberInfos = null;		//お気に入りメンバを保持する情報を格納する変数

var adInfoCnt = 0;		//広告設定確認用情報を保持する情報を格納する変数の件数
var adInfos = null;		//広告設定確認用情報を保持する情報を格納する変数

var DLG_TITLE_ID = 'dlg_confirm_title';
var DLG_ERR_ID   = 'dlg_confirm_err';
var DLG_BODY_ID  = 'dlg_confirm_body';

var c_CONF_TYPE_ALBUM = 'ALBUM';
var c_CONF_TYPE_CMMNTY= 'CMNTY';

/**
 * 公開設定を保持するクラス
 *
 */
function privacyInfo()
{
	this.unique_id = 0;				//写真ID or アルバムID
	this.curprivacy = 0;			//公開設定
	this.sel_favgrp_idArray = null;	//選択しているお気に入りグループIDの配列
	this.execFunc = null;			//実行する関数
}

/**
 * 写真削除の確認に使用する情報を保持するクラス
 *
 */
function delPhotoConfInfo()
{
	this.unique_id = 0;				//写真ID
	this.target_Types = null;		//アルバム or コミュニティ 種別の配列
	this.target_ids = null;			//アルバムID or コミュニティIDの配列
	this.targetNames = null;		//アルバム名 or コミュニティ名の配列
	this.post_flgs = null;			//投稿済みか否かの配列
}

/**
 * お気に入りメンバの登録グループを保持するクラス
 *
 */
function pfctrl_ClsfavMemberInfo()
{
	this.unique_id = 0;				//メンバID
	this.sel_favgrp_idArray = null;	//選択しているお気に入りグループIDの配列
}

/**
 * 広告設定の情報を保持するクラス
 *
 */
function pfctrl_ClsAdInfo()
{
	this.unique_id = 0;				//メンバID
	this.sel_ad_idArray = null;	//選択している広告IDの配列
}

/**
 * コントロールの制御に必要な公開設定を追加する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     unique_id			写真ID or アルバムID
 * @param     privacy			公開設定
 * @param     id_str			選択しているお気に入りグループIDの文字列（カンマ区切り）
 * @param     execFunc			実行する関数リスト
 * @return    なし
 */
function pfctrl_AppendPrivacyInfo(unique_id, privacy, id_str, execFunc)
{
	if ( privacyInfos == null ){
		privacyInfos = new Object();
	}
	
	tmp = new privacyInfo();

	tmp.unique_id = unique_id;		//写真ID or アルバムID
	tmp.curprivacy = privacy;		//公開設定
	tmp.sel_favgrp_idArray = id_str.split(',');	//選択しているお気に入りグループIDの配列
	tmp.execFunc = execFunc;		//実行する関数
	
	//unique_idをキーとして連想配列にセット
	privacyInfos[unique_id] = tmp;
	
	//個数をカウントアップ
	privacyInfoCnt++;
}

/**
 * コントロールの制御に必要な公開設定を更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     unique_id			写真ID or アルバムID
 * @param     privacy			公開設定
 * @param     id_str			選択しているお気に入りグループIDの文字列（カンマ区切り）
 * @return    なし
 */
function pfctrl_UpdatePrivacyInfo(unique_id, privacy, id_str)
{
	if ( !cmn_isset(privacyInfos) ){
		return;
	}
	
	pInfo = privacyInfos[unique_id];
	if ( !cmn_isset(pInfo) ){
		return;
	}
	
	pInfo.curprivacy = privacy;		//公開設定
	pInfo.sel_favgrp_idArray = id_str.split(',');	//選択しているお気に入りグループIDの配列
}


function pfctrl_AddDelPhotoConfAlbumInfo(unique_id, target_id, targetName, post_flg)
{
	return pfctrl_AddDelPhotoConfInfo(unique_id, c_CONF_TYPE_ALBUM, target_id, targetName, post_flg);
}

function pfctrl_AddDelPhotoConfCmmntyInfo(unique_id, target_id, targetName, post_flg)
{
	return pfctrl_AddDelPhotoConfInfo(unique_id, c_CONF_TYPE_CMMNTY, target_id, targetName, post_flg);
}

function pfctrl_AddDelPhotoConfInfo(unique_id, targetType, target_id, targetName, post_flg)
{
	if ( delPhotoConfInfos == null ){
		delPhotoConfInfos = new Object();
	}
	
	if ( cmn_isset(delPhotoConfInfos[unique_id]) ){
		tmp = delPhotoConfInfos[unique_id];
	}
	else{
		tmp = new delPhotoConfInfo();
	}

	tmp.unique_id = unique_id;					//写真ID
	if ( !cmn_isset(tmp.target_ids) ){
		tmp.target_Types = new Array();		//アルバム or コミュニティ 種別の配列
		tmp.target_ids  = new Array();			//アルバムID or コミュニティIDの配列
		tmp.targetNames = new Array();			//アルバム名 or コミュニティ名の配列
		tmp.post_flgs   = new Array();			//投稿済みか否かの配列
	}
	
	var key = targetType + target_id;
	
	tmp.target_Types[key] = targetType;		//アルバム or コミュニティ 種別の配列
	tmp.target_ids[key]  = target_id;		//アルバムID or コミュニティIDの配列
	tmp.targetNames[key] = targetName;	//アルバム名 or コミュニティ名の配列
	tmp.post_flgs[key]   = post_flg;		//投稿済みか否かの配列

	//unique_idをキーとして連想配列にセット
	delPhotoConfInfos[unique_id] = tmp;
	
	//個数をカウントアップ
	delPhotoConfInfoCnt++;
}


function pfctrl_UpdateDelPhotoConfAlbumInfo(unique_id, target_id, post_flg)
{
	return pfctrl_UpdateDelPhotoConfInfo( unique_id, c_CONF_TYPE_ALBUM, target_id, post_flg);
}

function pfctrl_UpdateDelPhotoConfCmmmntyInfo(unique_id, target_id, post_flg)
{
	return pfctrl_UpdateDelPhotoConfInfo( unique_id, c_CONF_TYPE_CMMNTY, target_id, post_flg);
}

function pfctrl_UpdateDelPhotoConfInfo(unique_id, targetType, target_id, post_flg)
{
	if ( !cmn_isset(delPhotoConfInfos) ){
		return;
	}

	pInfo = delPhotoConfInfos[unique_id];
	if ( !cmn_isset(pInfo) ){
		return;
	}

	var key = targetType + target_id;
	
	pInfo.post_flgs[key] = post_flg;	//投稿済みか否かの配列
}

/**
 * コントロールの制御に必要なお気に入りメンバを追加する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     unique_id			メンバID
 * @param     id_str			選択しているお気に入りグループIDの文字列（カンマ区切り）
 * @return    なし
 */
function pfctrl_AppendFavMemberInfo(unique_id, id_str)
{
	if ( favMemberInfos == null ){
		favMemberInfos = new Object();
	}
	
	tmp = new pfctrl_ClsfavMemberInfo();

	tmp.unique_id = unique_id;					//メンバID
	tmp.sel_favgrp_idArray = id_str.split(',');	//選択しているお気に入りグループIDの配列
	
	//unique_idをキーとして連想配列にセット
	favMemberInfos[unique_id] = tmp;
	
	//個数をカウントアップ
	favMemberInfoCnt++;
}

/**
 * コントロールの制御に必要なお気に入りメンバを更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     unique_id			メンバID
 * @param     id_str			選択しているお気に入りグループIDの文字列（カンマ区切り）
 * @return    なし
 */
function pfctrl_UpdateFavMemberInfo(unique_id, id_str)
{
	if ( !cmn_isset(favMemberInfos) ){
		return;
	}
	
	pInfo = favMemberInfos[unique_id];
	if ( !cmn_isset(pInfo) ){
		return;
	}
	
	pInfo.sel_favgrp_idArray = id_str.split(',');	//選択しているお気に入りグループIDの配列
}

/**
 * コントロールの制御に必要なお気に入りメンバを追加する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     unique_id			メンバID
 * @param     id_str			選択しているお気に入りグループIDの文字列（カンマ区切り）
 * @return    なし
 */
function pfctrl_AppendAdInfo(unique_id, id_str)
{
	if ( adInfos == null ){
		adInfos = new Object();
	}

	tmp = new pfctrl_ClsAdInfo();

	tmp.unique_id = unique_id;					//メンバID
	tmp.sel_ad_idArray = id_str.split(',');	//選択しているお気に入りグループIDの配列

	//unique_idをキーとして連想配列にセット
	adInfos[unique_id] = tmp;

	//個数をカウントアップ
	adInfoCnt++;
}

/**
 * コントロールの制御に必要なお気に入りメンバを更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     unique_id			メンバID
 * @param     id_str			選択しているお気に入りグループIDの文字列（カンマ区切り）
 * @return    なし
 */
function pfctrl_UpdateAdInfo(unique_id, id_str)
{
	if ( !cmn_isset(adInfos) ){
		return;
	}

	pInfo = adInfos[unique_id];
	if ( !cmn_isset(pInfo) ){
		return;
	}
	
	pInfo.sel_ad_idArray = id_str.split(',');	//選択しているお気に入りグループIDの配列
}

/**
 * 有効なダイヤログか否かを検査して返却する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj			オブジェクト
 * @return    true:有効	 false:無効
 */
function pfctrl_isDlg(dlgObj)
{
	if ( dlgObj == null || typeof(dlgObj) == 'undefined' ){
		return false;
	}

	return true;
}

/**
 * 確認ダイヤログのタイトルを更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     prm_title		タイトル
 */
function pfctrl_setConfirmTitle(prm_title)
{
	var obj = cmn_getControlById(DLG_TITLE_ID);
	if ( obj != null ){
		obj.innerHTML = prm_title;
	}
}

/**
 * 確認ダイヤログのエラーメッセージを更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     prm_errMsg	エラーメッセージ
 */
function pfctrl_setConfirmErrMsg(prm_errMsg)
{
	var obj = cmn_getControlById(DLG_ERR_ID);
	if ( obj != null ){
		obj.innerHTML = prm_errMsg;
	}
}

/**
 * 確認ダイヤログのボディを更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     prm_body		ボディ
 */
function pfctrl_setConfirmBody(prm_body)
{
	var obj = cmn_getControlById(DLG_BODY_ID);
	if ( obj != null ){
		obj.innerHTML = prm_body;
	}
}

/**
 * 確認ダイヤログの実行する関数(OKボタン)を更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     funclist		実行する関数
 */
function pfctrl_setConfirmOKFunc(funclist)
{
	pfctrl_setConfirmFunc('dlg_confirm_ok', funclist);
}

/**
 * 確認ダイヤログの実行する関数(キャンセルボタン)を更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     funclist		実行する関数
 */
function pfctrl_setConfirmCancelFunc(funclist)
{
	pfctrl_setConfirmFunc('dlg_confirm_cancel', funclist);
}

/**
 * 確認ダイヤログの実行する関数(汎用)を更新する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     btn_id		コントロールID
 * @param     funclist		実行する関数
 */
function pfctrl_setConfirmFunc(btn_id,funclist)
{
	var obj = cmn_getControlById(btn_id);
	if ( obj != null ){
		obj.onclick = funclist;
	}
}


/**
 * 公開設定変更ダイヤログを表示する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj			エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     unique_id			写真ID ｏｒ アルバムＩＤ
 * @param     favlist_id		お気に入り
 * @param     sel_favgrp_ctrl	
 * @return    なし
 */
function pfctrl_OpenPrivacyDlg(dlgObj, unique_id, favlist_id, sel_favgrp_ctrl )
{
	//ダイヤログを開く
	if ( dlgObj == null || privacyInfos == null ){
		return;
	}
	dlgObj.open();
	
	//対象となる公開設定を保持する情報を格納する変数を取得する
	pInfo = privacyInfos[unique_id];
	if ( typeof(pInfo) == 'undefined' ){
		return;
	}
	var obj = null;
	
	//選択している公開設定を画面にセットする
	var lists = document.getElementsByName('dlg_allow_privacy');
	for (var i=0,len=lists.length;i<len;i++){
		obj =lists[i];
		if ( obj == null ) continue;
		if ( obj.value == pInfo.curprivacy ){
			obj.checked = true;
			break;
		}
	}
	
	cmn_PrivacyDisabled( pInfo.curprivacy ,'dlg_Privacy_favGrp_list', 'sel_favoritegrp');
	
	//お気に入りグループを画面にセットする
	/*
	var src_obj = document.getElementById(favlist_id);
	var to_obj = document.getElementById('dlg_Privacy_favGrp_list');
	
	if ( src_obj == null || to_obj == null ){
		return;
	}
	to_obj.innerHTML = src_obj.innerHTML;
	*/
	
	//選択しているお気に入りグループを画面にセットする
	lists = document.getElementsByName(sel_favgrp_ctrl);
	var id_Array = pInfo.sel_favgrp_idArray;
	var checkID = 0;
	var j=0;
	var len2=id_Array.length;
	
	for (i=0,len=lists.length;i<len;i++){
		obj =lists[i];
		if ( obj == null ) continue;

		obj.checked = false;
		
		checkID = obj.value;
		
		for (j=0;j<len2;j++){
			if ( id_Array[j] == checkID ){
				obj.checked = true;
				break;
			}
		}
	}
	
	//OKボタン時に実行する関数をセットする
	var btn_obj = document.getElementById('dlg_privacy_ok');
	if ( btn_obj == null ){
		return;
	}
	btn_obj.onclick = pInfo.execFunc;
}

/**
 * お気に入りメンバ変更ダイヤログを表示する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj			エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     unique_id			メンバＩＤ
 * @param     favlist_id		お気に入り
 * @param     sel_favgrp_ctrl	
 * @return    なし
 */
function pfctrl_OpenFavMemberDlg(dlgObj, unique_id, sel_favgrp_ctrl )
{
	//ダイヤログを開く
	if ( dlgObj == null || favMemberInfos == null ){
		return;
	}
	dlgObj.open();
	
	//対象となる公開設定を保持する情報を格納する変数を取得する
	mInfo = favMemberInfos[unique_id];
	if ( typeof(mInfo) == 'undefined' ){
		return;
	}
	var obj = null;
	
	//選択しているお気に入りグループを画面にセットする
	lists = document.getElementsByName(sel_favgrp_ctrl);
	var id_Array = mInfo.sel_favgrp_idArray;
	var checkID = 0;
	var j=0;
	var len2=id_Array.length;
	
	for (i=0,len=lists.length;i<len;i++){
		obj =lists[i];
		if ( obj == null ) continue;

		obj.checked = false;
		
		checkID = obj.value;
		
		for (j=0;j<len2;j++){
			if ( id_Array[j] == checkID ){
				obj.checked = true;
				break;
			}
		}
	}
	
}

/**
 * 広告表示設定ダイヤログを表示する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj			エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     unique_id			メンバＩＤ
 * @param     sel_ad_ctrl
 * @return    なし
 */
function pfctrl_OpenAdDlg(dlgObj, unique_id, sel_ad_ctrl )
{
	//ダイヤログを開く
	if ( dlgObj == null || adInfos == null ){
		return;
	}
	dlgObj.open();

	//対象となる公開設定を保持する情報を格納する変数を取得する
	mInfo = adInfos[unique_id];
	if ( typeof(mInfo) == 'undefined' ){
		return;
	}
	var obj = null;

	//選択しているお気に入りグループを画面にセットする
	lists = document.getElementsByName(sel_ad_ctrl);
	var id_Array = mInfo.sel_ad_idArray;
	var checkID = 0;
	var j=0;
	var len2=id_Array.length;

	for (var i=0,len=lists.length;i<len;i++){
		obj =lists[i];
		if ( obj == null ) continue;

		obj.checked = false;

		checkID = obj.value;

		for (j=0;j<len2;j++){
			if ( id_Array[j] == checkID ){
				obj.checked = true;
				break;
			}
		}
	}
}

/**
 * ブログに貼るダイヤログを表示する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj			エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @return    なし
 */
function pfctrl_OpenBlogDlg(dlgObj)
{
	//ダイヤログを開く
	if ( dlgObj == null){
		return;
	}
	dlgObj.open();
}

/**
 * 写真を削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     prm_funclist	実行する関数
 */
function pfctrl_ConfDelPhoto( dlgObj, p_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	var confirm = 'この写真を削除してよろしいですか？';

	if ( cmn_isset(delPhotoConfInfos) ){
		
		var delConf = delPhotoConfInfos[p_id];
		var isAlbum = false;
		var isCmmnty = false;
		var dispStr = '';
		
		if ( cmn_isset( delConf ) ){
			dispStr = '';
			for ( var key in delConf.target_ids ){
				if ( !delConf.post_flgs[key] ) continue;
				
				if ( delConf.target_Types[key] == c_CONF_TYPE_ALBUM ){
					isAlbum = true;
					dispStr += "&nbsp;&nbsp;&nbsp;アルバム「" + delConf.targetNames[key] + "」<br/>"
				}
				else if ( tmp.target_Types[key] == c_CONF_TYPE_CMMNTY ){
					isCmmnty = true;
					dispStr += "&nbsp;&nbsp;&nbsp;コミュニティ「" + delConf.targetNames[key] + "」<br/>"
				}
				
			}
			
		}

		confirm  = '';
		if ( isAlbum || isCmmnty ){
			confirm += 'この写真は以下のアルバム／コミュニティに投稿されています<br/><br/>'
			confirm += dispStr + '<br/>'
			confirm += '削除してよろしいですか？<br/>'
		}
		else if ( isAlbum ){
			confirm += 'この写真は以下のアルバムに投稿されています<br/><br/>'
			confirm += dispStr + '<br/>'
			confirm += '削除してよろしいですか？<br/>'
		}
		else if ( isCmmnty ){
			confirm += 'この写真は以下のコミュニティに投稿されています<br/><br/>'
			confirm += dispStr + '<br/>'
			confirm += '削除してよろしいですか？<br/>'
		}
		else{
			confirm += 'この写真を削除してよろしいですか？<br/>'
		}
		
	}

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );
	
	//実行関数を設定する
	var funclist = function(){
			pf_DeletePhoto(dlgObj, p_id);
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * アルバムを削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     prm_funclist	実行する関数
 */
function pfctrl_ConfDelAlbum( dlgObj, arg_type, a_id, m_id)
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle('このアルバムを削除しますか？');
	
	//実行関数を設定する
	var funclist = function(){
			pf_DeleteAlbum(dlgObj, arg_type, a_id, m_id);
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * 掲載日変更ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_OpenValidDateDlg( dlgObj )
{
	//ダイヤログを開く
	if ( !pfctrl_isDlg(dlgObj) ) return;

	dlgObj.open();
	
	if ( cmn_isset(cls_valid) ) {
		//入力済み内容を画面に反映させる
		cls_valid.displayDate();
	}
}

/**
 * 写真をアルバムから削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_ConfDelPhotoAlbum( dlgObj, a_id, arg_p_id, arg_own_id)
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	var title_id = 'id_title_album' + a_id;
	var obj = cmn_getControlById(title_id);
	var albumName = '';
	if ( obj != null ){
		albumName = obj.innerHTML;
	}
	confTitle = "この写真をアルバム「" + albumName + "」から削除しますか？";
	
	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//実行関数を設定する
	var funclist = function(){
			pf_PhotoAlbumEdit(dlgObj, a_id, false, true, DLG_ERR_ID, arg_p_id, arg_own_id);
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * 写真をコミュニティから削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_ConfDelPhotoCommnty( dlgObj, cmmnty_id, arg_p_id, arg_own_id)
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	var title_id = 'id_title_cmmnty' + cmmnty_id;
	var obj = cmn_getControlById(title_id);
	var cmmntyName = '';
	if ( obj != null ){
		cmmntyName = obj.innerHTML;
	}
	confTitle = "この写真をコミュニティ「" + cmmntyName + "」から削除しますか？";
	
	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//実行関数を設定する
	var funclist = function(){
			pf_PhotoCmmntyEdit(dlgObj, cmmnty_id, false, true, DLG_ERR_ID, arg_p_id, arg_own_id);
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * タグを追加する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_ConfAddTag( dlgObj, tag_ctrl_id, arg_p_id, arg_own_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	var title_id = tag_ctrl_id;
	var obj = cmn_getControlById(title_id);
	var tmpTag = '';
	if ( obj != null ){
		tmpTag = obj.value;
	}

	//文言を設定する
//	confTitle = "タグ「" + tmpTag + "」を追加しますか？";
	confTitle = "タグを追加しますか？";
	
	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//実行関数を設定する
	var funclist = funclist = function(){
			pf_AddTag(dlgObj, tmpTag, arg_p_id, arg_own_id);
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * タグを削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_ConfDelTag( dlgObj, arg_tag_id, arg_p_id, arg_own_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	var title_id = 'del_tag_' + arg_tag_id;
	var obj = cmn_getControlById(title_id);
	var tmpTag = '';
	if ( obj != null ){
		tmpTag = obj.innerHTML;
	}
//	confTitle = "タグ「" + tmpTag + "」を削除しますか？";
	confTitle = "タグを削除しますか？";
	
	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//実行関数を設定する
	var funclist = function(){
			pf_DeleteTag(dlgObj, arg_tag_id, arg_p_id, arg_own_id );
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * コメントを削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_ConfDelComment( dlgObj, arg_comment_id, arg_top_id, arg_type, arg_taget_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	confTitle = "コメントを削除しますか？";
	
	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//実行関数を設定する
	var funclist = function(){
			pf_DeleteComment(dlgObj, arg_comment_id, arg_top_id, arg_type, arg_taget_id );
		}

	pfctrl_setConfirmOKFunc(funclist);
}


/**
 * 写真を削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     prm_funclist	実行する関数
 */
function pfctrl_ConfUpdateTitle( dlgObj, title_ctrl_id, descript_ctrl_id, arg_p_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	var title = '';
	var descript = '';
	var obj = cmn_getControlById(title_ctrl_id);
	if ( cmn_isset(obj) ){
		title = obj.value;
	}
	obj = cmn_getControlById(descript_ctrl_id);
	if ( cmn_isset(obj) ){
		descript = obj.value;
	}
	
//	confTitle = "タイトル「" + title + "」<br/>および<br/>説明文「"+ descript + "」<br/>に変更しますか？";
//	confTitle = "タイトルおよび説明文を変更しますか？";
	confTitle = "タイトルおよび説明文を変更します";

	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);

	//即実行のためOKボタンを非表示とする
	cmn_visibleControls(new Array('dlg_confirm_ok'),false);
	
	//実行関数を設定する
//	var funclist = function(){
			pf_UpdateTitle(dlgObj, title, descript, arg_p_id);
//		}

//	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * お気に入り写真/アルバムに登録する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_ConfRegFavContents( dlgObj, is_post, arg_type, arg_taget_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	if ( arg_type == 'photo' || arg_type == 'photo-favlist' ){
		if ( is_post ){
			confTitle = "お気に入り写真に登録しますか？";
		}
		else{
			confTitle = "お気に入り写真から削除しますか？";
		}
	}
	else{
		if ( is_post ){
			confTitle = "お気に入りアルバムに登録しますか？";
		}
		else{
			confTitle = "お気に入りアルバムから削除しますか？";
		}
	}
	
	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//実行関数を設定する
	var funclist = function(){
			pf_RegFavoriteContents(dlgObj, is_post, arg_type, arg_taget_id );
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * 写真を削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     prm_funclist	実行する関数
 */
function pfctrl_ConfUpdateTitleTag( dlgObj, title_ctrl_id, descript_ctrl_id, tag_ctrl_id, arg_p_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//文言を設定する
	var confTitle = '';
	var title = '';
	var descript = '';
	var tag = '';
	var obj = cmn_getControlById(title_ctrl_id);
	if ( cmn_isset(obj) ){
		title = obj.value;
	}
	obj = cmn_getControlById(descript_ctrl_id);
	if ( cmn_isset(obj) ){
		descript = obj.value;
	}
	obj = cmn_getControlById(tag_ctrl_id);
	if ( cmn_isset(obj) ){
		tag = obj.value;
	}
	
//	confTitle = "タイトル「" + title + "」<br/>および<br/>説明文「"+ descript + "」<br/>および<br/>タグ「"+ tag + "」<br/>に変更しますか？";
//	confTitle = "写真のタイトル、説明、タグを変更しますか？";
	confTitle = "写真のタイトル、説明、タグを変更します";

	//ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle(confTitle);
	
	//即実行のためOKボタンを非表示とする
	cmn_visibleControls(new Array('dlg_confirm_ok'),false);
	
	//実行関数を設定する
//	var funclist = function(){
			pf_UpdateTitleTag(dlgObj, title, descript, tag, arg_p_id);
//		}

//	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * トピックを削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     prm_funclist	実行する関数
 */
function pfctrl_ConfDelTopic( dlgObj, topic_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	var confirm = 'このトピックを削除してよろしいですか？';

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );
	
	//実行関数を設定する
	var funclist = function(){
			pf_DeleteTopic(dlgObj, topic_id);
		}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * オプションボタン形式入力ダイヤログを開く(汎用)
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     arg_cls		データを保持するクラス
 */
function pfctrl_OpenCheckedDlg( dlgObj, arg_cls)
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	dlgObj.open();
	
	if ( cmn_isset(arg_cls) ) {
		//入力済み内容を画面に反映させる
		arg_cls.displayChecked();
	}
}

/**
 *
 * @returns flags
 */
function pfctrl_checkCheck()
{
    // チェックボックスにチェックがあるかを確認して、
    // 一件もチェックがない場合は、エラーダイアログを表示
    var flags = false;
    var exists = false;
    var tags = document.getElementsByTagName('input');
    for (var idx1 = 0; idx1 < tags.length ; idx1++) {
        var tag = tags[idx1];
        if (tag) {
            var type = tag.getAttribute('type');
            if (type) {
                if (type == 'checkbox') {
                    var name = tag.getAttribute("name");
                    if (name.search(/msg_id\[\]/i) >= 0) {
                        exists = true;
                        var checked = tag.checked;
                        if (checked) {
                            flags = true;
                        }
                    }
                }
            }
        }
    }

    if (exists && !flags) {
        alert('メッセージが選択されていません。');
    } else {
        flags = true;
    }

    return flags;
}

/**
 * メッセージを削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     arg_type		処理タイプ
 */
function pfctrl_ConfDelMessage( dlgObj, arg_type )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

    // メッセージが選択されていなければ、終了。
    if (!pfctrl_checkCheck()) return;

	//ダイヤログを開く
	dlgObj.open();

	var confirm = '';
	
	switch (arg_type) {
		case 'recv':
		case 'send':
			confirm = '選択したメッセージを削除してもよろしいですか？';
			break;
		case 'recv_view':
		case 'send_view':
		default:
			confirm = 'このメッセージを削除してもよろしいですか？';
			break;
	}

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );
	
	//実行関数を設定する
	var funclist = function(){
		pf_DeleteMessage(dlgObj, arg_type);
	}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * メッセージの既読・未読を設定する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     arg_type      未読(read)・既読(unread)
 */
function pfctrl_ConfReadFlagMessage( dlgObj, arg_type )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

    // メッセージが選択されていなければ、終了。
    if (!pfctrl_checkCheck()) return;

	var confirm = '';

	switch (arg_type) {
		case 'read':
			confirm = '選択したメッセージを既読に設定してもよろしいですか？';
			break;
		case 'unread':
			confirm = '選択したメッセージを未読に設定してもよろしいですか？';
			break;
		default:
            // 何もせずに終了
            return;
	}

    //ダイヤログを開く
	dlgObj.open();

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );

	//実行関数を設定する
	var funclist = function(){
		pf_SetReadFlagMessage(dlgObj, arg_type);
	}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * メッセージを削除する確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     arg_type		処理タイプ
 */
function pfctrl_ConfDelSendPhoto( dlgObj, send_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	var confirm = '削除してもよろしいですか？';

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );
	
	//実行関数を設定する
	var funclist = function(){
		pf_DeleteSendPhoto(dlgObj, send_id);
	}

	pfctrl_setConfirmOKFunc(funclist);
}

/**
 * 住所検索確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pfctrl_SearchAddress( dlgObj, controller, zip_head_id, zip_tail_id, address_id)
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	var confirm = '住所情報を検索します';

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );
	
	//即実行のためOKボタンを非表示とする
	cmn_visibleControls(new Array('dlg_confirm_ok'),false);
	
	//実行関数を設定する
//	var funclist = function(){
		pf_SearchAddress(dlgObj, controller, zip_head_id, zip_tail_id, address_id);
//	}

//	pfctrl_setConfirmOKFunc(funclist);
	
}

/**
 * 写真を送る確認ダイヤログを開く
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 * @param     p_id			写真ID
 */
function pfctrl_ConfSendPhoto( dlgObj, p_id )
{
	if ( !pfctrl_isDlg(dlgObj) ) return;

	//ダイヤログを開く
	dlgObj.open();

	var confirm = '写真を選択して写真を送る画面に移動しますか？';

	//文言を設定する
	pfctrl_setConfirmTitle( confirm );
	
	//実行関数を設定する
	var funclist = function(){
			var url = '/' + PATH_SENDPHOTOEDIT + '/create/';
			
			//送信用フォーム追加
			var sendForm = cmn_getNewForm(url);
			if ( !cmn_isset(sendForm)) return false;
			
			//送信用フォームにデータをセットする
			var obj_kind = cmn_setNewHiddenObj(sendForm, '_default_p_id', p_id);
			
			//送信を実施
			try{
				sendForm.submit();
			}
			catch(e){
				alert(e);
			}
		}

	pfctrl_setConfirmOKFunc(funclist);
}
