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

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"; }
	}
}

//------------------------------------------------------------------------------
// 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';
}




//------------------------------------------------------------------------------
// Ajax
//------------------------------------------------------------------------------
function get_data_from_url(url, handler_func) {
	var xmlhttp = null;
	if(window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	if (! xmlhttp) { return ; }

	// データの取得
	xmlhttp.open("GET", url);
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			data = xmlhttp.responseText;
			handler_func( data );
		}
	}
	xmlhttp.send(null);
}

//------------------------------------------------------------------------------
// フォーカス
//------------------------------------------------------------------------------
function set_focus( obj_id ) {
	var obj  = document.getElementById( obj_id );
	obj.focus();
}

//------------------------------------------------------------------------------
// 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) {
	win = window.open(url, 'popup_simple', 'location=no, menubar=no');
	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 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_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;
}

