/**
 * @copyright 2008 NTT Communications
 * @author    NTT Communications CO.,LTD.
 * @version   $Id$
 * @link      http://photofriend.jp/
*/
//document.write("<script type='text/javascript' src='/js/openclose.js'></script>");
document.write("<script type='text/javascript' src='/js/common.js'></script>");
/*document.write("<script type='text/javascript' src='js/prototype.js'></script>");*/
/*document.write("<script type='text/javascript' src='js/editinplace.js'></script>");*/

var orgPhotoWindow = null;	//オリジナル写真表示用のウィンドウ
var m_density=0;	//画像フェードイン用変数

function show_cat(inputData, tg_ctrlId )
{
	var objID=document.getElementById( "layer_" + inputData );
	//コントロールIDが直接指定されている場合はそちらを採用とする
	if ( cmn_isset(tg_ctrlId) ) {
		objID=document.getElementById( tg_ctrlId );
	}
	
	if(objID.className=='close') {
		objID.style.display='block';
		objID.className='open';
	}else{
		objID.style.display='none';
		objID.className='close';
	}
}

function show_btn(inputData) {
  var objID=document.getElementById( "layer_" + inputData );
  var buttonID=document.getElementById( "button_" + inputData );
  var viewID=document.getElementById( "lay_view_" + inputData );

  if(objID.className=='close') {
    if( objID != null ){
      objID.style.display='block';
      objID.className='open';
    }
    if( buttonID != null ){
      buttonID.src='/images/icon_close.gif';
    }
    if( viewID != null ){
      viewID.value = "open";
    }
  }
  else{
    if( objID != null ){
      objID.style.display='none';
      objID.className='close';
    }
    if( buttonID != null ){
      buttonID.src='/images/icon_open.gif';
    }
    if( viewID != null ){
      viewID.value = "close";
    }
  }

  return false;
}

function show_edit(inputData) {
  var objID_view=document.getElementById( "layer_view_"+inputData );
  var objID_edit=document.getElementById( "layer_edit_"+inputData );

  if(objID_view.className=='close') {
    if( objID_view != null ){
      objID_view.style.display='block';
      objID_view.className='open';
    }
    if( objID_edit != null ){
      objID_edit.style.display='none';
      objID_edit.className='close';
    }
  }
  else{
    if( objID_view != null ){
      objID_view.style.display='none';
      objID_view.className='close';
    }
    if( objID_edit != null ){
      objID_edit.style.display='block';
      objID_edit.className='open';
    }
  }

  return false;
}

/**
 * 送信処理（送信先指定）
 */
function submitSelect(str) {
	document.confirm.action = str;
	document.confirm.submit();
}

function postSubmitlayer(inputData,action,page){
var formid=document.getElementById( "page" );
var viewID=document.getElementById( "lay_view_" + inputData );
//var pageID=document.getElementById( "lay_page_" + inputData );

//var elements = formid.elements;
//var str = "length = "+elements.length;
//for (var i = 0; i < elements.length; i++) {
//	str = str + "name = "+elements[i].name+"\n";
//}
//alert(str);
//alert("form_name = "+formid.name);

//pageID.value = page;
formid.method="POST";
formid.action=action;
formid.submit();
return false;
}

function view_page(action,prev_kind,prev_id){
  var formid=document.getElementById( "page" );

  formid.method="POST";
  formid.action=action;
  formid.elements["_prev_kind"].value = prev_kind;
  formid.elements["_prev_id"].value = prev_id;
  formid.submit();
  return false;
}


function RegistComment( formid_name ){
  var formid=document.getElementById( formid_name );

  formid.method="POST";
  formid.elements["type"].value = "ins_comment";
  formid.submit();
  return false;
}
function CheckComment( formid_name, comment_id ){
  var formid=document.getElementById( formid_name );

  formid.method="POST";
  formid.elements["type"].value = "chk_comment";
  formid.elements["comment_id"].value = comment_id;
  formid.submit();
  return false;
}

function DeleteComment(comment_id,formid_name){
  var formid=document.getElementById( formid_name );

  if( confirm('このコメントを削除しますか？') == false ){
      return false;
  }

  if( formid == null ){
      alert( formid_name + "はみつかりませんでした。");
      return false;
  }

  formid.method="POST";
  formid.elements["type"].value = "dlt_comment";
  formid.elements["comment_id"].value = comment_id;
  formid.submit();
  return false;
}

function UpdateTitle(){
  var formid=document.getElementById( "titleform" );

  if( confirm('タイトルおよび説明を変更しますか？') == false ){
      return false;
  }

  var p_id	  = formid.elements["p_id"].value;
  var m_id	  = formid.elements["m_id"].value;
  var v_m_id  = formid.elements["v_id"].value;
  var title   = formid.elements["title"].value;
  var caption = formid.elements["caption"].value;
  
  var url = '/' + PATH_PERSONALPHOTO + '/update-title?ajax=1';
  var data = 'p_id=' + p_id + '&m_id=' + m_id + '&v_m_id=' + v_m_id + '&title=' + title + '&caption=' + caption ;

  var objid   = new Array(document.getElementById('edit_title'), document.getElementById('edit_caption'));

  initXMLHttp_f();
  
  xmlhttp_f.open('POST', url, true);
  xmlhttp_f.onreadystatechange = function () {checkResult_f(objid);};
  xmlhttp_f.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
  xmlhttp_f.send(data);

/*
  formid.method="POST";
  formid.elements["type"].value = "upd_tytle";
  formid.submit();
  return false;*/
}



function InsertPhotoCommunity(c_id){
  var formid=document.getElementById( "comform" );

  if( confirm('この写真をコミュニティへ投稿しますか？') == false ){
      return false;
  }
  var p_id	  = formid.elements["p_id"].value;
  var m_id	  = formid.elements["m_id"].value;
  
  var url = '/' + PATH_PERSONALPHOTO + '/insert-photo-community?ajax=1';
  var data = 'p_id=' + p_id + '&m_id=' + m_id + '&c_id=' + c_id ;

  var objid   = new Array(document.getElementById('edit_cmmnty_' + c_id));
  
  initXMLHttp_f();
  
  xmlhttp_f.open('POST', url, true);
  xmlhttp_f.onreadystatechange = function () {checkResult_f(objid);};
  xmlhttp_f.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
  xmlhttp_f.send(data);
/*
  formid.method="POST";
  formid.elements["type"].value = "ins_community";
  formid.elements["c_id"].value = c_id;
  formid.submit();
  return false;*/
}

function DeletePhotoCommunity(c_id){
  var formid=document.getElementById( "comform" );

  if( confirm('この写真をコミュニティから削除しますか？') == false ){
      return false;
  }

  var p_id	  = formid.elements["p_id"].value;
  var m_id	  = formid.elements["m_id"].value;
  
  var url = '/' + PATH_PERSONALPHOTO + '/delete-photo-community?ajax=1';
  var data = 'p_id=' + p_id + '&m_id=' + m_id + '&c_id=' + c_id ;

  var objid   = new Array(document.getElementById('edit_cmmnty_' + c_id));
  
  initXMLHttp_f();
  
  xmlhttp_f.open('POST', url, true);
  xmlhttp_f.onreadystatechange = function () {checkResult_f(objid);};
  xmlhttp_f.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
  xmlhttp_f.send(data);
/*  
  formid.method="POST";
  formid.elements["type"].value = "del_community";
  formid.elements["c_id"].value = c_id;
  formid.submit();
  return false;*/
}

function pf_UpdateTitle(dlgObj, title, descript, arg_p_id)
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//URLを合成する
	var url = '/' + PATH_PERSONALPHOTO + '/updatetitle?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendPhotoData(arg_p_id);
	data += '&title=' + encodeURIComponent(title);
	data += '&caption=' + encodeURIComponent(descript);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispTitleUpdate(arg_response, 'layer_view_1');
		//エラーメッセージの初期化
		util_SetInnnerHTML(err_objid,'');
		dlgObj.close();
		show_edit(1);
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_UpdateTitleTag(dlgObj, title, descript, tag, arg_p_id)
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//URLを合成する
	var url = '/' + PATH_PHOTOEDIT + '/updatephotoinfo?ajax=1';

	//POSTデータを合成する
	var data = '';//pf_makeSendPhotoData(arg_p_id);
	
	data += 'p_id=' + arg_p_id;
	data += '&title=' + encodeURIComponent(title);
	data += '&caption=' + encodeURIComponent(descript);
	data += '&tag=' + encodeURIComponent(tag);
	
	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}
