
function changeImg(opt, path) {
	document.sample.src = "http://photo.mywiki.jp/thumb/" + path + opt.options[opt.selectedIndex].value ;
}

function expandTextarea(id, width, height, default_width) {
  var textarea = document.getElementById(id);
  var iwidth  = document.body.clientWidth;
  if (textarea && width == 'auto' && iwidth) {
    if (default_width < iwidth -185)
      textarea.style.width  = iwidth - 185;
    textarea.style.height = height;
  } else if (textarea) {
    textarea.style.width  = width;
    textarea.style.height = height;
  }
  var expand = document.getElementById('expand-' + id);
  if (expand) 
    expand.style.display = 'none';
  var contract = document.getElementById('contract-' + id);
  if (contract)
    contract.style.display = 'block';
}

function contractTextarea(id, width, height) {
  var textarea = document.getElementById(id) ;
  if (textarea) {
    textarea.style.width = width;
    textarea.style.height = height;
  }
  var expand = document.getElementById('expand-' + id);
  if (expand) 
    expand.style.display = 'block';
  var contract = document.getElementById('contract-' + id);
  if (contract)
    contract.style.display = 'none';
}

var function_available;
var is_IE;
init();

function showfunc(s) {
  if (function_available) {
    document.writeln(s);
  }
}

function init() {
  var ua = navigator.userAgent;
  if (ua.indexOf('MSIE'))
    is_IE = 1 
  if (document.selection) {
    function_available = 1;
    
  }
  if (ua.indexOf('Gecko') >= 0 && ua.indexOf('Safari') < 0) {
    if (navigator.appName == "Netscape" && getNNVersionNumber() < 7.1 && getNNVersionNumber() > 5) {
      function_available = 0;
    } else {
      function_available = 1;
    }
  }
}

function markup (e, startv, endv, option) {
  if (!function_available) return;
  var str = get_range(e);
  if (!str) {
    if (is_IE)
      e.focus();
    set_range(e, startv + endv);
    return false;
  }

  if (option == 'inline') {
    // str = str.replace(/(\r?\n|\r)/ig, endv + "$1" + startv);
	str = str.replace(/(^[\+\-]*)/ig, "$1" + startv);
    str = str.replace(/((\r?\n|\r)[\+\-]*)/ig, endv + "$1" + startv);
    set_range(e, str + endv);
  } else if (option == 'insertbr') {
    set_range(e, startv + str.replace(/(\r?\n|\r)/ig, '<br>') + endv);
  } else {
    set_range(e, startv + str + endv);
  }
  return false;
}

function markup_html (e, v, c) {
  var starttag = '<' + v;
  if (c) {
    starttag = starttag + ' class="' + c + '">';
  } else {
    starttag = starttag + '>';
  }
  markup(e, starttag, '</' + v + '>', 'inline');
  return false;
}

function markup_with_prompt (e, startv, endv, msg, defval) {
  if (!function_available) return;
  var value = prompt(msg, defval);
  var str = get_range(e);
  if (value) {
    startv = startv.replace(/\$_/ig, value);
    endv = endv.replace(/\$_/ig, value);
    if (!str) {
      startv = startv.replace(/:title\=/g, ':title');
      endv = endv.replace(/:title\=/g, ':title');
      if (is_IE)
        e.focus();
      set_range(e, startv + endv);
    } else {
      markup(e, startv, endv, '');
    }
  }
  return false;
}

function makelist(e, disc) {
  if (!function_available) return;
  var str = get_range(e);
  if (!str) {
    if (is_IE)
      e.focus();
    set_range(e, disc);
	return false;
  }
//  str = disc + str;
//  set_range(e, str.replace(/\n/ig, '\n' + disc));
  str = str.replace(/^([\+\-]*)/, "$1" + disc);
  set_range(e, str.replace(/((\r?\n|\r)[\+\-]*)/ig, "$1" + disc));
  return false;
}

function getNNVersionNumber() {
    if (navigator.appName == "Netscape") {
        var appVer = parseFloat(navigator.appVersion);
	if (appVer < 5) {
	    return appVer;
	} else {
	    if (typeof navigator.vendorSub != "undefined") {
	        return parseFloat(navigator.vendorSub);
	    }
	}
    }
    return 0;
}

function get_range (e) {
    if (document.selection)
        return document.selection.createRange().text;
    else {
        var length = e.textLength;
        var start = e.selectionStart;
        var end = e.selectionEnd;
        if (end == 1 || end == 2) end = length;
  
        return e.value.substring(start, end).replace(/(.*)\n+$/,"$1");       
    }
}

function set_range (e, v) {
    if (document.selection)
        document.selection.createRange().text = v;
    else {
        var scrollTop=e.scrollTop;

        var length = e.textLength;
        var start = e.selectionStart;
        var end = e.selectionEnd;
        if (end == 1 || end == 2) end = length;
        e.value = e.value.substring(0, start) + v + e.value.substr(end, length);

	e.setSelectionRange(start, start + v.length);
	e.focus();
	e.scrollTop=scrollTop;
    }
}

