// ==UserScript==
// @name           easy attach link
// @namespace      http://mixed.kr
// @include        http://devcafe.nhncorp.com/planet
// @include        http://me2day.net/*
// ==/UserScript==
/**
 * @author hooriza(http://hooriza.com)
 */
var Range = function(oEl) {

	this._o = oEl;

};

Range.prototype.getSelection = function() {
	var obj = this._o;
	var ret = [ -1, -1 ];
	if (isNaN(this._o.selectionStart)) {
		obj.focus();
		var range = document.selection.createRange().duplicate();
		var len = obj.value.length;
		ret[0] = -range.moveStart('character', -len);
		ret[1] = len - range.moveEnd('character', len);
		obj.blur();
	} else {
		ret[0] = obj.selectionStart;
		ret[1] = obj.selectionEnd;
	}
	return ret;



};



Range.prototype.setSelection = function(start, end) {
	var obj = this._o;
	if (typeof end == 'undefined') end = start;
	if (obj.setSelectionRange) {
		obj.setSelectionRange(start, end);
	} else if (obj.createTextRange) {

		var range = obj.createTextRange();
		range.collapse(true);
		range.moveStart("character", start);
		range.moveEnd("character", end - start);
		range.select();
		obj.blur();

	}
};



Range.prototype.copy = function() {
	var r = this.getSelection();

	return this._o.value.substring(r[0], r[1]);
};



Range.prototype.paste = function(sStr) {

	var obj = this._o;
	var sel = this.getSelection();

	var value = obj.value;

	var pre = value.substr(0, sel[0]);
	var post = value.substr(sel[1]);

	value = pre + sStr + post;
	obj.value = value;
	this.setSelection(sel[0] + sStr.length);

};



Range.prototype.cut = function() {
	var r = this.copy();
	this.paste('');
	return r;

};





var writePost_content =  document.getElementById('writePost_content')||document.getElementById('post_body_elem');
if(writePost_content){
	writePost_content.addEventListener('keydown',function(e){
		if(e.ctrlKey&&e.altKey){//ctrl + alt
			var o = new Range(writePost_content);
			var url = prompt(unescape("%uB9C1%uD06C%20%uAC78%20url%uC744%20%uC785%uB825%uD558%uC138%uC694"),"");
			if(url){
				o.paste('"'+o.copy()+'":'+url+" ");
			}
			writePost_content.focus();
		}
	},true);

}


