function reload_sae_editor(elemet) {

};
function encodeURL(str) {
	return encodeURI(str).replace(/&/g,'%26').replace(/\+/g,'%2b');
}

function editor_setup_textarea(id) {
	var textarea=$('#'+id);
		
	textarea.bind('click',function() { $(this).ac(); });
}

String.prototype.strip_tags = function(){
	html=this;
	//PROCESS STRING
	if(arguments.length < 3) {
		html=html.replace(/<\/?(?!\!)[^>]*>/gi, '');
	} else {
		var allowed = arguments[1];
		var specified = eval("["+arguments[2]+"]");
		if(allowed){
			var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
			html=html.replace(new RegExp(regex, 'gi'), '');
		} else{
			var regex='</?(' + specified.join('|') + ')\b[^>]*>';
			html=html.replace(new RegExp(regex, 'gi'), '');
		}
	}

	return html;
}

$.fn.getRange = function () {
	var self=this[0];
	var selectedTexty=self.contentWindow;
	if (window.getSelection) {
		// ostatni
		var sel = selectedTexty.getSelection() // sel ... vybrany text
		var tmp_range = sel.getRangeAt(0);
		var range_arr=[];
		
		range_arr[0]=tmp_range.startContainer;
		range_arr[1]=tmp_range.endContainer;
		
		return range_arr;
	} else if (document.selection) {
		//IE support
		var sel=selectedTexty.document.selection.createRange();
		var parent=sel.parentElement();
		var range_arr=[];
	
		range_arr[0]=parent;
		range_arr[1]=parent;
		
		return range_arr;	
	} else {
		
	}
}
$.fn.setRange = function (range_arr) {
	var self=this[0];
	var selectedTexty=self.contentWindow;
	if (window.getSelection) {
		// ostatni
		var new_range=$("iframe#editor_window").get(0).contentWindow.getSelection().getRangeAt(0);
		new_range.setStart(range_arr[0], range_arr[1]);
		new_range.setEnd(range_arr[2], range_arr[3]);
		return new_range;
		
	} else if (document.selection) {
		//IE support
		alert('not supported');
	
	} else {
		
	}
}

// insert at cursor
$.fn.ic = function (valueA, valueB, shift_cursor) {
	if(!shift_cursor) { shift_cursor=false; }
	return this.each(function(){
		seperate_spaces = function(str) { // patch 2008-12-05
			var spacesA='';
			var spacesB='';
			// mezery na zacatku
			for (i=0; i<str.length; i++) {
				if (str.substring(i, i+1)!=' ') {
					str=str.substring(i);
					break;
				} else {
					spacesA+=' ';
				}
			}
			// mezery na konci
			for (i=str.length-1; i>=0; i=i-1) {
				if (str.substring(i, i+1)!=' ') {
					str=str.substring(0,i+1);
					break;
				} else {
					spacesB+=' ';
				}
			}
			
			var ret=Array();
			ret[0]=spacesA;
			ret[1]=str;
			ret[2]=spacesB;
			
			return ret;
		}
	
		if(!valueB) { valueB=''; }
	
		if (document.selection) { 
			//IE support
			this.focus();
			// rozdeleni na mezery pred, mezery po a samotny text
			var sel=document.selection.createRange();
			if(valueB!='') {
				var str=seperate_spaces(document.selection.createRange().text);
				sel.text=str[0]+valueA+str[1]+valueB+str[2];
			} else {
				sel.text=valueA;
			}
			this.focus();
			
		} else if (this.selectionStart || this.selectionStart == '0') { 
			//Mozilla/Firefox/Netscape 7+ support 
			var startPos=this.selectionStart; 
			var endPos=this.selectionEnd;
			if(valueB!='') {
				var str=seperate_spaces(this.value.substring(startPos, endPos));
				this.value=this.value.substring(0, startPos)+str[0]+valueA+str[1]+valueB+str[2]+this.value.substring(endPos, this.value.length); 
			} else {
				this.value=this.value.substring(0, startPos)+valueA+this.value.substring(endPos, this.value.length); 
			}
			
			this.selectionEnd=endPos+valueA.length+valueB.length;
			if(!shift_cursor) {
				this.selectionStart=startPos;
			} else {
				this.selectionStart=this.selectionEnd
			}
			this.focus();
			
		} else { 
			this.value+=valueA; 
		}
	});
}

// analyze cursor
$.fn.ac = function () {
	return this.each(function() {
		var textAfter=null;
		var textBefore=null;
		var textSel=null;
		var startPos=-1; 
		var endPos=-1;
		var tmp=0;
			
		if (this.selectionStart || this.selectionStart == '0') { 
			// === Mozilla/Firefox/Netscape 7+ support  ===
			var startPos=this.selectionStart; 
			var endPos=this.selectionEnd;
			
			var textBefore=this.value.substring(0, startPos);
			var textAfter=this.value.substring(endPos, this.value.length);
			var textSel=this.value.substring(startPos, endPos);

			
		} else if (document.selection) { 
			// === IE support ===
			this.focus();
			var sel=document.selection.createRange();
			var textSel=sel.text;
			
		} else {
			return false;
		}
		
		//console.log(textSel);
	});
}

// insert selected items from FILEMANAGER dialog
$.fn.insert_from_fm = function (type) {
	return this.each(function(){
		var iframe=this;
		if(!type) { type='file'; }
		
		/* effect */
		var top_ov=null;
		var top_ov_zindex=0;
		$('.ui-widget-overlay').each(function(i){
			if($(this).css('z-index')>top_ov_zindex) {
				top_ov=this;
			}
		});
				
		$('.fu_holder_selected').effect('transfer',{to:iframe},300);
		$('.webu_fm').parents('.ui-dialog').fadeOut(0).delay(500).fadeIn(0);
		$(top_ov).fadeOut(0).delay(500).fadeIn(0);
		
		
		
		
		var insert_str='';
		$('.fu_holder_selected').each(function() {
			var href=$(this).attr('data-href');
			href=href.replace(/^\/files\//,''); // odstranit /files/ ze zacatku href
			
			var title=$('span.fu_fn',this).html();
			//title=title.replace(/\(/g,'&#40;').replace(/\)/g,'&#41;'); // odstraneni zavorek z titulku - ty tam byt nesmi
			title=title.replace(/\(/g,'').replace(/\)/g,''); // odstraneni zavorek z titulku - ty tam byt nesmi
			
			if(type=='image') {
				insert_str+="[* "+href+" .("+title+")[ramecek] *]:: ...#\n";
			} else if(type=='file') {
				insert_str+="[: "+href+" .("+title+") :] ...#\n";
			}
		});
		//console.log(insert_str);
		$(this).ic(insert_str,'',true);
	});
}