function pf_CheckComment( input_ctrl_id, err_objid, confirm_ctrl_id, arg_type, arg_target_id )
{
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	util_SetInnnerHTML(confirm_ctrl_id,'');

	var comment = cmn_getTextValue( input_ctrl_id );
	
	var url = '';
	var data = '';
	
	if ( arg_type == 'photo' ){
		url = '/' + PATH_PERSONALPHOTO + '/checkcomment?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}
	else if ( arg_type == 'album' ){
		url = '/' + PATH_PERSONALALBUM + '/checkcomment?ajax=1';
		data = pf_makeSendAlbumData(arg_target_id);
	}
	else if ( arg_type == 'topic' ){
		url = '/' + PATH_PERSONALCOMMUNITY + '/checkcomment?ajax=1';
		data = pf_makeSendTopicData(arg_target_id);
	}
	else{
		url = '/' + PATH_PERSONALPHOTO + '/checkcomment?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}

	//POSTデータを合成する
	data += '&comment=' + encodeURIComponent(comment);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispCheckComment(arg_response, err_objid, confirm_ctrl_id);
	}
	
	var dlgControler = new pf_cls_commentControler( null );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, null, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_RegistComment(input_ctrl_id, err_objid, confirm_ctrl_id, parent_comment_id, arg_type, arg_target_id )
{
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	util_SetInnnerHTML(confirm_ctrl_id,'');

	var comment = cmn_getTextValue( input_ctrl_id );
	
	var url = '';
	var data = '';
	
	if ( arg_type == 'photo' ){
		url = '/' + PATH_PERSONALPHOTO + '/regcomment?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}
	else if ( arg_type == 'album' ){
		url = '/' + PATH_PERSONALALBUM + '/regcomment?ajax=1';
		data = pf_makeSendAlbumData(arg_target_id);
	}
	else if ( arg_type == 'topic' ){
		url = '/' + PATH_PERSONALCOMMUNITY + '/addcomment?ajax=1';
		data = pf_makeSendTopicData(arg_target_id);
	}
	else{
		url = '/' + PATH_PERSONALPHOTO + '/regcomment?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}

	//POSTデータを合成する
	data += '&comment=' + encodeURIComponent(comment);
	data += '&parent_comment_id=' + parent_comment_id;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispRegistComment(arg_response, err_objid, confirm_ctrl_id );
	}
	
	var dlgControler = new pf_cls_commentControler( null );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, null, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_DeleteComment(dlgObj, comment_id, top_comment_id, arg_type, arg_target_id )
{
	var err_objid = 'dlg_confirm_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	var url = '';
	var data = '';
	
	if ( arg_type == 'photo' ){
		url = '/' + PATH_PERSONALPHOTO + '/deletecomment?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}
	else if ( arg_type == 'album' ){
		url = '/' + PATH_PERSONALALBUM + '/deletecomment?ajax=1';
		data = pf_makeSendAlbumData(arg_target_id);
	}
	else if ( arg_type == 'topic' ){
		url = '/' + PATH_PERSONALCOMMUNITY + '/deletecomment?ajax=1';
		data = pf_makeSendTopicData(arg_target_id);
	}
	else{
		url = '/' + PATH_PERSONALPHOTO + '/deletecomment?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}

	//POSTデータを合成する
	data += '&comment_id=' + comment_id;
	data += '&top_comment_id=' + top_comment_id;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	//処理完了時のfunctionをセット
	var confirm_ctrl_id = ""
	var afterFunc = function(arg_response){
		pf_dispDeleteComment(arg_response, err_objid, confirm_ctrl_id );
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
//(dlgObj, arg_p_id)

}

function pf_RegFavoriteContents( dlgObj, is_post, arg_type, arg_target_id )
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	var url = '';
	var data = '';
	
	if ( arg_type == 'photo' ){
		if ( is_post ){
			url = '/' + PATH_PERSONALPHOTO + '/regfavphoto?ajax=1';
		}
		else{
			url = '/' + PATH_PERSONALPHOTO + '/delfavphoto?ajax=1';
		}
		data = pf_makeSendPhotoData(arg_target_id);
	}
	else if ( arg_type == 'photo-favlist' ){
		url = '/' + PATH_PERSONALPHOTO + '/delfavphotolist?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
	}
	else if ( arg_type == 'album-favlist' ){
		url = '/' + PATH_PERSONALALBUM + '/delfavalbumlist?ajax=1';
		data = pf_makeSendAlbumData(arg_target_id);
	}
	else{
		if ( is_post ){
			url = '/' + PATH_PERSONALALBUM + '/regfavalbum?ajax=1';
		}
		else{
			url = '/' + PATH_PERSONALALBUM + '/delfavalbum?ajax=1';
		}
		data = pf_makeSendAlbumData(arg_target_id);
	}

	//POSTデータを合成する
		//追加パラメータ特に無し

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	//処理完了時のfunctionをセット
	if ( arg_type == 'photo-favlist' || arg_type == 'album-favlist' ) {
		var afterFunc = function(arg_response){
			//ジャンプするまでの間コントロールを使用不可とする
			dlgControler.start();
			pf_JumpNewPage(arg_response);
		}
	}
	else{
		var afterFunc = function(arg_response){
			pf_dispRegFavContents(arg_response, 'id_favcontents' );
			dlgObj.close();
		}
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, null, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_OpenDlgPostCmmnty( dlgObj )
{
	dlgObj.open();

	//エラーメッセージの初期化
	util_SetInnnerHTML('dlg_cmmntyPost_err','');
}

function pf_PhotoCmmntyEdit(dlgObj, cmmnty_id, is_post, is_unit_del, arg_err_objid, arg_p_id, arg_own_id)
{
	var err_objid = arg_err_objid;
	var url = '';
	
	if ( !cmn_isset(arg_err_objid) ){
		err_objid = 'dlg_cmmntyPost_err';
	}
	
	var w_is_unit_del = is_unit_del;
	if ( typeof(is_unit_del) == '' || is_unit_del == null ){
		w_is_unit_del = false;
	}

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	if ( !w_is_unit_del ){
		if ( is_post ){
//			if( confirm('この写真をコミュニティへ投稿しますか？') == false ){
//				return false;
//			}
			//URLを合成する
			url = '/' + PATH_PERSONALPHOTO + '/insert-photo-community?ajax=1';
		}
		else{
//			if( confirm('この写真をコミュニティから削除しますか？') == false ){
//				return false;
//			}
			//URLを合成する
			url = '/' + PATH_PERSONALPHOTO + '/delete-photo-community?ajax=1';
		}
	}
	else{
		//URLを合成する
		url = '/' + PATH_PERSONALPHOTO + '/delete-photo-community?ajax=1';
	}

	//POSTデータを合成する
	var data = pf_makeSendPhotoData(arg_p_id, arg_own_id);

	data += '&c_id=' + cmmnty_id;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var post_ctrl_id = 'post_cmmnty_' + cmmnty_id;
	var erase_ctrl_id = 'id_prevnext_cmmnty' + cmmnty_id;
	if ( !w_is_unit_del ){
	
		var tmp_p_id = arg_p_id;
		if ( !cmn_isset(tmp_p_id) ){
			tmp_p_id = pf_getTarget_obj_id();
		}
	
		if ( is_post ) {
			var afterFunc = function(arg_response){
				pf_dispPostCmmnty(arg_response, err_objid, post_ctrl_id);
				pfctrl_UpdateDelPhotoConfCmmmntyInfo(tmp_p_id, cmmnty_id, true);
			}
		}
		else {
			var afterFunc = function(arg_response){
				pf_dispPostCmmnty(arg_response, err_objid, post_ctrl_id);
				pfctrl_UpdateDelPhotoConfCmmmntyInfo(tmp_p_id, cmmnty_id, false);
				pf_erasePrevNextCmmnty(arg_response, null, erase_ctrl_id);
			}
		}
	}
	else{
		var afterFunc = function(arg_response){
			pf_erasePrevNextCmmnty(arg_response, null, erase_ctrl_id);
			dlgObj.close();
		}
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc('', arg)}, 
												function(arg){util_DefaultNWErrFunc('', arg)}
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_InsertPhotoCmmntyList(dlgObj, cmmnty_id)
{
	return pf_PhotoCmmntyEdit(dlgObj, cmmnty_id, true, false );
}

function pf_DeletePhotoCmmntyList(dlgObj, cmmnty_id)
{
	return pf_PhotoCmmntyEdit(dlgObj, cmmnty_id, false, false );
}

function pf_OpenDlgPostAlbum( dlgObj )
{
	dlgObj.open();

	//エラーメッセージの初期化
	util_SetInnnerHTML('dlg_albumPost_err','');
}

function pf_PhotoAlbumEdit(dlgObj, a_id, is_post, is_unit_del, arg_err_objid, arg_p_id, arg_own_id)
{
	var err_objid = arg_err_objid;
	var url = '';
	
	if ( !cmn_isset(arg_err_objid) ){
		err_objid = 'dlg_albumPost_err';
	}
	
	var w_is_unit_del = is_unit_del;
	if ( typeof(is_unit_del) == 'undefined' || is_unit_del == null ){
		w_is_unit_del = false;
	}

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	if ( !w_is_unit_del ){
		if ( is_post ){
//			if( confirm('この写真をアルバムへ投稿しますか？') == false ){
//				return false;
//			}
			//URLを合成する
			url = '/' + PATH_PERSONALPHOTO + '/insert-photo-album/?ajax=1';
		}
		else{
//			if( confirm('この写真をアルバムから削除しますか？') == false ){
//				return false;
//			}
			//URLを合成する
			url = '/' + PATH_PERSONALPHOTO + '/delete-photo-album/?ajax=1';
		}
	}
	else{
		//URLを合成する
		url = '/' + PATH_PERSONALPHOTO + '/delete-photo-album/?ajax=1';
	}

	//POSTデータを合成する
	var data = pf_makeSendPhotoData(arg_p_id, arg_own_id);

	data += '&a_id=' + a_id;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var post_ctrl_id = 'post_album_' + a_id;
	var erase_ctrl_id = 'id_prevnext_album' + a_id;
	if ( !w_is_unit_del ){
	
		var tmp_p_id = arg_p_id;
		if ( !cmn_isset(tmp_p_id) ){
			tmp_p_id = pf_getTarget_obj_id();
		}
	
		if ( is_post ){
			var afterFunc = function(arg_response){
				pf_dispPostAlbum(arg_response, err_objid, post_ctrl_id);
				pfctrl_UpdateDelPhotoConfAlbumInfo(tmp_p_id, a_id, true);
			}
		}
		else { 
			var afterFunc = function(arg_response){
				pf_dispPostAlbum(arg_response, err_objid, post_ctrl_id);
				pfctrl_UpdateDelPhotoConfAlbumInfo(tmp_p_id, a_id, false);
				pf_erasePrevNextAlbum(arg_response, null, erase_ctrl_id);
			}
		}
	}
	else{
		var afterFunc = function(arg_response){
			pf_erasePrevNextAlbum(arg_response, null, erase_ctrl_id);
			dlgObj.close();
		}
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc('', arg)}, 
												function(arg){util_DefaultNWErrFunc('', arg)}
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}
function pf_InsertPhotoAlbumList(dlgObj, a_id)
{
	return pf_PhotoAlbumEdit(dlgObj, a_id, true, false );
}

function pf_DeletePhotoAlbumList(dlgObj, a_id)
{
	return pf_PhotoAlbumEdit(dlgObj, a_id, false, false );
}

function UpdateValidDate(type){
  var formid=document.getElementById( "validform" );

  if( confirm('掲載日を変更しますか？') == false ){
      return false;
  }
  var valid_date="";
  valid_date += formid.elements["yy"].value;
  valid_date += "-" + formid.elements["mm"].value;
  valid_date += "-" + formid.elements["dd"].value;
  valid_date += " " + formid.elements["hh"].value;
  valid_date += ":" + formid.elements["nn"].value;
/*日付チェック*/
  if(!chk_date(formid.elements["yy"].value,formid.elements["mm"].value,formid.elements["dd"].value) || !chk_time(formid.elements["hh"].value,formid.elements["nn"].value,null)){
    window.alert("正しい掲載日をを入力して下さい");
    return;
  }

/*時刻チェック*/
  if(!chk_time(formid.elements["hh"].value,formid.elements["nn"].value,0)){
    window.alert("正しい掲載時刻を入力して下さい");
    return;
  }

  initXMLHttp_f();
  
  var m_id	 = formid.elements["m_id"].value;
  var v_m_id = formid.elements["v_id"].value;
  
  // アルバムに対しての処理の場合
  if ( type == 'album' ) {
    var a_id = formid.elements["a_id"].value;
    var url  = '/' + PATH_PERSONALALBUM + '/update-valid-date?ajax=1';
    var data = 'a_id=' + a_id + '&m_id=' + m_id + '&v_m_id=' + v_m_id + '&valid_date=' + valid_date ;
  
  } else {
    var p_id = formid.elements["p_id"].value;
    var url  = '/' + PATH_PERSONALPHOTO + '/update-valid-date?ajax=1';
    var data = 'p_id=' + p_id + '&m_id=' + m_id + '&v_m_id=' + v_m_id + '&valid_date=' + valid_date ;
  }
  
  var objids   = new Array(document.getElementById('edit_valid_date'));

  xmlhttp_f.open('POST', url, true);
  xmlhttp_f.onreadystatechange = function () {checkResult_f(objids);};
  xmlhttp_f.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
  xmlhttp_f.send(data);
  
/*
  formid.method="POST";
  formid.elements["type"].value = "upd_validdate";
  formid.elements["valid_date"].value = valid_date;
  formid.submit();
  return false;*/
}

function UpdateCreative(){
  var formid=document.getElementById( "creativeform" );

  if( confirm('クリエイティブコモンズを変更しますか？') == false ){
      return false;
  }

  var p_id     = formid.elements["p_id"].value;
  var m_id     = formid.elements["m_id"].value;
  var v_m_id   = formid.elements["v_id"].value;
  var creative = formid.elements["creative"].value;

  initXMLHttp_f();
  
  var url = '/' + PATH_PERSONALPHOTO + '/update-creative?ajax=1';
  var data = 'p_id=' + p_id + '&m_id=' + m_id + '&v_m_id=' + v_m_id + '&creative=' + creative;

  var objid   = new Array(document.getElementById('edit_creative'));
  
  xmlhttp_f.open('POST', url, true);
  xmlhttp_f.onreadystatechange = function () {checkResult_f(objid);};
  xmlhttp_f.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
  xmlhttp_f.send(data);
/*
  formid.method="POST";
  formid.elements["type"].value = "upd_creative";
  formid.submit();
  return false;*/
}

function pf_AddTag( dlgObj, arg_tag, arg_p_id, arg_own_id )
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//URLを合成する
	var url = '/' + PATH_PERSONALPHOTO + '/addtag/?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendPhotoData(arg_p_id, arg_own_id);
	
	data += '&tag=' + encodeURIComponent(arg_tag);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispTagUpdate(arg_response, 'id_tag_area');
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
		
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_DeleteTag(dlgObj, tag_id, arg_p_id, arg_own_id )
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//URLを合成する
	var url = '/' + PATH_PERSONALPHOTO + '/deletetag/?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendPhotoData();
	
	data += '&tag_id=' + tag_id;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispTagUpdate(arg_response, 'id_tag_area');
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function UpdateFavorite( form, p_id ,type )
{
	// フォームが定義されていない、またはアルバムに対しての場合
	if( form == undefined || type == 'album' ){
		var form = "favoriteform";
	}
	var formid=document.getElementById( form );

	if( confirm('お気に入りメンバー公開の設定を変更しますか？') == false ){
		return false;
	}
	
	// アルバムが対象の場合
	if ( type == 'album' ) {
		var a_id	 = formid.elements["a_id"].value;
		var ext		 = '';
	
	} else {
		// 引数にPIDがなければformから取得
		if ( p_id == undefined ) {
			var p_id	 = formid.elements["p_id"].value;
			var ext		 = '';
		} else {
			var ext		 = '_' + p_id;
		}
		
	}
	
	var m_id	 = formid.elements["m_id"].value;
	var v_m_id	 = formid.elements["v_id"].value;
	
	//入力チェック
	var privacyObj = formid.elements('privacy');
	for ( var i=0;i < privacyObj.length;i++){
		if ( !privacyObj[i].checked ) {
			continue;
		}
		var privacy = privacyObj[i].value;
		//検査はお気に入り個別公開のみ
		if ( privacyObj[i].value == PRIVACY_FAVORITE ){
			var isCheck = false;
			var favArray = new Array();
			var k = 0;
			var grpObj = formid.elements('favoritegrp' + ext + '[]');
			for ( var j=0;j < grpObj.length;j++){
				if ( !grpObj[j].checked ){
					continue;
				}
				//1件でも選択されていればOK
				isCheck = true;
				// 配列に保管する
				favArray[k] = grpObj[j].value;
				k++;
			}
			
			if ( !isCheck ){
				alert('お気に入りグループが未選択です。\nお気に入りグループを一つ以上選択して下さい。');
				return;
			}
		}
	}
	
	// アルバムが対象の場合
	if ( type == 'album' ) {
		var url = '/' + PATH_PERSONALALBUM + '/update-privacy?ajax=1';
		var data = 'a_id=' + a_id + '&m_id=' + m_id + '&v_m_id=' + v_m_id + '&privacy=' + privacy + '&favoritegrp=' + favArray;
	
	} else {
		var url = '/' + PATH_PERSONALPHOTO + '/update-privacy?ajax=1';
		var data = 'p_id=' + p_id + '&m_id=' + m_id + '&v_m_id=' + v_m_id + '&privacy=' + privacy + '&favoritegrp=' + favArray;
	}
	
	initXMLHttp_f();
	
	var objids = new Array(document.getElementById('edit_icon' + ext), document.getElementById('edit_privacy' + ext));
	
	xmlhttp_f.open('POST', url, true);
	xmlhttp_f.onreadystatechange = function () {checkResult_f(objids);};
	xmlhttp_f.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
 	xmlhttp_f.send(data);
/*	
	formid.method="POST";
	formid.elements["type"].value = "upd_privacy";
	if( p_id != undefined ){
		formid.elements["p_id"].value = p_id;
	}
	formid.submit();
	return false;*/
}

function InsertFavorite(){
  var formid=document.getElementById( "favoritecntform" );

  if( confirm('お気に入り写真に登録しますか？') == false ){
      return false;
  }
  formid.method="POST";
  formid.elements["type"].value = "ins_favorite";
  formid.submit();
  return false;
}

function DeleteFavorite(){
  var formid=document.getElementById( "favoriteform" );

  if( confirm('お気に入り写真から削除しますか？') == false ){
      return false;
  }
  formid.method="POST";
  formid.elements["type"].value = "del_favorite";
  formid.submit();
  return false;
}

function DeletePhoto(form,p_id){
  if( form == undefined ){
      var form = "favoriteform";
  }

  var formid=document.getElementById( form );

  if( confirm('写真を削除しますか？') == false ){
      return false;
  }
  formid.method="POST";
  formid.elements["type"].value = "del_photo";
  if( p_id != undefined ){
  	formid.elements["p_id"].value = p_id;
  }
  formid.submit();
  return false;
}


/******************/
/* アルバム削除　 */
/******************/
function DeleteAlbum(form,a_id){
  if( form == undefined ){
      var form = "favoriteform";
  }

  var formid=document.getElementById( form );

  if( confirm('アルバムを削除しますか？') == false ){
      return false;
  }
  formid.method="POST";
  formid.elements["type"].value = "del_photo";
  if( a_id != undefined ){
  	formid.elements["a_id"].value = a_id;
  }
  formid.submit();
  return false;
}


/**************************/
/* お気に入りアルバム追加 */
/**************************/
function InsertFavoriteAlbum(){
  var formid=document.getElementById( "favoriteAlbumform" );

  if( confirm('お気に入りアルバムに登録しますか？') == false ){
      return false;
  }
  formid.method="POST";
  formid.elements["type"].value = "ins_favorite";
  formid.submit();
  return false;
}

/**************************/
/* お気に入りメンバー追加 */
/**************************/
function InsertFavoriteMember(){
  var formid=document.getElementById( "favoriteMemberform" );

  if( confirm('お気に入りメンバーに登録しますか？') == false ){
      return false;
  }
  formid.method="POST";
  formid.elements["type"].value = "ins_favoriteMember";
  formid.submit();
  return false;
}


/**************************/
/* お気に入り写真削除　　 */
/**************************/
function deleteFavPhoto(photoID){
  var formid=document.getElementById( "delFavP" );

  if( confirm('この写真をお気に入りから削除しますか？') == false ){
      return;
  }
  formid.method="POST";
  formid.elements["type"].value = "del_favorite";
  formid.elements["p_id"].value = photoID;
/*window.alert(photoID);*/
/*return;*/
  formid.submit();
  return false;
}




/**************************/
/* お気に入りアルバム削除 */
/**************************/
function deleteFavAlbum(albumID){
  var formid=document.getElementById( "delFavA" );

  if( confirm('このアルバムをお気に入りから削除しますか？') == false ){
      return;
  }
  formid.method="POST";
  formid.elements["type"].value = "del_favorite";
  formid.elements["a_id"].value = albumID;
/*window.alert(albumID);*/
/*return;*/
  formid.submit();
  return false;
}


/**
 * ターゲットの写真ID/アルバムを返却する
 *
 * @param     なし
 * @return    写真ID(エラー：0 正常：ターゲットの写真ID)
 */
function pf_getTarget_obj_id()
{
	var obj = document.getElementById('tg_obj_id');
	if ( obj != null ){
		return obj.value;
	}
	else{
		return 0;
	}
}

/**
 * ターゲットの写真の所有者メンバIDを返却する
 *
 * @param     なし
 * @return    写真ID(エラー：0 正常：所有者メンバID)
 */
function pf_getOwner_m_id()
{
	var obj = document.getElementById('own_m_id');
	if ( obj != null ){
		return obj.value;
	}
	else{
		return 0;
	}
}

/**
 * ターゲットのコミュニティIDを返却する
 *
 * @param     なし
 * @return    エラー：0 正常：コミュニティID
 */
function pf_getOwner_cmmnty_id()
{
	var obj = document.getElementById('cmmnty_id');
	if ( obj != null ){
		return obj.value;
	}
	else{
		return 0;
	}
}

/**
 * 指定したエラー番号に該当するエラーメッセージを返却する(ajax処理用のエラーメッセージ)
 *
 * 本関数はajax通信時に発生しているエラーメッセージについてのみ実装
 * アプリケーション固有のメッセージについては別途定義すること
 * 
 * @param     obj_id	オブジェクトID
 * @param     inhtml	オブジェクトに設定するデータ
 * @return    なし
 */
function util_GetAjaxErrMsg(errNo)
{
	var errMsg = '';
	
	switch ( errNo ){
		case 1:
			errMsg = '入力した情報が取得できません';
			break;
		case 2:
			errMsg = 'サーバとの通信を開始できませんでした';
			break;
		case 3:
			errMsg = '送信エラーが発生しました';
			break;
		case 4:
			errMsg = 'データ送信を開始しました';
			break;
		case 5:
			errMsg = 'データ処理が正常に完了しました';
			break;
		case 96:
			errMsg = 'サーバからの応答がありませんでした';
			break;
		case 97:
			errMsg = '受信データの解析に失敗しました';
			break;
		case 98:
			errMsg = 'ネットワーク上で障害が発生しました';
			break;
		case 99:
			errMsg = 'ネットワーク上で障害が発生しました';
			break;
		default:
			errMsg = '不明なエラーが発生しました';
			break;
	}
	
	return errMsg;
}

/**
 * 指定したオブジェクトIDの内容を更新する
 *
 * @param     obj_id	オブジェクトID
 * @param     inhtml	オブジェクトに設定するデータ
 * @return    なし
 */
function util_SetInnnerHTML(obj_ids, inhtmls)
{
	var idArray = obj_ids.split(',');
	var htmlArray = inhtmls.split(',');
	
	var idlen   = idArray.length;
	var htmllen = htmlArray.length;

	for (var i=0; i < idlen; i++){
		var obj = document.getElementById(idArray[i]);
		if ( obj != null ){
			if ( htmllen == 0 ){
				obj.innerHTML = '';
			}
			else{
				//値を保持している場合のみ採用
				if ( i < htmllen ){
//					alert(htmlArray[i])
					obj.innerHTML = htmlArray[i];
				}
			}
		}
//		else{
//			alert(i);
//		}
	}

}


/**
 * 送信ステータス保持クラス
 *
 * @property     status	処理ステータス(内部保持形式)
 * @property     errMsg	エラーメッセージ(errオブジェクトのdescription)
 * 
 */
function util_ClsSendStatus()
{
	this.status = (-1);
	this.errMsg = '';
}

/**
 * httpクライアントによるPOST送信を実行する
 *
 * 	関数の詳細説明
 *
 * @param     httpObj		HTTPクライアント
 * @param     url			アクセス先URL
 * @param     data			送信POSTデータ 
 * @param     sendStatus	送信ステータス保持クラス
 * @return    送信ステータス
 */
function util_SendPost(httpObj, url, data, err_objid)
{
	var status = (-1);
	var errMsg = '';
	
	try{
		status = 1;
		window.status = '';
		
		status = 2;
		//メソッドタイプをPOSTで開く
		httpObj.open('POST', url, true);

		status = 3;
		//リクエストヘッダを合成する
		httpObj.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
	
		status = 4;
		//データを送信する
		httpObj.send(data);

		//送信処理成功
		status = 0;
	} 
	catch (e) {
		status = (-99);
		errMsg = e.description;
	}
	
	if ( status != 0 ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(3) + errMsg);
	}
	else{
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(4));
	}
	
	//処理結果を返却する
	return status;
}

/**
 * httpクライアントが受信したレスポンスの状況によって指定された処理を実行する関数
 *
 * 	実際の処理は引き数で渡した関数内で実装する
 *
 * @param     httpObj		HTTPクライアント
 * @param     resultFunc	正常応答時の実行用関数（必須）
 * @param     errFunc		処理エラー時の実行用関数(省略時はステータスバーに表示)
 * @param     nwerrFunc		NWエラー時の実行用関数(省略時はステータスバーに表示)
 * @return    なし
 */
function util_ResponseFunc(httpObj, resultFunc, errFunc, nwerrFunc, dlgControler)
{
	try {
		if(httpObj.readyState == 4 ) {
			//処理エラーによる画面制御漏れがあるといけないので処理を開始する前に画面を元に戻しておく(モーダルコントロールを処理中で閉じることがあり、その場合はコントロールの制御が実施できない)
			if ( dlgControler != null && typeof(dlgControler) != 'undefined' ){
				dlgControler.cancel();
			}
		
			if(httpObj.status == 200) {
//				alert('正常応答時の処理')
				//正常応答時の処理
				resultFunc( httpObj );
			}
			else{
				//NW異常応答時の処理
				if ( typeof(nwerrFunc) != 'undefined'){
//					alert('NW異常応答時の処理')
					nwerrFunc( httpObj );
				}
				else{
					var status = "httpStatus=" + httpObj.status;
					status += ",httpStatusText=" + httpObj.statusText;
					
					window.status = status;
				}
			}
			
		}
	} catch (e) {
		if ( dlgControler != null && typeof(dlgControler) != 'undefined' ){
			dlgControler.cancel();
		}
		
//		alert('HTTP異常時の処理')
		if ( typeof(errFunc) != 'undefined'){
			errFunc( e );
		}
		else{
//			window.status = e.description ;
			window.status = e;
		}
	}
}

/**
 * レスポンス正常受信時のデフォルト処理関数
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     err_objids	エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     httpObj		HTTPクライアント
 * @param     dlgObj		処理を呼び出したダイヤログオブジェクト(null時はafterFuncを指定)
 * @param     afterFunc		処理を呼び出した後に実行する処理関数(dlgObjとの併用不可。未指定時はメッセージを指定位置に表示する)
 * @return    なし
 */
function util_DefaultResultFunc(err_objids, httpObj, dlgObj, afterFunc)
{
	try {
//		alert(httpObj.responseText);

		eval("var response = ("+ httpObj.responseText +")");
		
		//戻りがないまたは空の場合はNG
//		if ( response == null || response[0] == null || response[0] == '' ){
		if ( response == null ){
//			alert('戻りがないまたは空');
			util_SetInnnerHTML(err_objids[0], util_GetAjaxErrMsg(96));
		}
		else{
			//先頭は処理結果の識別
			if ( response[0] ){
				if ( afterFunc == null || typeof( afterFunc ) == 'undefined' ){
					if ( dlgObj == null || typeof( dlgObj ) == 'undefined' ){
						//alert('正常受信時のメッセージ表示');
						util_SetInnnerHTML(err_objids[0], util_GetAjaxErrMsg(5));
					}
					else{
						//alert('正常処理のためダイヤログを閉じる');
						util_SetInnnerHTML(err_objids[0], '');
						//正常処理のためダイヤログを閉じる
						dlgObj.close();
					}
				}
				else{
					//alert('正常受信時の後処理');
					//処正常受信時の後処理を実行する
					afterFunc(response);
				}
			}
			else{
				//alert('正常受信時(エラー処理)の後処理');
				var len = err_objids.length;
				var reslen = response.length;
				
				for ( var i=0, resIdx=1; i < len; i++, resIdx++){
					if ( resIdx < reslen ){
						util_SetInnnerHTML(err_objids[i], response[resIdx]);
					}
				}
			}
		}
	} catch (e) {
		//alert('受信データ解析エラー');
		var errMsg = util_GetAjaxErrMsg(97);
//		errMsg += '<br/>[' + e.description + ']';
//		errMsg += '<br/>[' + e + ']';

		util_SetInnnerHTML(err_objids[0], errMsg);
	}
}

/**
 * NWエラー発生時のデフォルト処理関数
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     err_objids	エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     httpObj		HTTPクライアント
 * @return    なし
 */
function util_DefaultNWErrFunc(err_objids, httpObj)
{
	var errMsg = util_GetAjaxErrMsg(98);
	
	if ( err_objids != '' ){
//		errMsg += '<br/>';
//		errMsg += 'httpStatus=' + httpObj.status + '<br/>';
//		errMsg += 'httpStatusText=' + httpObj.statusText + '<br/>';
		
		util_SetInnnerHTML( err_objids, errMsg);
	}
	else{
//		errMsg += '\n';
//		errMsg += 'httpStatus=' + httpObj.status + '\n';
//		errMsg += 'httpStatusText=' + httpObj.statusText + '\n';

		alert(errMsg);
	}
}

/**
 * 処理エラー発生時のデフォルト処理関数
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     err_objids	エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     err			エラーオブジェクト
 * @return    なし
 */
function util_DefaultErrFunc(err_objids, err)
{
	var errMsg = util_GetAjaxErrMsg(99);
	
	if ( err_objids != '' ){
//		errMsg += '<br/>[' + err.description + ']';
//		errMsg += '<br/>[' + err + ']';
		util_SetInnnerHTML( err_objids, errMsg);
	}
	else{
//		errMsg += '\n[' + err.description + ']';
//		errMsg += '\n[' + err + ']';
		alert(errMsg);
	}
}

function pf_makeSendPhotoData(arg_p_id, arg_own_id)
{
	var data = "";
	
	//対象情報を特定するパラメータを取得する
	var p_id = arg_p_id;
	var own_m_id = arg_own_id;
	
	if ( typeof(arg_p_id) == 'undefined' ){
		p_id = pf_getTarget_obj_id();
	}
	if ( typeof(arg_own_id) == 'undefined' ){
		own_m_id = pf_getOwner_m_id();
	}

	data += 'p_id=' + p_id;
	data += '&m_id=' + own_m_id;

	return data;
}
function pf_makeSendAlbumData(arg_a_id, arg_own_id)
{
	var data = "";
	
	//対象情報を特定するパラメータを取得する
	var a_id = arg_a_id;
	var own_m_id = arg_own_id;
	
	if ( typeof(arg_a_id) == 'undefined' ){
		a_id = pf_getTarget_obj_id();
	}
	if ( typeof(arg_own_id) == 'undefined' ){
		own_m_id = pf_getOwner_m_id();
	}

	data += 'a_id=' + a_id;
	data += '&m_id=' + own_m_id;

	return data;
}

function pf_makeSendTopicData(arg_topic_id, arg_cmmnty_id)
{
	var data = "";
	
	//対象情報を特定するパラメータを取得する
	var topic_id = arg_topic_id
	var cmmnty_id = arg_cmmnty_id;
	
	if ( typeof(arg_topic_id) == 'undefined' ){
		topic_id = pf_getTarget_obj_id();
	}
	if ( typeof(arg_cmmnty_id) == 'undefined' ){
		cmmnty_id = pf_getOwner_cmmnty_id();
	}

	data += 'topic_id=' + topic_id;
	data += '&cmmnty_id=' + cmmnty_id;

	return data;
}

function pf_UpdatePrivacy(dlgObj, up_ctrl_id, arg_target_id, arg_type)
{
	var err_objid = 'dlg_Privacy_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//選択項目を取得する
	var sel_id = cmn_checkRadioValue('dlg_allow_privacy');
	if ( sel_id < 0 ){
		util_SetInnnerHTML( err_objid, util_GetAjaxErrMsg(1));
		return false;
	}

	//選択されている値を取得する
	var favArray = new Array();
	if ( !cmn_isAvailPrivacy('dlg_allow_privacy','sel_favoritegrp') ) {
		alert('お気に入りグループが未選択です。\nお気に入りグループを一つ以上選択して下さい。');
		return false;
	}
	else {
		favArray = cmn_checkchkboxValueArray('sel_favoritegrp');	
	}
	
	//POSTデータを合成する
	var data = '';
	var url = '';
	var unique_id = 0;
	if ( typeof(arg_type) != 'undefined' && arg_type == 'album' ){
		//URLを合成する
		url = '/' + PATH_PERSONALALBUM + '/updateprivacy?ajax=1';
		data = pf_makeSendAlbumData(arg_target_id);
		//対象情報を特定するパラメータを取得する
		unique_id = arg_target_id;
		if ( typeof(arg_target_id) == 'undefined' ){
			unique_id = pf_getTarget_obj_id();
		}
	}
	else if ( typeof(arg_type) != 'undefined' && arg_type == 'p_list' ){
		//URLを合成する
		url = '/' + PATH_PERSONALPHOTO + '/updateprivacylist?ajax=1';
		data = pf_makeSendPhotoData(arg_target_id);
		
		//対象情報を特定するパラメータを取得する
		unique_id = arg_target_id;
		if ( typeof(arg_target_id) == 'undefined' ){
			unique_id = pf_getTarget_obj_id();
		}
	}
	else{
		//URLを合成する
		url = '/' + PATH_PERSONALPHOTO + '/updateprivacy?ajax=1';
		
		data = pf_makeSendPhotoData(arg_target_id);
		
		//対象情報を特定するパラメータを取得する
		unique_id = arg_target_id;
		if ( typeof(arg_target_id) == 'undefined' ){
			unique_id = pf_getTarget_obj_id();
		}
	}

	data += '&privacy=' + sel_id;
	data += '&favoritegrp=' + favArray;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispPrivacyUpdate(arg_response, up_ctrl_id);
		pfctrl_UpdatePrivacyInfo(unique_id, sel_id, favArray.join(','));
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_DlgControler( dlgObj, new Array('dlg_Privacy_body', 'dlg_validdate_btnarea'));
	dlgControler.start();
		
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc('', arg)}, 
												function(arg){util_DefaultNWErrFunc('', arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_updatePhotoInfo(dlgObj, err_objid, ctrl_id, controller, action, paramName, disable_ctrlIdArray, is_sel_ctrl, funclist, optData)
{
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//選択項目を取得する
	var sel_id = (-1);
	if ( typeof(is_sel_ctrl) == 'undefined' || is_sel_ctrl == null || !is_sel_ctrl ){
		sel_id = cmn_checkRadioValue(ctrl_id);
	}
	else{
		sel_id = cmn_selectOptValue(ctrl_id);
	}
	if ( sel_id < 0 ){
		util_SetInnnerHTML( err_objid, util_GetAjaxErrMsg(1));
		return false;
	}
	
	//URLを合成する
	var url = '/' + controller + '/' + action + '/?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendPhotoData();

	data += '&' + paramName +'=' + sel_id;
	if ( typeof(optData) != 'undefined' && optData != null ){
		data += optData;
	}

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		if ( typeof(funclist) != 'undefined'){
			funclist(arg_response);
		}
		util_SetInnnerHTML(err_objid,'');
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_DlgControler( dlgObj, disable_ctrlIdArray);
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

/**
 * コメントの書き込み属性を変更する
 *
 * 	関数の詳細説明
 *
 * @param     ダイヤログオブジェクト
 * @return    処理結果（エラー：false 成功：true）
 */
function pf_UpdateAllowCommment(dlgObj)
{
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_allow_comment) ){
		cls_allow_comment = new pf_cls_allow_comment();
	}
	cls_allow_comment.setChecked();

	return pf_updatePhotoInfo(dlgObj, 'dlg_allow_comment_err', 'dlg_allow_comment', PATH_PERSONALPHOTO, 'updateallowcomment', 'allowcomment', new Array('dlg_allow_comment_body', 'dlg_allow_comment_btnarea'));
}
function pf_UpdateTakenDay(dlgObj)
{
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_Taken) ){
		cls_Taken = new pf_cls_Taken();
	}
	cls_Taken.setChecked();

	return pf_updatePhotoInfo(dlgObj, 'dlg_TakenDay_err', 'dlg_hidetaken', PATH_PERSONALPHOTO, 'updatetakenday', 'hidetaken', new Array('dlg_TakenDay_body','dlg_TakenDay_btnarea'));
}

function pf_UpdateAllowTag(dlgObj)
{
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_allow_tag) ){
		cls_allow_tag = new pf_cls_allow_tag();
	}
	cls_allow_tag.setChecked();

	return pf_updatePhotoInfo(dlgObj, 'dlg_allowtag_err', 'dlg_allowtag', PATH_PERSONALPHOTO, 'updateallowtag', 'allowtag', new Array('dlg_allowtag_body','dlg_allowtag_btnarea'));
}

function pf_UpdateHideExif(dlgObj)
{
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_hideexif) ){
		cls_hideexif = new pf_cls_hideexif();
	}
	cls_hideexif.setChecked();

	return pf_updatePhotoInfo(dlgObj, 'dlg_hideexif_err', 'dlg_hideexif', PATH_PERSONALPHOTO, 'updatehideexif', 'hideexif', new Array('dlg_hideexif_body','dlg_hideexif_btnarea'));
}

function pf_UpdateAllowDownLoad(dlgObj)
{
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_allow_dwld) ){
		cls_allow_dwld = new pf_cls_allow_download();
	}
	cls_allow_dwld.setChecked();

	return pf_updatePhotoInfo(dlgObj, 'dlg_allowdownload_err', 'dlg_allowdownload', PATH_PERSONALPHOTO, 'updateallowdownload', 'allowdownload', new Array('dlg_allowdownload_body','dlg_allowdownload_btnarea'), false, pf_dispAllowDownLoadUpdate);
}

