//処理実行前の確認

function f_confirm(text) {
	if (!confirm('「 '+text+' 」 を削除してもよろしいですか？')) {
		return false;
	}
	return true;
}

function f_confirm2(text) {
	if (!confirm(text)) {
		return false;
	}
	return true;
}

function addImg(obj,num,width,height,alt){
	var item = '<img src=\"/?image=' + num + '\" width=\"' + width + '\" height=\"' + height + '\" alt=\"' + alt + '\" class=\"pict\" />';


	oyaWin = window.opener.document;
	//obj = oyaWin.form1.description;
	//var item = '[:' + tag + ':]';
	
	//IE
	if (oyaWin.selection) {
		obj.focus();
		sel = oyaWin.selection.createRange();
		sel.text = item;
	}
	
	//Mozilla
	else if (obj.selectionStart || obj.selectionStart == '0') {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;
		obj.value = obj.value.substring(0, startPos)
					  + item
					  + obj.value.substring(endPos, obj.value.length);
	//Other
	} else {
		obj.value += item;
	}	
}

function addEmoji(obj, tag)
{
	var item = '[:' + tag + ':]';
	
	//IE
	if (document.selection) {
		obj.focus();
		sel = document.selection.createRange();
		sel.text = item;
	}
	
	//Mozilla
	else if (obj.selectionStart || obj.selectionStart == '0') {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;
		obj.value = obj.value.substring(0, startPos)
					  + item
					  + obj.value.substring(endPos, obj.value.length);
	//Other
	} else {
		obj.value += item;
	}
}

function addTag(obj, tag) {
	
	var startTag = '<' + tag + '>';
	var endTag   = '</' + tag + '>';
	//IE
	if (document.selection) {
		obj.focus();
		var str = document.selection.createRange().text;
		if(!str) {
			return;
		}
		document.selection.createRange().text = '<' + tag + '>' + str + '</' + tag + '>';
		return;
	}
	//Mozilla
	else if ((obj.selectionEnd - obj.selectionStart) >0) {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;
		
		
		obj.value = obj.value.substring(0, startPos)
				  + startTag
				  + obj.value.substring(startPos, endPos)
				  + endTag
				  + obj.value.substring(endPos, obj.value.length);
		return;
	}
	//Other
	else {
		obj.value += startTag + endTag;
	}
}


function addColor(obj, color) {
	
	var startTag = '<font color=\"#' + color + '\">';
	var endTag   = '</font>';
	//IE
	if (document.selection) {
		obj.focus();
		var str = document.selection.createRange().text;
		if(!str) {
			return;
		}
		document.selection.createRange().text = startTag + str + endTag;
		return;
	}
	//Mozilla
	else if ((obj.selectionEnd - obj.selectionStart) >0) {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;
		
		
		obj.value = obj.value.substring(0, startPos)
				  + startTag
				  + obj.value.substring(startPos, endPos)
				  + endTag
				  + obj.value.substring(endPos, obj.value.length);
		return;
	}
	//Other
	else {
		obj.value += startTag + endTag;
	}
}


function changeFontsize(obj, tag) {
	
	var startTag = '<span style=\"font-size:' + tag + '\;\">';
	var endTag   = '</span>';
	//IE
	if (document.selection) {
		obj.focus();
		var str = document.selection.createRange().text;
		if(!str) {
			return;
		}
		document.selection.createRange().text = startTag + str + endTag;
		return;
	}
	//Mozilla
	else if ((obj.selectionEnd - obj.selectionStart) >0) {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;
		
		
		obj.value = obj.value.substring(0, startPos)
				  + startTag
				  + obj.value.substring(startPos, endPos)
				  + endTag
				  + obj.value.substring(endPos, obj.value.length);
		return;
	}
	//Other
	else {
		obj.value += startTag + endTag;
	}
}


function addLink(obj) {
	var url = prompt('リンクするサイトのURLを入力してください。', 'http://');
	if (url == null) {
		return;
	}
	
	var startTag = '<a href="' + url + '" target="_blank">';
	var endTag   = '</a>';
	
	//IE
	if (document.selection) {
		obj.focus();
		var str = document.selection.createRange().text;
		if(!str) {
			return;
		}
		document.selection.createRange().text = startTag + str + endTag;
		return;
	}
	//Mozilla
	else if ((obj.selectionEnd - obj.selectionStart) >0) {
		var startPos = obj.selectionStart;
		var endPos   = obj.selectionEnd;
		
		
		obj.value = obj.value.substring(0, startPos)
				  + startTag
				  + obj.value.substring(startPos, endPos)
				  + endTag
				  + obj.value.substring(endPos, obj.value.length);
		return;
	}
	//Other
	else {
		obj.value += startTag + endTag;
	}
	
}


