var ef;

function insAttach(fn) {
  var tarea = document.getElementById('text');
  if (tarea.setSelectionRange > '') {
    var p = tarea.selectionStart;
    var top = tarea.scrollTop;
    var str = '\nAttach:'+fn+'\n';
    var cur = p + str.length;
    tarea.value = tarea.value.substring(0,p) + str + tarea.value.substring(p);
    tarea.focus();
    tarea.selectionStart = cur;
    tarea.selectionEnd = cur;
    tarea.scrollTop = top;
  } else if (document.selection) {
    var str = document.selection.createRange().text;
    tarea.focus();
    range = document.selection.createRange()
    if (str == '') {
      range.text = 'Attach:'+fn;
    } else {
      range.text = '\nAttach:' + fn + '\n' + str;
    }
    range.select();
  } else { tarea.value += 'Attach:' + fn; }
  return;
}

function uc_change() {
	var o = ef[this.name+"_other"];
	if ( this.value == "other" ) { o.style.display = ''; o.focus(); }
	else { o.style.display = "none"; }
}
function uc_load() {
	if (ef) for ( var n in {"user_job":1,"user_title":1} ) {
		var o = ef[n+"_other"];
		if (!o) continue;
		if ( ef[n].value == o.value ) { o.defaultValue = o.value = ''; o.style.display = "none"; }
		ef[n].onchange = uc_change;
	}
}

function addEvent( obj, evt, fn ) {
	if (obj.addEventListener) obj.addEventListener( evt, fn, false );
	else if (obj.attachEvent) obj.attachEvent( 'on'+evt, fn );
}

function removeEvent( obj, evt, fn ) {
	if (obj.removeEventListener) obj.removeEventListener( evt, fn, false );
	else if (obj.detachEvent) obj.detachEvent( 'on'+evt, fn );
}

function verifyExitOnEdit(e) {
	if (!ef) return;
	var evt = e || window.event;
	var msg = "All changes will be lost.";
	for ( var i in ef.elements ) {
		if ( ( ef.elements[i].type in { "text":1, "textarea":1 } )
			&& ( ef.elements[i].value != ef.elements[i].defaultValue )
		) {
			if (evt) evt.returnValue = msg;
			return msg;
		}
	}
}

var ps;
addEvent( window, "load", function() {
	ps = document.getElementById("prev_scroll");
	if (ps && ps.form) {
		if ( ps.value > 0 ) ps.form.text.scrollTop = ps.value;
		addEvent( ps.form, "submit", function() { ps.value = ps.form.text.scrollTop; } );
	}
	var et = document.getElementById("text");
	if (et && et.form) {
		ef = et.form;
		uc_load();
		addEvent( window, "beforeunload", verifyExitOnEdit );
		addEvent( ef, "submit", function() {
			removeEvent( window, "beforeunload", verifyExitOnEdit ); } );
	}
} );

jQuery(function() { $("body.edit-sidebar #preview").attr("id", "sidebar").detach().appendTo("#wrap"); });
jQuery(function() { $("textarea#text:not(.processed)").TextAreaResizer(); });