function pf_UpdateCreativeCommons(dlgObj)
{
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_allow_comment) ){
		cls_allow_cc = new pf_cls_allow_cc();
	}
	cls_allow_cc.setChecked();

	return pf_updatePhotoInfo(dlgObj, 'dlg_CreativeCommons_err', 'dlg_creative', PATH_PERSONALPHOTO, 'updatecreative', 'creative', new Array('dlg_CreativeCommons_body','dlg_CreativeCommons_btnarea'), true, pf_dispCCUpdate);
}

function pf_updateAlbumInfo(dlgObj, err_objid, ctrl_id, controller, action, paramName, disable_ctrlIdArray, is_sel_ctrl, funclist, optData)
{
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//選択項目を取得する
	var sel_id = (-1);
	if ( typeof(is_sel_ctrl) == 'undefined' || is_sel_ctrl == null || !is_sel_ctrl ){
		sel_id = cmn_checkRadioValue(ctrl_id);
	}
	else{
		sel_id = cmn_selectOptValue(ctrl_id);
	}
	if ( sel_id < 0 ){
		util_SetInnnerHTML( err_objid, util_GetAjaxErrMsg(1));
		return false;
	}
	
	//URLを合成する
	var url = '/' + controller + '/' + action + '/?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendAlbumData();

	data += '&' + paramName +'=' + sel_id;
	if ( typeof(optData) != 'undefined' && optData != null ){
		data += optData;
	}

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		if ( typeof(funclist) != 'undefined'){
			funclist(arg_response);
		}
		util_SetInnnerHTML(err_objid,'');
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_DlgControler( dlgObj, disable_ctrlIdArray);
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_UpdateAlbumAllowCommment(dlgObj)
{
	return pf_updateAlbumInfo(dlgObj, 'dlg_allow_comment_err', 'dlg_allow_comment', PATH_PERSONALALBUM, 'updateallowcomment', 'allowcomment', new Array('dlg_allow_comment_body','dlg_allow_comment_btnarea'));
}


function pf_DeletePhoto(dlgObj, arg_p_id)
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//URLを合成する
	var url = '/' + PATH_PERSONALPHOTO + '/deletephoto/?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendPhotoData(arg_p_id);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();

	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		pf_JumpNewPage(arg_response);
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_DeleteAlbum(dlgObj, arg_type, arg_a_id, arg_m_id)
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	//POSTデータを合成する
	var data = pf_makeSendAlbumData(arg_a_id, arg_m_id);
	//URLを合成する
	var url = '/' + PATH_PERSONALALBUM + '/deletealbum/?ajax=1';
	
	//追加データを合成する
	if ( !cmn_isset(arg_type) ){
		data += '&from_view=' + 'choice';
	}
	else{
		data += '&from_view=' + arg_type;
	}

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));

	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		pf_JumpNewPage(arg_response);
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_DeleteTopic(dlgObj, arg_topic_id)
{
	var err_objid = 'dlg_confirm_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//URLを合成する
	var url = '/' + PATH_PERSONALCOMMUNITY + '/bbsdelete/?ajax=1';

	//POSTデータを合成する
	var data = pf_makeSendTopicData(arg_topic_id);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		pf_JumpNewPage(arg_response);
	}
		
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}
function pf_JumpNewPage(arg_response)
{
//	alert(arg_response);
	
	if ( arg_response.length > 1 ){
		var tmp_url = arg_response[1];
		
		document.location.href = tmp_url;
	}
}