//フォームをPOSTする。
function postForm(obj, action) {
	obj.action = action;
	obj.method = "post";
	obj.submit();
}


//文字列を実体参照化 
// reference from simpleboxes.jugem.cc (c)takkyun
function replaceEntity(str) { // 置換処理
  str = str.split("&").join("&amp;"); // & から変換すること
  str = str.split("<").join("&lt;");
  str = str.split(">").join("&gt;");
  str = str.split('"').join("&quot;");
  return(str);
}
function changeEntity(obj) {
  if (document.selection) { // WinIE
    obj.focus();
    var str = document.selection.createRange().text;
    if (str) {
      document.selection.createRange().text = replaceEntity(str);
    } else if (obj.value && confirm('テキストエリア内の「&,<,>,"」を実体参照化します。\n\nよろしいですか？')) { // 選択されていないとき
      obj.value = replaceEntity(obj.value);
    }
  } else if ( (obj.selectionEnd - obj.selectionStart) > 0 ) { // Mozilla
    var bgnPos = obj.selectionStart;
    var endPos = obj.selectionEnd;
    var bfrStr = obj.value.substring(0, bgnPos);
    var fcsStr = replaceEntity(obj.value.substring(bgnPos, endPos));
    var difLen = fcsStr.length - (endPos - bgnPos);
    var aftStr = obj.value.substring(endPos, obj.value.length);
    obj.value = Array(bfrStr,fcsStr,aftStr).join('');
    obj.setSelectionRange(bgnPos,endPos + difLen); // 選択し直し
  } else if (obj.value) { // Others (テキストエリア内全てが対象)
    if (confirm('テキストエリア内の「&,<,>,"」を実体参照化します。\n\nよろしいですか？')) {
      obj.value = replaceEntity(obj.value);
    }
  }
  return;
}


//実体参照化解除
// reference from simpleboxes.jugem.cc (c)takkyun
function changeTag(str) { // 置換処理
  str = str.split('&lt;').join("<");
  str = str.split('&gt;').join(">");
  str = str.split('&quot;').join('"');
  str = str.split('&amp;').join("&"); // & は最後に変換
  return(str);
}
function reverseEntity(obj) {
  if (document.selection) { // WinIE
    obj.focus();
    var str = document.selection.createRange().text;
    if (str) {
      document.selection.createRange().text = changeTag(str);
    } else if (obj.value && confirm('テキストエリア内の実体参照文字を「&,<,>,"」に変換します。\n\nよろしいですか？')) { // 選択されていないとき
      obj.value = changeTag(obj.value);
    }
  } else if ( (obj.selectionEnd - obj.selectionStart) > 0 ) { // Mozilla
    var bgnPos = obj.selectionStart;
    var endPos = obj.selectionEnd;
    var bfrStr = obj.value.substring(0, bgnPos);
    var fcsStr = changeTag(obj.value.substring(bgnPos, endPos));
    var difLen = fcsStr.length - (endPos - bgnPos);
    var aftStr = obj.value.substring(endPos, obj.value.length);
    obj.value = Array(bfrStr,fcsStr,aftStr).join('');
    obj.setSelectionRange(bgnPos,endPos + difLen); // 選択し直し
  } else if (obj.value) { // Others (テキストエリア内全てが対象)
    if (confirm('テキストエリア内の実体参照文字を「&,<,>,"」に変換します。\n\nよろしいですか？')) {
      obj.value = changeTag(obj.value);
    }
  }
  return;
}


//textarea伸縮
function increaseNotesHeight(thisTextarea, add) {
	if (thisTextarea) {
		newHeight = parseInt(thisTextarea.style.height) + add;
		thisTextarea.style.height = newHeight + "px";
	}
	if (document.getElementById('notes_height')) {
		document.getElementById('notes_height').value = newHeight;
	}
}

