/*
 * Plugin jQuery.jBBCode
 * Version 0.1 
 *
 * joker@joker.art.pl
 */

(function($){
  $.fn.bbcode = function(options){

	var inst_id =$(this).attr('id');

    var options = $.extend({
      tag_bold: true,
      tag_italic: true,
      tag_underline: true,
      tag_link: true,
      tag_image: true,
      tag_quote: true,
      button_image: true,
      image_url: 'js/bbimage/'
    },options||{});


    $(this).wrap('<div id="bbcode_container'+inst_id+'"></div>');
	$('#bbcode_container'+inst_id).prepend(
  
  		$('<div id="bbcode_bb_bar'+inst_id+'"></div>').append(
			(options.tag_bold?'<a href="#" id="b_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'bold.gif" title="Pogrubienie"/>':'Pogrubienie')+'</a>':'')+
			(options.tag_italic?'<a href="#" id="i_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'italic.gif" title="Pochylenie"/>':'Pochylenie')+'</a>':'')+
			(options.tag_underline?'<a href="#" id="u_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'underline.gif" title="Podkreślenie"/>':'Podkreślenie')+'</a>':'')+
			(options.tag_link?'<a href="#" id="url_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'link.gif" title="Link"/>':'Link')+'</a>':'')+
			(options.tag_quote?'<a href="#" id="quote_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'quote.gif" title="Cytat"/>':'Cytat')+'</a>':'')+
			(options.tag_image?'<a href="#" id="img_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'image.png" title="Obraz"/>':'Obraz')+'</a>':'')+
      (options.tag_image?'<a href="#" id="youtube_bbc_'+inst_id+'" title="">'+(options.button_image?'<img src="' + options.image_url + 'youtube.png" title="Youtube"/>':'Youtube')+'</a>':'')
		)
	);
	
    
    $("#bbcode_bb_bar"+inst_id+" a img").css("border", "none");
    var id = '#' + $(this).attr("id");
    var e = $(id).get(0);
    
    $('#bbcode_bb_bar'+inst_id+' a').click(function() {
      var button_id = $(this).attr("id");
      var start = '['+button_id.split('_')[0]+']';
      var end = '[/'+button_id.split('_')[0]+']';

	  var param="";
	  if (button_id=='img_bbc_'+inst_id)
	  {
	     param=prompt("Wprowadź URL obrazka ","http://");
		 if (param)
			start+=param;
		}
	  else if (button_id=='url_bbc_'+inst_id)
	  {
			param=prompt("Wprowadź URL","http://");
			if (param) 
				start = '[url href=' + param + ']';
		 }
		 else if (button_id=='youtube_bbc_'+inst_id)
	  {
			param=prompt("Wprowadź URL do filmu w serwisie YouTube http://www.youtube.com/embed/","");
			if (param) 
				start = '[youtube href=' + param + ']';
		 }
      insert(start, end, e);
      return false;
    });
	}
	
	  function insert(start, end, element) {
	    if (document.selection) {
	       element.focus();
	       sel = document.selection.createRange();
	       sel.text = start + sel.text + end;
	    } else if (element.selectionStart || element.selectionStart == '0') {
	       element.focus();
	       var startPos = element.selectionStart;
	       var endPos = element.selectionEnd;
	       element.value = element.value.substring(0, startPos) + start + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
	    } else {
	      element.value += start + end;
	    }
	  }
 
	$(this).keyup(function (e) 
	{isCtrl=e.ctrlKey;}).keydown(function (e) 
	{ isCtrl=e.ctrlKey; 
	if (e.which == 66 && isCtrl == true) // CTRL + B, bold
	{ 
		
		$("#b_bbc_"+e.target.id).click();
		return false;
	} 
	else if (e.which == 73 && isCtrl == true) // CTRL + I, italic
	{ 
		$("#i_bbc_"+e.target.id).click();
		return false;
	} 
	else if (e.which == 85 && isCtrl == true) // CTRL + U, underline
	{ 
		$("#i+bbc_u"+e.target.id).click();
		return false;
	}
	})
  
})(jQuery)