function pf_UpdateValidDate(dlgObj, arg_type)
{
	var err_objid = 'dlg_validdate_err';
	
	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//現在の入力内容を保持する
	if ( !cmn_isset(cls_valid) ){
		cls_valid = new pf_cls_validdate();
	}
	cls_valid.setDate();
	
	/*日付チェック*/
	if ( !cls_valid.isAvailDate() ) {
		util_SetInnnerHTML(err_objid,'正しい掲載日を入力して下さい');
		return false;
	}

	/*時刻チェック*/
	if ( !cls_valid.isAvailTime() ) { 
		util_SetInnnerHTML(err_objid,'正しい掲載時刻を入力して下さい');
		return false;
	}
	
	var valid_date = cls_valid.getDate();

	//POSTデータを合成する
	var data = '';
	var url = '';
	if ( typeof(arg_type) != 'undefined' && arg_type == 'album' ){
		//URLを合成する
		url  = '/' + PATH_PERSONALALBUM + '/updatevaliddate?ajax=1';
		
		data = pf_makeSendAlbumData();
	}
	else{
		//URLを合成する
		url = '/' + PATH_PERSONALPHOTO + '/updatevaliddate?ajax=1';
		
		data = pf_makeSendPhotoData();
	}

	data += '&valid_date=' + valid_date;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispValideDateUpdate(arg_response, 'edit_valid_date');
		//エラーメッセージの初期化
		util_SetInnnerHTML(err_objid,'');
		
		dlgObj.close();
	}

	var dlgControler = new pf_cls_DlgControler( dlgObj, new Array('dlg_validdate_bodyarea', 'dlg_validdate_btnarea'));
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_RegFavoriteMember(dlgObj)
{
	var err_objid = 'dlg_regfav_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	//選択されている値を取得する
	var v_m_id = cmn_getControlById( "dlg_regfav_v_m_id" ).value;
	var p_m_id = cmn_getControlById( "dlg_regfav_p_m_id" ).value;

	var favArray = new Array();
	favArray = cmn_checkchkboxValueArray('dlg_regfav_chk_favorite_grp');
	
	//追加するグループを設定
	var f_grp = favArray.join(',');
	
	var url = '/' + PATH_FAVORITEMEMBER + '/regist-group?ajax=1';

	//POSTデータを合成する
	var data = '';
	
	data += 'v_m_id=' + v_m_id;
	data += '&p_m_id=' + p_m_id;
	data += '&f_grp=' + f_grp;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		pf_dispregFavUpdate(arg_response, 'edit_fav_member');
		util_SetInnnerHTML(err_objid,'');
		pfctrl_UpdateFavMemberInfo(p_m_id, favArray.join(','));
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_DlgControler( dlgObj, new Array('dlg_regfav_body', 'dlg_regfav_btnarea'));
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_RegAd(dlgObj)
{
	var err_objid = 'dlg_regad_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	var adArray = new Array();
	adArray = cmn_checkchkboxValueArray('dlg_regad_chk_ad');

	//追加するグループを設定
	var ads = adArray.join(',');

	var url = '/' + PATH_ACCOUNTMEMBER + '/set-ad-visibility?ajax=1';

	//POSTデータを合成する
	var data = '';
	data += 'ads=' + ads;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();

	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var objids = new Array(document.getElementById(err_objid));

	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		util_SetInnnerHTML(err_objid,'');
		dlgObj.close();
        location.reload(true);
	}

	var dlgControler = new pf_cls_DlgControler( dlgObj, new Array('dlg_regad_body', 'dlg_regad_btnarea'));
	dlgControler.start();

	httpObj.onreadystatechange = function(){
											util_ResponseFunc(
												httpObj,
												function(arg){pf_AdVisibilityResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)},
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												)
											};

	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);

	return true;
}

