

// 右左寄せのリアルタイム調整
function entry_big_picture_change_position( id, pos ) {
	if( ! $('#' + id) ) return;
	$('#' + id).css('text-align', pos);
}


// 画像のリサイズに追随してフォーカス要素を調整する
function entry_big_picture_onchange() {
	setTimeout( function() {
		// 編集要素のIDを取り出す
		var myid = $('.entry_big_picture_editor').attr('id');
		var bid  = myid.replace(/^entry_big_picture_[0-9]+_/g, '');

		// 高さの変更を検出する
		var changed = 0;
		if( typeof bid != undefined ) {
			var new_height = $('#E_plugin_' + bid).height();
			var old_height = $('#E_plugin_' + bid).data('_block_height');
			if( new_height != old_height ) {
				changed = 1;
			}
			$('#E_plugin_' + bid).data('_block_height', new_height);
		}

		// 高さの変更に合わせて背景を再描画
		if( changed == 1 ) {
			$('.E_block').each( function(){
				$(this).showBlockBg( ENTRY_BLOCK_BGCOLOR );
			});
			$('#E_plugin_' + bid).changeBlockBgColor( ENTRY_BLOCK_TARGET );
		}
	}, 100 );
}



//「保存する」ボタンを押したときの挙動
function entry_big_picture_save( entry_id, block_id, mode ) {
	// 引数チェック
	if( ! entry_id || ! block_id ) return;

	// 対象のフォームのID
	var fid = 'entry_big_picture_' + entry_id + '_' + block_id + '_form';

	// 現在のスキンで表示可能な最大横幅を取得する
	var wid = 'entry_big_picture_' + entry_id + '_' + block_id;
	var max_width = $('#' + wid).width();

	// クエリにセットする
	$('#' + fid + " [name='max_width']").val( max_width );

	// リサイズするなら
	if( mode == 'UPDATE' ) {
		// スライダで指定された横幅を取得する
		var resize_width = $('#entry_big_picture_slider').slider('value') || max_width;

		// クエリにセットする
		$('#' + fid + " [name='resize_width']").val( resize_width );
	}

	// formをsubmitしてiframeに結果を取得する
	$('#' + fid).submit( function(){

		// ステータス表示
		$('#E_plugin_' + block_id).showStatus('アップロード中');

		// ボタンをdisabledにする
		$('#entry_big_picture_save').val('保存しています');
		$('#entry_big_picture_save').attr('disabled', true);

		setTimeout( function(){
			entry_big_picture_wait( entry_id, block_id, 0);
		}, 1000 );
	}).submit();
}

//「保存する」ボタンを押してからアップロードが完了するまで待つ
function entry_big_picture_wait( entry_id, block_id, w ) {
	// タイムアウト
	if( w > 10 ) {
		alert('アップロードできませんでした\n画像ファイルの容量を小さくしてみてください');
		$('#E_plugin_' + block_id ).closeEditor();
		return;
	}

	// 完了したか調べる
	var body = $('#entry_big_picture_iframe').get(0).contentWindow.document.body;
	var msg  = $('span', body).html();
	if( msg == 'SUCCESS' ) {
		$('#E_plugin_' + block_id).showStatus('保存しました');
		$('#E_plugin_' + block_id ).closeEditor();
		return;
	} else if( msg == 'ERROR' ) {
		alert('アップロードに失敗しました');
		$('#E_plugin_' + block_id ).closeEditor();
		return;
	}

	// カウントアップ
	w++;

	// 再起
	setTimeout( function(){
		entry_big_picture_wait( entry_id, block_id, w );
	}, 1000 );
}


//「キャンセル」ボタンを押したときの挙動
function entry_big_picture_cancel( entry_id, block_id ) {
	$('#E_plugin_' + block_id ).closeEditor();
}

//「削除する」ボタンを押したときの挙動
function entry_big_picture_delete( entry_id, block_id, mode ) {
	// 引数チェック
	if( ! entry_id || ! block_id ) return;

	// 確認
	if( mode != 'noconfirm' ) {
		if( ! confirm('本当に削除しますか？') ) return;
	}

	// ステータス表示
	$('#E_plugin_' + block_id).showStatus('削除しています');

	// 削除用のAPIをたたく
	$.ajax({
		type: 'POST',
		url: '/entry/' + entry_id + '/' + block_id + '/appli/plugin/EntryBigPicture/delete/',
		data: {},
		dataType: 'json',
		success: function( res ) {
			if( res.success ) {
				$('#E_plugin_' + block_id).showStatus('削除しました');
			} else {
				alert( '削除に失敗しました' );
			}
			$('#E_plugin_' + block_id ).deleteBlock();
		}
	});
}

