<?php include_once( "../../../../spider.inc.php" ); ?>
{charset:UTF-8}
{template:admin_default.tpl}
{module:system.login.Require}
{module:content.page.html.Load}
{preset:page_title 'コンテンツ管理 > ページ一覧 > ページHTML編集'}

<script language="JavaScript" type="text/javascript" src="/js/textformer/textformer.js"></script>  

	<div class="panc">
		<a href="../../../" title="管理パネルのトップページを表示します">管理パネルトップ</a>
		&gt; <a href="../../" title="コンテンツ管理トップページを表示します">コンテンツ管理</a>
		&gt; <a href="../">ページ一覧</a>
		&gt; ページHTML編集
	</div>
	<h1>コンテンツ管理 &gt; ページ一覧 &gt; ページHTML編集</h1>

	{if:IS_ERROR}
	<ul class="error">
	{foreach:errors error}
		<li>{write:error}</li>
	{/foreach}
	</ul>
	{else}

	<div class="edit-area-panel" id="frexible-block">
		<form name="pagehtmlform" action="./confirm.php" method="post">
		<div style="width:95%;margin:0 auto;padding:5px;" class="menu">
			{foreach:SPIDER_USER_AGENT_CLASS_HASH key name}
			{if:system_configuration_agent_type_hash_loop_counter>1}&nbsp;&nbsp;{/if}
			<input type="radio" name="agent_type" id="agent_type_{write:key}" value="{write:key}"
				onclick="contentPageHtmlAgentChange('{write:key}')"
				onkeypress="contentPageHtmlAgentChange('{write:key}')"
				{if:content.page.html.agent=key} checked{/if}
				/><label for="agent_type_{write:key}" style="cursor:pointer;">&nbsp;{write:name}</label>
			{/foreach}
		</div>
		<div class="editor">
			<div style="width:20%;float:right;background-color:#ffffff;">
				<div style="font-weight:bold;background-color:#008000;color:#ffffff;padding:3px;">アップロード画像</div>
				<div id="image-current-path" style="font-size:7px;overflow:hidden;"></div>
				<select name="targetFolder" style="width:100%;" onchange="contentPageHtmlCreateGetImages()">
					<option value="">フォルダ選択</option>
				</select>
				<input type="button" value="画像アップロード" style="width:100%;" onclick="uploadImage()" />
				<div id="insert-image-panel"></div>
			</div>
			<div style="width:80%;float:left;"><textarea id="form_html" name="form_html" cols="30" rows="50" style="width:100%;"></textarea></div>
			<br style="clear:both;" />
		</div>
		</form>
	</div>
	
<script language="JavaScript" type="text/javascript" src="/js/textformer/textformer.js"></script>  
<script language="JavaScript" type="text/javascript"><!--
var contentPageHtmlTextformerObject;
var contentPageHtmlAgentHash	= new Array();
if(window.attachEvent){
	window.attachEvent('onload',designtplFormMassageFormInitialize);
}else{
	window.addEventListener('DOMContentLoaded',designtplFormMassageFormInitialize,false);
}
function designtplFormMassageFormInitialize() {
	contentPageHtmlAgentHash	= new Array();
{foreach:SPIDER_USER_AGENT_CLASS_HASH key name}
	contentPageHtmlAgentHash['{write:key}']	= '{write:name}';
{/foreach}
	contentPageHtmlTextformerObject	= TextFormer( document.pagehtmlform.form_html, "contentPageHtmlSaveBody()", "contentPageHtmlEditClose()" );
	contentPageHtmlAgentGet('{write:content.page.html.agent}');
	contentPageHtmlCreateGetImages();
	contentGetFolderList('',contentPageHtmlCreateFolderOptions);
}
/**
 * 対象ユーザーエージェントを切り替える
 */