/**
 * レスポンス正常受信時のデフォルト処理関数
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     err_objids	エラーメッセージ表示用のコントロールID(空文字指定時はalert)
 * @param     httpObj		HTTPクライアント
 * @param     dlgObj		処理を呼び出したダイヤログオブジェクト(null時はafterFuncを指定)
 * @param     afterFunc		処理を呼び出した後に実行する処理関数(dlgObjとの併用不可。未指定時はメッセージを指定位置に表示する)
 * @return    なし
 */
function pf_AdVisibilityResultFunc(err_objids, httpObj, dlgObj, afterFunc)
{
	try {
//		alert(httpObj.responseText);

		eval("var response = ("+ httpObj.responseText +")");

		//戻りがないまたは空の場合はNG
//		if ( response == null || response[0] == null || response[0] == '' ){
		if ( response == null ){
//			alert('戻りがないまたは空');
			util_SetInnnerHTML(err_objids[0], util_GetAjaxErrMsg(96));
		}
		else{
			//先頭は処理結果の識別
			if ( response[0] ){
				if ( afterFunc == null || typeof( afterFunc ) == 'undefined' ){
					if ( dlgObj == null || typeof( dlgObj ) == 'undefined' ){
						//alert('正常受信時のメッセージ表示');
						util_SetInnnerHTML(err_objids[0], util_GetAjaxErrMsg(5));
					}
					else{
						//alert('正常処理のためダイヤログを閉じる');
						util_SetInnnerHTML(err_objids[0], '');
						//正常処理のためダイヤログを閉じる
						dlgObj.close();
                        location.reload(true);
					}
				}
				else{
					//alert('正常受信時の後処理');
					//処正常受信時の後処理を実行する
					afterFunc(response);
				}
			}
			else{
				//alert('正常受信時(エラー処理)の後処理');
				var len = err_objids.length;
				var reslen = response.length;

				for ( var i=0, resIdx=1; i < len; i++, resIdx++){
					if ( resIdx < reslen ){
						util_SetInnnerHTML(err_objids[i], response[resIdx]);
					}
				}
			}
		}
	} catch (e) {
		//alert('受信データ解析エラー');
		var errMsg = util_GetAjaxErrMsg(97);
//		errMsg += '<br/>[' + e.description + ']';
//		errMsg += '<br/>[' + e + ']';

		util_SetInnnerHTML(err_objids[0], errMsg);
	}
}

