// 条件によりスタイルシート書き換え

var Is_IE = false;
var appVer = navigator.appVersion;
var IE_pos = appVer.indexOf("MSIE");
if (0<IE_pos) {
	Is_IE=parseFloat(appVer.substring(IE_pos+5,appVer.indexOf(';',IE_pos)));
}

var default_mode = new Array();
default_mode["diary"] = "block";
default_mode["com"]   = "block";
default_mode["tb"]    = "block";
default_mode["tbe"]   = "block";

function set_switchs(diary, comment, tb, tb_excerpt) {
	document.write('<style TYPE="text/css"><!--');
	if (diary) {
		default_mode["diary"] = "none";
		document.write('div.day div.body { display: none; }');
	}
	if (comment)    {
		default_mode["com"] = "none";
		document.write('div.commentshort { display: none; }');
	}
	if (tb) {
		default_mode["tb"] = "none";
		document.write('ul.tb { display: none; }');
	}
	if (tb_excerpt) {
		default_mode["tbe"] = "none";
		document.write('div.tb div.excerpt { display: none; }');
	}
	document.write('--></style>');
}

function set_close() {
	document.write('<style TYPE="text/css"><!--');
	for(var i=0; i<arguments.length; i++) {
		document.write(arguments[i] + " { display: none; }");
	}
	document.write('--></style>');
}

function change(mode_name, id) {
	var style = document.getElementById(id).style;
	var mode  = style.display;
	var a_obj = document.getElementById(id + "a");
	/* デフォルト値ロード */
	if (mode == "") {
		mode = default_mode[ mode_name ];
		if (!mode) { mode=mode_name; }
	}
	if ( mode == "block" || mode == "open" ) {
		style.display = "none";
		if (a_obj) { a_obj.className = "close"; }
	} else {
		style.display = "block";
		if (a_obj) { a_obj.className = "open"; }
	}
}

//------------------------------------------------------------------------------
// ライブラリ（サブルーチン）
//------------------------------------------------------------------------------
function addEvent(obj, name, func) {
	if (obj.addEventListener) {
		obj.addEventListener( name, func, true );
	} else {
		obj.attachEvent( 'on' + name, func );
	}
}

function checkbox_set( checkbox_id, value ) {
	var obj = document.getElementById( checkbox_id );
	obj.checked = value;
}
function checkbox_change( checkbox_id, id, id_false, mode) {
	var flag  = document.getElementById( checkbox_id );
	var style = document.getElementById( id ).style;
	var f_obj = document.getElementById( id_false );
	if ( !mode ) { mode="block" }
	if ( flag.checked ) {
		style.display = mode;
		if (f_obj) { f_obj.style.display="none"; }
	} else {
		style.display = "none";
		if (f_obj) { f_obj.style.display=mode; }
	}
}

function set_focus( obj_id ) {
	var obj  = document.getElementById( obj_id );
	obj.focus();
}
//------------------------------------------------------------------------------
// SPAM対策
//------------------------------------------------------------------------------
function array2str() {
	for (i = 0; i < array2str.arguments.length; i++) {
		var v = array2str.arguments[i];
		if (i != 1 && v<128 && v>0) {
			document.write("&#" + v + ";");
		}
	}
}

//------------------------------------------------------------------------------
// テキスト・画像ポップアップ
//------------------------------------------------------------------------------
function popup_img( img_url, evt ) {
	return _popup_text( "<img src=\"" + img_url + "\">", evt );
}
function popup_text( text, evt ) {
	return _popup_text('<div>' + text + "\n</div>", evt);
}
function _popup_text( text, evt ) {
	var div   = document.getElementById( 'popup_' );
	var style = div.style;
	var cx; var cy;
	if ( evt ) {
		cx = evt.clientX + document.documentElement.scrollLeft;
		cy = evt.clientY + document.documentElement.scrollTop;
	} else {
		cx = event.clientX + document.body.scrollLeft;
		cy = event.clientY + document.body.scrollTop;
	}
	style.left = (cx + 16) + 'px';
	style.top  = (cy +  8) + 'px';
	div.innerHTML = text;
	style.zIndex   = 9999;
	style.maxWidth = 240;
	style.position = 'absolute';
	style.display  = 'block';
}

function popdown(id) {
	if (!id) { id='popup_'; }
	document.getElementById( id ).style.display = 'none';
}

//------------------------------------------------------------------------------
// メニューポップアップ
//------------------------------------------------------------------------------
function popup_menu( id ) {
	var bar = document.getElementById("contents-bar");
	var obj = document.getElementById( id );
	var cx = obj.offsetLeft;
	var cy = bar.offsetTop; // + bar.offsetHeight;
	// 表示
	var style = document.getElementById( id + "-div" ).style;
	style.left = cx + 'px';
	style.top  = cy + 'px';
	style.zIndex   = 9999;
	style.position = 'absolute';
	style.display  = 'block';
}

//------------------------------------------------------------------------------
// popup ウィンドウのオープン
//------------------------------------------------------------------------------
function popup(url, width, height) {
	if(!width)  { width  = 400; }
	if(!height) { height = 240; }
	win = window.open(url, 'popup', 'width=' + width + ', height=' + height);
	win.focus();
}
function popup_simple(url, param) {
	if (param == undefined) { param = 'location=no, menubar=no, resizable=yes'; }
	win = window.open(url, 'popup_simple', param);
	win.focus();
}

//------------------------------------------------------------------------------
// テーマ選択
//------------------------------------------------------------------------------
var now_template;
function set_now_template( template_dir ) {
	var ary = template_dir.split("/");
	now_template = ary.pop();
	if (now_template == "") {
		now_template = ary.pop();
	}
}