var contentPageHtmlAgentGetHttpObject;
var desingTemplateSelectedAgent;
var contentPageHtmlBodyIsSave	= false;
function contentPageHtmlAgentChange(agentType) {
	if( desingTemplateSelectedAgent	== agentType ) {
		return;
	}
	if( contentPageHtmlBodyIsSave == false && !confirm('保存しないで編集する対象ユーザーエージェントを切り替えます。\n'
		+'このまま切り替えてよろしければOKをクリックしてください。\n'
		+'保存するにはキャンセルして編集欄左上のSaveボタンをクリックしてください。') ) {
		document.getElementById('agent_type_'+desingTemplateSelectedAgent).click();
		document.getElementById('agent_type_'+desingTemplateSelectedAgent).blur();
		return;
	}
	contentPageHtmlAgentGet(agentType);
}
function contentPageHtmlAgentGet(agentType) {
	contentPageHtmlAgentGetHttpObject		= FormerCommon.createHttpRequest(contentPageHtmlAgentGetResult);
	if (contentPageHtmlAgentGetHttpObject) {
		FormerCommon.displayGrayOut(9999);
		var url	= './gethtml.php?agent=' + agentType + '&uri={write:urlencode(content.page.pageObject->'uri')}';
		contentPageHtmlAgentGetHttpObject.open("GET", url, true);
		contentPageHtmlAgentGetHttpObject.send(null);
		contentPageHtmlTextformerObject.setSubject(
			'{write:content.page.pageObject->'uri'} - ' + contentPageHtmlAgentHash[agentType] + '用HTML編集');
		contentPageHtmlBodyIsSave	= false;
		desingTemplateSelectedAgent	= agentType;
		document.getElementById('agent_type_'+desingTemplateSelectedAgent).blur();
	} else {
		setTimeout(FormerCommon.displayWhiteIn, 500);
		alert('サーバーへの接続作成に失敗しました。');
	}
}
function contentPageHtmlAgentGetResult() {
	if ((contentPageHtmlAgentGetHttpObject.readyState == 4) && (contentPageHtmlAgentGetHttpObject.status == 200)){
		contentPageHtmlTextformerObject.setText('');
	    var lines	= contentPageHtmlAgentGetHttpObject.responseText.cr2lf().split(LF);
	    var status	= lines.shift();
	    if( status == 'NG' ) {
	    	alert(lines.join('\n'));
	    } else {
	    	contentPageHtmlTextformerObject.setText(lines.join('\n'));
	    }
		setTimeout(FormerCommon.displayWhiteIn, 100);
	} else if ((contentPageHtmlAgentGetHttpObject.readyState == 4) && (contentPageHtmlAgentGetHttpObject.status != 200)){
		setTimeout(FormerCommon.displayWhiteIn, 100);
		alert('HTML取得時にサーバー通信でエラーが発生しました。');
	} else {
	}
}
/**
 * 現在の状態を保存する
 */