function pf_dispValideDateUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];
		
		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispPrivacyUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];
		
		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispAllowDownLoadUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];
		if ( !cmn_isset(ctrl_id) ){
			ctrl_id = 'edit_allowdownload';
		}

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispCCUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];
		if ( !cmn_isset(ctrl_id) ){
			ctrl_id = 'edit_creative';
		}

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispPostAlbum(arg_response, err_objid, ctrl_id)
{
	//alert('正常受信時のメッセージ表示');
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));
	
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_erasePrevNextAlbum(arg_response, err_objid, ctrl_id)
{
	var obj = cmn_getControlById(ctrl_id);
	if ( obj != null ){
		obj.innerHTML = '';
	}
}

function pf_dispPostCmmnty(arg_response, err_objid, ctrl_id)
{
	//alert('正常受信時のメッセージ表示');
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));
	
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_erasePrevNextCmmnty(arg_response, err_objid, ctrl_id)
{
	var obj = cmn_getControlById(ctrl_id);
	if ( obj != null ){
		obj.innerHTML = '';
	}
}

function pf_dispregFavUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];
		if ( !cmn_isset(ctrl_id) ){
			ctrl_id = 'edit_fav_member';
		}

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispTagUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispCheckComment(arg_response, err_objid, ctrl_id)
{
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));

	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];
		
		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispRegistComment(arg_response, err_objid, ctrl_id)
{
	pf_dispupdateComment(arg_response, err_objid, ctrl_id);
}

function pf_dispDeleteComment(arg_response, err_objid, ctrl_id)
{
	pf_dispupdateComment(arg_response, err_objid, ctrl_id);
}

function pf_dispupdateComment(arg_response, err_objid, ctrl_id)
{
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));
	util_SetInnnerHTML(ctrl_id, '');

	if ( arg_response.length > 2 ){
		var tmp_html = arg_response[1];
		var top_comment_id = arg_response[2];
		
		var update_ctrl_id = "comment_con_" + top_comment_id;
		
		var obj = cmn_getControlById(update_ctrl_id);
		if ( !cmn_isset(obj) ){
				//新規追加
			var new_obj = cmn_getNewElement('div');
			if ( cmn_isset(new_obj) ){
				cmn_setAttribute(new_obj, 'id', update_ctrl_id);
				new_obj.innerHTML = tmp_html;

				//親コンテナへの追加
				cmn_appendNewElement('id_last_comment', new_obj);
			}
		}
		else{
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispTitleUpdate(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_dispRegFavContents(arg_response, ctrl_id)
{
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

function pf_RegistMessage(is_check)
{
	var err_objid = 'id_errmsg';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	var comment = cmn_getTextValue( '' );
	
	var url = '';
	var data = '';
	
	if ( is_check ){
		url = '/' + PATH_MESSAGE + '/check-send-mail-entry?ajax=1';
	}
	else{
		url = '/' + PATH_MESSAGE + '/finish?ajax=1';
	}

	var send_target = cmn_selectOptValue('send_target');
	var send_target_text = cmn_selectOptText('send_target');
	var specified_target = cmn_getTextValue('selected_mid');
	var subject = cmn_getTextValue('subject', '');
	var message = cmn_getTextValue('message', '');

	//POSTデータを合成する
	data += 'send_target=' + send_target;
	data += '&recipient_mid=' + specified_target;
	data += '&subject=' + encodeURIComponent(subject);
	data += '&message=' + encodeURIComponent(message);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	//処理完了時のfunctionをセット
	var afterFunc = null;

	//メッセージフォーマットは以下の配列形式とする
	//検査OK：true, 宛先名, 件名、本文
	//検査NG：false,全体エラー,宛先エラー,件名エラー,本文エラー
	var errIds = new Array( err_objid, 'e_send_target', 'e_subject', 'e_message');
	var ctrl_idArray = new Array( 'id_preview_target', 'id_preview_subject', 'id_preview_message');
	
	if ( is_check ){
		afterFunc = function(arg_response){
			pf_dispMessagePreview(arg_response, err_objid, ctrl_idArray);
			cmn_visibleControls(new Array('id_input_area', 'id_finish'), false);
			cmn_visibleControls(new Array('id_preview_area', 'id_confirm'), true);
		}
	}
	else{
		afterFunc = function(arg_response){
			pf_dispMessageFinish(arg_response, err_objid, ctrl_idArray);
			cmn_visibleControls(new Array('id_input_area', 'id_finish'), false);
			cmn_visibleControls(new Array('id_confirm', 'id_preview_btn'), false);
			cmn_visibleControls(new Array('id_preview_area', 'id_finish'), true);
		}
	}
	
	var dlgControler = new pf_cls_DlgControler( null, new Array('id_preview_area', 'id_input_area'));
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(errIds, arg, null, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_dispMessageInput()
{
	cmn_visibleControls(new Array('id_preview_area', 'id_confirm'), false);
	cmn_visibleControls(new Array('id_input_area', 'id_finish'), true);
}

function pf_dispMessagePreview(arg_response, err_objid, ctrl_idArray )
{
	//alert('正常受信時のメッセージ表示');
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));
	
	if ( arg_response.length > 2 ){
		
		var len = ctrl_idArray.length;
		var reslen = arg_response.length;
		
		for ( var i=0, resIdx=1; i < len; i++, resIdx++){
			if ( resIdx < reslen ){
				util_SetInnnerHTML(ctrl_idArray[i], arg_response[resIdx]);
			}
		}
	}
}

function pf_dispMessageFinish(arg_response, err_objid, ctrl_idArray )
{
	//alert('正常受信時のメッセージ表示');
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));
	
	if ( arg_response.length > 2 ){
		
		var len = ctrl_idArray.length;
		var reslen = arg_response.length;
		
		for ( var i=0, resIdx=1; i < len; i++, resIdx++){
			if ( resIdx < reslen ){
				util_SetInnnerHTML(ctrl_idArray[i], arg_response[resIdx]);
			}
		}
	}
}

function pf_DeleteMessage(dlgObj, arg_type)
{
	var err_objid = 'dlg_confirm_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	var url = '';
	var msg_ids = '';

	if ( arg_type == 'recv_view' || arg_type == 'recv' ) {
		url = '/' + PATH_MESSAGE + '/deleterecv/?ajax=1';
	}
	else{
		url = '/' + PATH_MESSAGE + '/deletesend/?ajax=1';
	}
	
	if ( arg_type == 'recv_view' || arg_type == 'send_view' ) {
		var msg_id = cmn_getTextValue('msg_id');
		
		msg_ids = msg_id;
	}
	else{
		var id_Array = cmn_checkchkboxValueArray('msg_id[]');
		
		msg_ids = id_Array.join(',');
	}
	
	//POSTデータを合成する
	var data = '';
	data  = 'data_type=' + arg_type;
	data += '&msg_id=' + msg_ids;
	data += '&next=' + cmn_getTextValue('next', '');

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		pf_JumpNewPage(arg_response);
	}
			
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_SetReadFlagMessage(dlgObj, flag)
{
	var err_objid = 'dlg_confirm_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	var url = '';
	var msg_ids = '';

	url = '/' + PATH_MESSAGE + '/flagrecv/?ajax=1';

    var id_Array = cmn_checkchkboxValueArray('msg_id[]');
	msg_ids = id_Array.join(',');

	//POSTデータを合成する
	var data = '';
	data  = 'flag=' + flag;
	data += '&msg_id=' + msg_ids;
	data += '&next=' + cmn_getTextValue('next', '');

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();

	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}

	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();

	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		pf_JumpNewPage(arg_response);
	}

	httpObj.onreadystatechange = function(){
        util_ResponseFunc(
            httpObj,
            function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
            function(arg){util_DefaultErrFunc(err_objid, arg)},
            function(arg){util_DefaultNWErrFunc(err_objid, arg)},
            dlgControler
            )
        };

	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);

	return true;
}