function change_theme(base_path, form_name, sample_url, sample_location, doc) {
	var form  = document.getElementById(form_name);
	var value = form.theme.options[form.theme.selectedIndex].value;
	form.theme_name.value = value;
	/* split */
	var ary  = value.split("/");
	var template = ary[0];
	if (now_template == template) {
		/* スタイルを書き換えるだけ */
		var css    = doc.getElementById('theme');
		var readme = document.getElementById('readme');
		var name   = ary[1];
		css.href   = "";
		css.href   = base_path + value + '/' + name  +".css";
		readme.src = base_path + value + '/' + '/README';
	} else {
		/* リロード */
		now_template         = template;
		sample_location.href = sample_url + value;
	}
}

function set_theme(base_path, theme_name, sample_url, sample_location) {
	var form  = document.getElementById(form_name);
	var value = form.theme.options[form.theme.selectedIndex].value;
	form.theme_name.value = value;
	/* split */
	var ary  = value.split("/");
	var template = ary[0];
	if (now_template == template) {
		/* スタイルを書き換えるだけ */
		var css    = doc.getElementById('theme');
		var readme = document.getElementById('readme');
		var name   = ary[1];
		css.href   = base_path + value + '/' + name  +".css";
		readme.src = base_path + value + '/' + '/README';
	} else {
		/* リロード */
		now_template         = template;
		sample_location.href = sample_url + value;
	}
}

//--------------------------------------------------
// 詳細デザイン向けベーステーマの選択
//--------------------------------------------------
function popup_theme_select( form_name ) {
	var theme = get_now_theme( form_name );
	if (theme == "") { theme = 'satsuki/satsuki'; }
	popup_simple("<@v.myself>?theme_select_frame/" + theme);
}

function change_base_theme( theme_idx ) {
	var form = document.getElementById('design_edit');
	form.theme.selectedIndex = theme_idx+1;
}

function get_now_theme_idx( form_name ) {
	var form = document.getElementById(form_name);
	return form.theme.selectedIndex;
}
function get_now_theme( form_name ) {
	var form  = document.getElementById(form_name);
	return form.theme.options[form.theme.selectedIndex].value;;
}

//------------------------------------------------------------------------------
// 特定フィールドの値を設定
//------------------------------------------------------------------------------
function set_field_text( id, text ) {
	var field = document.getElementById( id );
	field.value = text;
}

function copy_field( des, src ) {
	des = document.getElementById( des );
	src = document.getElementById( src );
	des.value = src.value;
}

//------------------------------------------------------------------------------
// Textareaのリサイズ
//------------------------------------------------------------------------------

// テキストエリアの横幅を自動調整
function setWitdhAuto_on_IE( id ) {
	if (! Is_IE) { return; }
	var _obj = document.getElementById( id );	// クロージャに登録
	var resize_func = function() {
		var obj = _obj;
		setWitdhAuto(obj);
	}
	addEvent(window, 'load',   resize_func);
	addEvent(window, 'resize', resize_func);
}
function setWitdhAuto(obj) {
	var parent = obj.parentNode;
	if (!parent) {	// for IE
		parent = obj.parentElement;
	}
	var pwidth  = parent.clientWidth;
	if (!pwidth) {	// for IE
		pwidth  = parent.offsetWidth;
	}
	var width = Math.floor( pwidth*0.95 );
	if (width<50) { width=50; }
	obj.style.width = width + "px";

	// debug
	//dbg = document.getElementById( "edit-excerpt" );
	//dbg.value = "set " + width + "px\n";
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// 日記編集画面用スクリプト
////////////////////////////////////////////////////////////////////////////////
// カーソル位置にテキストを挿入
function insert_text( text ) {
	var textarea = document.getElementById("editarea");
	textarea.focus();
	if (document.selection) {
		tmp1 = document.selection.createRange();
		tmp1.text = text;
	} else if (textarea.selectionStart || textarea.selectionStart == '0') {
		var start = textarea.selectionStart;	// カーソル位置
		textarea.value = textarea.value.substring(0, start)
			+ text + textarea.value.substring(start);
		// カーソル移動
		start += text.length;
		textarea.setSelectionRange(start, start);
	}
}

// カーソル選択範囲にタグを挿入
function insert_tag( start_tag, end_tag ) {
	var textarea = document.getElementById("editarea");
	textarea.focus();
	if (document.selection) {
		tmp1 = document.selection.createRange();
		tmp2 = tmp1.text;
		tmp1.text = start_tag + tmp2 + end_tag;
	} else if (textarea.selectionStart || textarea.selectionStart == '0') {
		var start = textarea.selectionStart;	// 選択開始位置
		var end   = textarea.selectionEnd;	// 選択終了位置
		textarea.value = textarea.value.substring(0, start)
			+ start_tag + textarea.value.substring(start, end)
			+ end_tag + textarea.value.substring(end);
		// カーソル移動
		textarea.setSelectionRange(start, end + start_tag.length + end_tag.length);
	}
}

// RSS向け添付ファイル情報
function insert_file( url, size ) {
	var text_obj = document.getElementById("edit-files");
	url = url.replace(/,/g, "%2c");
	text_obj.value = url;
	// ファイルサイズ付加
	size = size +0;
	if (size > 0) {
		text_obj.value += ", " + size;
	}
}
//------------------------------------------------------------------------------
// 親ノードの表示範囲指定
//------------------------------------------------------------------------------
function set_display_level( checkbox_id, id, classname, max_level ) {
	var css_obj = document.getElementById( id );
	var flag = document.getElementById( checkbox_id );
	var text = "";
	if (flag && flag.checked) { max_level=998; }
	if (Is_IE) {	// IE, IEでは動作せず
		return ;
	}
	for(i=max_level+1; i<16; i++) {
		text += classname + i.toString() + " { display: none; }\n";
	}
	css_obj.innerHTML = text;
}