var contentPageHtmlSaveBodyHttpObject;
function contentPageHtmlSaveBody() {
	var body	= contentPageHtmlTextformerObject.getText();
	contentPageHtmlSaveBodyHttpObject	= FormerCommon.createHttpRequest(contentPageHtmlSaveBodyResult);
	var contents	= "command=0";
	contents	+= "&" + encodeURIComponent('agent')+ "="+encodeURIComponent(desingTemplateSelectedAgent);
	contents	+= "&" + encodeURIComponent('uri')+ "="+encodeURIComponent('{write:content.page.pageObject->'uri'}');
	contents	+= "&" + encodeURIComponent('body_strings')+ "="+encodeURIComponent(body);
	if (contentPageHtmlSaveBodyHttpObject) {
		FormerCommon.displayGrayOut(9999);
		contentPageHtmlSaveBodyHttpObject.open("POST",'./save.php?uri='+encodeURIComponent('{write:content.page.pageObject->'uri'}'),true);
		contentPageHtmlSaveBodyHttpObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		contentPageHtmlSaveBodyHttpObject.send(contents);
	} else {
		alert('サーバーへの接続作成に失敗しました。');
	}
}
function contentPageHtmlSaveBodyResult() {
	if ((contentPageHtmlSaveBodyHttpObject.readyState == 4) && (contentPageHtmlSaveBodyHttpObject.status == 200)){
	    var lines	= contentPageHtmlSaveBodyHttpObject.responseText.cr2lf().split(LF);
	    var isError = false;
	    var error_message	= '';
	    for( var i=0; i<lines.length; i++ ){
			if( String(lines[i]).cr2lf().trim().length>0 ){
				var result	= String(lines[i]).cr2lf().trim();
				if( result == 'OK' ) {
					break;
				} else if( isError ) {
					error_message += result + "\n";
				} else {
					isError	= true;
				}
			}
		}
		if( isError ) {
			alert('HTML本文の保存に失敗しました!\n'+error_message);
			setTimeout(FormerCommon.displayWhiteIn, 100);
		} else {
			alert('保存が完了しました');
			contentPageHtmlBodyIsSave	= true;
			setTimeout(FormerCommon.displayWhiteIn, 100);
		}
	} else if ((contentPageHtmlSaveBodyHttpObject.readyState == 4) && (contentPageHtmlSaveBodyHttpObject.status != 200)){
		setTimeout(FormerCommon.displayWhiteIn, 100);
		alert('適用時にサーバー通信でエラーが発生しました。');
	} else {
	}
}
// 閉じる処理
function contentPageHtmlEditClose() {
	if( confirm('編集を終了して一覧ページに戻ります。\n変更内容は最後の保存の状態に戻ります。\n本当に戻ってよろしいですか？') ) {
		window.location.href	= '../';
	}
}
// 画像表示フォルダ切り替え
var currentFolder;
function contentPageHtmlCreateGetImages() {
	var targetFolderUri	= document.pagehtmlform.targetFolder.options[document.pagehtmlform.targetFolder.selectedIndex].value;
	contentPageHtmlCreateGetFolderImages(targetFolderUri);
}
function contentPageHtmlCreateGetFolderImages(targetFolderUri){
	// 選択オプションの切り替え
	contentGetFolderList(targetFolderUri,contentPageHtmlCreateFolderOptions);
	// 上に戻るリンクの作成
	var curPathDiv = document.getElementById('image-current-path');
	if( curPathDiv ) {
		curPathDiv.innerHTML = '';
		var elms = targetFolderUri.split('/');
		if( elms.length > 1 ){
			var tPath = '';
			for( var num=0; num<elms.length; num++ ){
				if(elms[num].length==0){
					curPathDiv.innerHTML	+= '<a href="javascript:contentPageHtmlCreateGetFolderImages(\'\');" style="text-decoration:none;">T</a>';
				} else if( elms.length - 1 > num ) {
					tPath += '/' + elms[num];
					curPathDiv.innerHTML	+= '/<a href="javascript:contentPageHtmlCreateGetFolderImages(\''+tPath+'\');" style="text-decoration:none;">' + elms[num] + '</a>';
				} else {
					curPathDiv.innerHTML	+= '/' + elms[num] + '';
				}
			}
		}
	}
	currentFolder = targetFolderUri;
	contentToImagePastePanel( document.getElementById('insert-image-panel'), targetFolderUri, contentPageHtmlTextformerObject );
}
function contentPageHtmlCreateFolderOptions( folderObjectArray ) {
	var selectObject	= document.pagehtmlform.targetFolder;
	for( var num=selectObject.length-1; num>=0; num-- ) {
		var optionObject	= document.pagehtmlform.targetFolder.options[num];
		selectObject.removeChild(optionObject);
	}
	var optionObject	= new Option();
	optionObject.label	= 'フォルダ選択';
	optionObject.text	= 'フォルダ選択';
	optionObject.value	= '';
	selectObject.appendChild(optionObject);
	for( var num=0; num<folderObjectArray.length; num++ ) {
		var folderInfo	= folderObjectArray[num];
		var uri			= folderInfo.parent + '/' + folderInfo.name;
		var extOption	= new Option();
		extOption.label	= folderInfo.name;
		extOption.text	= folderInfo.name;
		extOption.value	= uri;
		selectObject.appendChild(extOption);

	}
}
function uploadImage(){
	contentFileViewUploadForm(currentFolder,'',true,contentPageHtmlCreateGetImages)
}
//--></script>
	{/if}
	<hr style="width:96%;margin:0 auto;margin-top:1em;" />
	<div style="width:96%;margin:0 auto;text-align:right;">
		{if:!is_null(content.page.pageObject)}
		&gt;&gt; <a href="../setting/form.php?uri={write:urlencode(content.page.pageObject->'uri')}">{write:content.page.pageObject->'uri'}のページ設定へ</a>
		&nbsp;
		{/if}
		&gt;&gt; <a href="../">ページ一覧に戻る</a>
	</div>
	