function pf_RegistTopic(cmmnty_id, is_check)
{
	var err_objid = 'id_errmsg';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');

	var comment = cmn_getTextValue( '' );
	
	var url = '';
	var data = '';
	
	if ( is_check ){
		url = '/' + PATH_PERSONALCOMMUNITY + '/check-new-topic/' + cmmnty_id + '/?ajax=1';
	}
	else{
		url = '/' + PATH_PERSONALCOMMUNITY + '/bbs-regist/' + cmmnty_id + '/?ajax=1';
	}

	var subject = cmn_getTextValue('subject', '');
	var message = cmn_getTextValue('message', '');

	//POSTデータを合成する
	data += 'subject=' + encodeURIComponent(subject);
	data += '&message=' + encodeURIComponent(message);

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	//処理完了時のfunctionをセット
	var afterFunc = null;

	var errIds = new Array( err_objid, 'e_subject', 'e_message');
	
	var dlgControler = new pf_cls_DlgControler( null, new Array('id_preview_area', 'id_input_area'));
	dlgControler.start();
	
	if ( is_check ){
		afterFunc = function(arg_response){
			pf_dispTopicPreview(arg_response, err_objid, 'id_topic_preview');
			cmn_visibleControls(new Array('id_input_area'), false);
			cmn_visibleControls(new Array('id_preview_area', 'id_confirm'), true);
		}
	}
	else{
		afterFunc = function(arg_response){
			//ジャンプするまでの間コントロールを使用不可とする
			dlgControler.start();
			pf_JumpNewPage(arg_response);
		}
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(errIds, arg, null, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

function pf_dispTopicInput()
{
	cmn_visibleControls(new Array('id_preview_area', 'id_confirm'), false);
	cmn_visibleControls(new Array('id_input_area'), true);
}

function pf_dispTopicPreview(arg_response, err_objid, ctrl_id)
{
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));

	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
	
}

function pf_CmmntyInvite()
{
	var err_objid = 'id_errmsg';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	var url = '';
	
	var url = '/' + PATH_INVITE + '/send-community-mail/?ajax=1';
	
	var m_id_Elements = cmn_getControlsByName('m_id[]');
	var m_idArray = new Array(m_id_Elements.length);
	var m_ids = '';
	for (var i=0,len=m_id_Elements.length;i<len;i++) {
		if ( m_id_Elements[i].value != '' ) {
			if ( m_ids != '' ){
				m_ids += ',';
			}
			m_ids += m_id_Elements[i].value;
		}
	}
	
	var grpArray = cmn_checkchkboxValueArray('chk_favorite_grp[]');
	var cmmnty_id = cmn_getTextValue('cmmnty_id',0);
	var url_ticket = cmn_getTextValue('invite_url','');
	var title = cmn_getTextValue('title','');
	var message = cmn_getTextValue('message','');
	
	//POSTデータを合成する
	var data = '';

	data  = 'cmmnty_id=' + cmmnty_id;
	data += '&m_ids=' + m_ids;
	data += '&grp_ids=' + grpArray;
	data += '&title=' + encodeURIComponent(title);
	data += '&message=' + encodeURIComponent(message);
	data += '&url_ticket=' + url_ticket;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	var dlgControler = new pf_cls_DlgControler( null, new Array('input_form'));
	dlgControler.start();
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		pf_JumpNewPage(arg_response);
	}

	var errIds = new Array( err_objid, 'e_m_id', 'e_grp_id', 'e_message');
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(errIds, arg, null, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
/*
	var id_cnt = document.getElementById('id_cnt').value
	var m_ids = new Array(id_cnt);

	for (i=0; i < id_cnt; i++) {
		m_ids[i]	 = document.getElementById('m_id['+i+']').value;
	}
	
	var grpArray = cmn_checkchkboxValueArray('chk_favorite_grp[]');

	//hiddenに設定しておく
	document.getElementById('m_ids').value = m_ids;

	var message	 = escapeString(document.getElementById('message').value);

	var ids = new Array('e_m_id', 'e_grp_id', 'e_message');

	initXMLHttp();

	// 入力情報チェック
	var url = '/' + PATH_INVITE + '/check-community-entry?ajax=1';
	var data = '';
	data  = 'm_ids=' + m_ids;
	data += '&grp_ids=' + grpArray;
	data += '&message=' + message ;

    xmlhttp.open('POST', url, true);
    xmlhttp.onreadystatechange = function () {checkResult(ids);};
    xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
    xmlhttp.send(data);
*/
}

function pf_DeleteSendPhoto(dlgObj, send_id)
{
	var err_objid = 'dlg_confirm_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
//	var url = "/" + PATH_SENDPHOTOEDIT + "/delete/?ajax=1" + send_id;
	var url = "/" + PATH_SENDPHOTOEDIT + "/delete/?ajax=1";
	
	//POSTデータを合成する
	var data = '';
	data  = 'send_id=' + send_id;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ジャンプするまでの間コントロールを使用不可とする
		dlgControler.start();
		//ページ送りがない箇所なのでDOM処理のほうがベター
		pf_JumpNewPage(arg_response);
	}
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler 
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);
	
	return true;
}

/**
 * 住所検索処理を実行する
 *
 * 	個別対応が必要な場合は別途処理を実装すること
 *
 * @param     dlgObj		ダイヤログオブジェクト
 */
function pf_SearchAddress(dlgObj, controller, zip_head_id, zip_tail_id, address_id)
{
	var err_objid = 'dlg_confirm_err';

	//エラーメッセージの初期化
	util_SetInnnerHTML(err_objid,'');
	
	var url = "/" + controller + "/get-addr2/?ajax=1";

	var zip_head = cmn_getTextValue(zip_head_id,'');
	var zip_tail = cmn_getTextValue(zip_tail_id,'');
	if ( zip_head == '' || zip_tail == '' ) {
		util_SetInnnerHTML(err_objid, '郵便番号を入力して下さい');
		return false;
	}
	
	//POSTデータを合成する
	var data = '';
	
	data  = 'zip_code_head=' + zip_head;
	data += '&zip_code_tail=' + zip_tail;

	//httpクライアントのインスタンスを生成する
	var httpObj = util_initXMLHttp();
	
	if ( httpObj == null ){
		util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(2));
		return false;
	}
	
	//処理完了時のfunctionをセット
	var afterFunc = function(arg_response){
		//ページ送りがない箇所なのでDOM処理のほうがベター
		pf_dispAddress(arg_response, err_objid, address_id);
		dlgObj.close();
	}
	
	var dlgControler = new pf_cls_confDlgControler( dlgObj );
	dlgControler.start();
	
	httpObj.onreadystatechange = function(){ 
											util_ResponseFunc(
												httpObj, 
												function(arg){util_DefaultResultFunc(new Array(err_objid, address_id), arg, dlgObj, afterFunc)},
												function(arg){util_DefaultErrFunc(err_objid, arg)}, 
												function(arg){util_DefaultNWErrFunc(err_objid, arg)},
												dlgControler
												) 
											};
	
	//POSTで送信する
	util_SendPost(httpObj, url, data, err_objid);

	//処理待ち中の画面クリックでの確認画面クローズを停止	
	Control.Modal.overlay.stopObserving('click', Control.Modal.close);
	
	return true;
}

function pf_dispAddress(arg_response, err_objid, ctrl_id)
{
	//alert('正常受信時のメッセージ表示');
	util_SetInnnerHTML(err_objid, util_GetAjaxErrMsg(5));
	
	if ( arg_response.length > 1 ){
		var tmp_html = arg_response[1];

		var obj = cmn_getControlById(ctrl_id);
		if ( obj != null ){
			obj.innerHTML = tmp_html;
		}
	}
}

/***************************/
/* PHP通信モジュール初期化 */
/***************************/
function initXMLHttp_f() {
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	    xmlhttp_f = new XMLHttpRequest();
	    if (xmlhttp_f.overrideMimeType) {
		    xmlhttp_f.overrideMimeType('text/xml');
		}
		
		return xmlhttp_f;
    } else if (window.ActiveXObject) { // IE
        try {
            xmlhttp_f = new ActiveXObject("Msxml2.XMLHTTP");

			return xmlhttp_f;
        } catch (e) {
            try {
                xmlhttp_f = new ActiveXObject("Microsoft.XMLHTTP");
				return xmlhttp_f;
            } catch (e) {
				return null;
            }
        }
	}
}

function util_initXMLHttp()
{
	var xmlhttp = null;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		var xmlhttp = new XMLHttpRequest();
		if (xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType('text/xml');
		}
		
		return xmlhttp;
	} 
	else if (window.ActiveXObject) { // IE
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

			return xmlhttp;
		} 
		catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				
				return xmlhttp;
			} 
			catch (e) {
				return null;
			}
		}
	}
}

/***************************/
/* コールバック関数		   */
/***************************/
function checkResult_f(objids) {
	if(xmlhttp_f.readyState == 4 && xmlhttp_f.status == 200) {
	    try {
	        eval("var response = ("+ xmlhttp_f.responseText +")");
	        if (response != null && response[0] != null) {
	        	for (i = 0; i < response.length; i++) {
	        		if (objids[i] != null) {
	        			objids[i].innerHTML = response[i];
	        		}
	        	}
	        	
/*	        	if (hrefid != null && response[1] != null) {
	        		newhref.href = response[1];
	        	}
*/
//				window.alert(xmlhttp_f.responseText);
	        } else if (response != null) {
	        	window.alert(xmlhttp_f.responseText);
	        } else {
	        	//正常処理
	        }
	    } catch (e) {
	        window.alert("ネットワーク上で障害が発生しました");
	    }
	}
}

/**
 * PrevNextレイヤ選択からのPOST処理を実行する
 */
function pf_PostSubmitLayerPrevNext(target_kind, target_id, link, targetExist_cnt)
{
	//送信用フォーム追加
	var sendForm = cmn_getNewForm(link);
	if ( !cmn_isset(sendForm)) return false;
	
	//送信用フォームにデータをセットする
	var obj_kind = cmn_setNewHiddenObj(sendForm, '_prev_kind', target_kind);
	var obj_id = cmn_setNewHiddenObj(sendForm, '_prev_id', target_id);
	if ( cmn_isset(targetExist_cnt)){
		var obj_Exist_cnt = cmn_setNewHiddenObj(sendForm, '_prev_pos', targetExist_cnt);
	}
	
	//ページオープンの状態を取得する
	var clsName = "open";	//デフォルトはオープン
	
	var obj_opeMenu = cmn_getControlById("layer_20");
	if ( cmn_isset( obj_opeMenu ) ){
		if ( obj_opeMenu.className == "close" ) {
			clsName = "close";
		}
	}
	
	obj_opeMenu = cmn_setNewHiddenObj(sendForm, '_opeMenu', clsName);
	
	clsName = "open";
	
	var obj_otherMenu = cmn_getControlById("layer_21");
	if ( cmn_isset( obj_otherMenu ) ){
		if ( obj_otherMenu.className == "close" ) {
			clsName = "close";
		}
	}

	obj_otherMenu = cmn_setNewHiddenObj(sendForm, '_otherMenu', clsName);
	
	/*
	var sendForm = cmn_getControlById('prevnext_form');
	
	sendForm.action = link;
	sendForm.elements['_prev_kind'].value = target_kind;
	sendForm.elements['_prev_id'].value = target_id;
	if ( cmn_isset(targetExist_cnt)){
		sendForm.elements['_prev_pos'].value = targetExist_cnt;
	}
	*/
	
	//送信を実施
	try{
//		alert(link);
		sendForm.submit();
//		alert('submit!');
	}
	catch(e){
		alert(e);
	}
	
	return false;
	
}

function pf_PostContentsEdit(link, target_id)
{
	//送信用フォーム追加
	var sendForm = cmn_getNewForm(link);
	if ( !cmn_isset(sendForm)) return false;
	
	//送信用フォームにデータをセットする
	var obj_kind = cmn_setNewHiddenObj(sendForm, 'target_id', target_id);
	
	//送信を実施
	try{
		sendForm.submit();
	}
	catch(e){
//		alert(e);
	}
	
	return false;
}

/**
 * オリジナル写真表示用のウィンドウを表示する
 */
function pf_OpenOriginalPhotoWindow(link)
{
	//画面の中央を取得する
	try{
		var w_width	= window.screen.width;
		var w_height= window.screen.height;
		var w_top 	= 0;
		var w_left	= 0;
	}
	catch (e){
		alert('ブラウザの設定に依存して別ウィンドウが表示できません');
		return;
	}

	var optParam = "";
	
	optParam += "alwaysRaised=yes,";
	optParam += "dependent=yes,";
	optParam += "directories=no,";
	optParam += "height=" + w_height + "px,";
	optParam += "width=" + w_width + "px,";
	optParam += "top=" + w_top + ",";
	optParam += "left=" + w_left + ",";
	optParam += "location=no,";
	optParam += "menubar=no,";
	optParam += "resizable=yes,";
	optParam += "scrollbars=yes,";
	optParam += "status=no,";
	optParam += "toolbar=no";
	
	
	try{
		if ( orgPhotoWindow != null && !orgPhotoWindow.closed )
		{
			try{
				orgPhotoWindow.close()
			}
			catch (ec)
			{
			}
		}
	
		orgPhotoWindow = window.open(link, "_blank", optParam);
	}
	catch (e){
		orgPhotoWindow = null;
		alert('ブラウザの設定に依存して別ウィンドウが表示できません');
	}

}

/**
 * オリジナル写真を表示する(指定imgオブジェクトのソースを切り替える)
 */
function pf_DispOriginalPhoto( obj_id, link)
{
	var obj = cmn_getControlById(obj_id);
	if ( cmn_isset( obj ) ){
		obj.src = link;
	}
	
	//フェードイン表示を開始
	setTimeout("pf_OriginalPhotoFadeIn('" + obj_id +"')", 500);
}

/**
 * オリジナル写真をフェードイン表示する
 */
function pf_OriginalPhotoFadeIn( obj_id )
{
	if ( m_density <=20 ) {
		var obj = cmn_getControlById(obj_id);
		if ( cmn_isset( obj ) ){
			obj.filters(0).Opacity = m_density * 5;
		}
		m_density++;
		setTimeout("pf_OriginalPhotoFadeIn('" + obj_id +"')", 50);
	}
}

/**
* ================================================================================
* 		各種情報（画面上からの入力パラメータ）を保持するクラス
* ================================================================================
*/
/**
 * 掲載日を保持するクラス
 * 
 * cls_validでdlg_validdate.phtmlに宣言
 */
function pf_cls_validdate()
{
	this.yy = '';
	this.mm = '';
	this.dd = '';
	this.hh = '';
	this.nn = '';
	
	//入力されている日付をメンバ変数にセットするメソッド
	this.setDate = function(){
		this.yy = cmn_getTextValue('dlg_yy','');
		this.mm = cmn_getTextValue('dlg_mm','');
		this.dd = cmn_getTextValue('dlg_dd','');
		this.hh = cmn_getTextValue('dlg_hh','');
		this.nn = cmn_getTextValue('dlg_nn','');
	};

	//日付を合成して返却するメソッド
	this.getDate = function(){
		var valid_date = '';
		valid_date += this.yy;
		valid_date += "-" + this.mm;
		valid_date += "-" + this.dd;
		valid_date += " " + this.hh;
		valid_date += ":" + this.nn;
		
		return valid_date;
	};
	
	//保持しているメンバ変数を画面に表示するメソッド
	this.displayDate = function() {
		cmn_setValue('dlg_yy',this.yy);
		cmn_setValue('dlg_mm',this.mm);
		cmn_setValue('dlg_dd',this.dd);
		cmn_setValue('dlg_hh',this.hh);
		cmn_setValue('dlg_nn',this.nn);
	};
	
	this.isAvailDate = function(){
		if(!chk_date(this.yy,this.mm,this.dd)){
			return false;
		}
		else{
			return true;
		}
	};
	
	this.isAvailTime = function(){
		if(!chk_time(this.hh,this.nn)){
			return false;
		}
		else{
			return true;
		}
	};
	
}

function pf_cls_radio(arg_ctrl_name)
{
	this.ctrl_name = arg_ctrl_name;
	this.chekedValue = 0;
	
	//チェックされているオプションボタンのvalueをメンバ変数にセットするメソッド
	this.setChecked = function(){
		this.chekedValue = cmn_checkRadioValue(this.ctrl_name);
	};

	//チェックされているオプションボタンのvalueを返却するメソッド
	this.getCheckedValue = function(){
		return cmn_checkRadioValue(this.ctrl_name);
	};
	
	//保持しているメンバ変数を画面に表示するメソッド
	this.displayChecked = function() {
		var wElements = cmn_getControlsByName(this.ctrl_name);
		
		if ( !cmn_isset(wElements) ) return false;
		
		for ( var i=0,len=wElements.length; i < len; i++) {
			if (wElements[i].value == this.chekedValue ) {
				wElements[i].checked = true;
				break;
			}
		}
		
		return true;
	};
}

function pf_cls_sel(arg_ctrl_name)
{
	this.ctrl_name = arg_ctrl_name;
	this.chekedValue = 0;
	
	//チェックされているセレクトボックスのvalueをメンバ変数にセットするメソッド
	this.setChecked = function(){
		this.chekedValue = cmn_selectOptValue(this.ctrl_name);
	};

	//チェックされているオプションボタンのvalueを返却するメソッド
	this.getCheckedValue = function(){
		return cmn_selectOptValue(this.ctrl_name);
	};
	
	//保持しているメンバ変数を画面に表示するメソッド
	this.displayChecked = function() {
	
		var wElements = cmn_getControlsByName(this.ctrl_name);
		if ( !cmn_isset(wElements) ) return false;
		
		for ( var idx=0, elLen=wElements.length;idx<elLen;idx++ ) {
			var wElement = wElements[idx];
			var len=wElement.options.length;
			var obj = null;
			
			for ( var i=0; i < len; i++ ){
				obj = wElement.options[i];
				if ( cmn_isset(obj) && obj.value == this.chekedValue ) { 
					obj.selected = true;
					break;
				}
			}
		}
		
		return true;
	};
}

//コメント許可
function pf_cls_allow_comment()
{
	return new pf_cls_radio('dlg_allow_comment');
}
//撮影日（Exif情報）の公開
function pf_cls_Taken()
{
	return new pf_cls_radio('dlg_hidetaken');
}
//タグの書き込み
function pf_cls_allow_tag()
{
	return new pf_cls_radio('dlg_allowtag');
}
//撮影カメラ（Exif情報）の公開
function pf_cls_hideexif()
{
	return new pf_cls_radio('dlg_hideexif');
}

//写真のダウンロード
function pf_cls_allow_download()
{
	return new pf_cls_radio('dlg_allowdownload');
}

//クリエイティブコモンズ
function pf_cls_allow_cc()
{
	return new pf_cls_sel('dlg_creative');
}


function pf_cls_DlgControler( arg_dlgObj, arg_diabled_idArray)
{
	this.dlgObj = arg_dlgObj;
	this.diabled_idArray = arg_diabled_idArray;
	
	this.start = function()
	{
		if ( this.dlgObj != null && typeof(this.dlgObj) != 'undefined' ){
			this.dlgObj.changeOverlayCloseOnClick(false);
		}
		if ( this.diabled_idArray != null && typeof(this.diabled_idArray) != 'undefined' ){
			this.disabledControl( this.diabled_idArray, true);
		}
	}
	
	this.cancel = function()
	{
		if ( this.dlgObj != null && typeof(this.dlgObj) != 'undefined' ){
			this.dlgObj.changeOverlayCloseOnClick(true);
		}
		if ( this.diabled_idArray != null && typeof(this.diabled_idArray) != 'undefined' ){
			this.disabledControl( this.diabled_idArray, false);
		}
	};

	this.disabledControl = function(arg_ctrlIdArray, arg_flg)
	{
		if ( arg_ctrlIdArray == null || typeof(arg_ctrlIdArray) == 'undefined' ){
			return false;
		}
		
		cmn_disabledControls(arg_ctrlIdArray, arg_flg);
		
		//以下FireFox対応	->上位のDIVをdisabledをtrueにしても配下のコントロールは有効なので一つずつ制御
		for ( var i = 0,len = arg_ctrlIdArray.length; i < len; i++ ){
			var ctrl_id = arg_ctrlIdArray[i];
			
			var conObj = cmn_getControlById(ctrl_id);
			if ( !cmn_isset(conObj) ){
				continue;
			}
			
			var childs = conObj.getElementsByTagName('input');
			if ( !cmn_isset(childs) ){
				continue;
			}
			
			for (var j = 0, childlen = childs.length; j < childlen; j++) {
				childs[j].disabled = arg_flg;
			}
		}
	
	}
}

//確認用ダイヤログ
function pf_cls_confDlgControler( arg_dlgObj )
{
	return new pf_cls_DlgControler( arg_dlgObj, new Array('dlg_confirm_ok', 'dlg_confirm_cancel'));
}

function pf_cls_commentControler( )
{
	return new pf_cls_DlgControler( null, new Array('id_comment_area'));
}
