/*
 * Plugin jQuery.BBCode
 * Version 0.2 
 *
 * Based on jQuery.BBCode plugin (http://www.kamaikinproject.ru)
 */
(function($){
  $.fn.bbcode = function(options){
		// default settings
    var options = $.extend({
      boxID : "#advancedFormattingButtons",
      tag_bold: true,
      tag_italic: true,
      tag_underline: true,
      tag_link: true,
      tag_image: false,
      button_image: true,
      image_url: '/img/',
      popup_button_cancel: false,
      modal_dialog_popup_container: false,
      standardFormattingButtons: false,
      standardSendMessageBox: false
    },options||{});

	//alert(options.boxID);

	var id = '#' + $(this).attr("id");
	
	//alert(options.boxID);
	
    var e = $(id).get(0);
	
	$(options.boxID + ' img').live('click', function() {
	  
      var button_id = $(this).attr("id");
      
      typeof button_id;

      var start = '['+button_id+']';
      var end = '[/'+button_id+']';
      //alert(start);
      insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_b').live('click', function() {

	  var text = $('#bbcode_bold_field').val();

	  var start = '[b]'+text;
		var end = '[/b]';
	   insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_i').live('click', function() {      
	  var text = $('#bbcode_italic_field').val();

	  var start = '[i]'+text;
		var end = '[/i]';
	   insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_u').live('click', function() {      
	  var text = $('#bbcode_underline_field').val();

	  var start = '[u]'+text;
		var end = '[/u]';
	   insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_quote').live('click', function() {      
	  var text = $('#bbcode_quote_field').val();

	  var start = '[quote]'+text;
		var end = '[/quote]';
	   insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_list').live('click', function() {      
	  var text = $('#bbcode_list_field').val();

	  var start = '[list]'+text;
		var end = '[/list]';
	   insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_video').live('click', function() {      
	  var text = $('#bbcode_video_field').val();

	  var start = '[video]'+text;
		var end = '[/video]';
	   insert(start, end, e);
      return false;
    });

	$('#prompt_button_ok_url').live('click', function() {      
		var url_url = $('#bbcode_url_url_field').val();
		var url_text = $('#bbcode_url_text_field').val();

		if(url_text=='')	{
			url_text = url_url
		}
		var start = '[url '+url_url+']'+url_text;
		var end = '[/url]';
		insert(start, end, e);
		return false;
	});

	$('#prompt_button_ok_img').live('click', function() {

		var imgs = '';

		$('.imageInsertInput').each(
			function (i)	{
				if($(this).val()!="")	{
					imgs = imgs + '[img]'+$(this).val()+'[/img]';
				}
			}
		)

		if(imgs!='')	{
			var start = imgs;
			var end = '';
			insert(start, end, e);
			return false;
		}
    });
    
    if(options.popup_button_cancel && options.modal_dialog_popup_container)	{
		$(options.popup_button_cancel).click(function()	{
			$(options.modal_dialog_popup_container).hide();
		});
	}
	
	if(options.standardFormattingButtons && options.modal_dialog_popup_container)	{	
		$(options.standardFormattingButtons + ' img').click(function() {				
			$.ajax({ 
				url: "/profile/show_bbcode_popup/" + $(this).attr('id'),
				dataType : 'html',
				success: function(data) {
					//alert($('#modal_dialog_popup_container').html());
					$(options.modal_dialog_popup_container).html(data);
					$(options.modal_dialog_popup_container).show();
					//alert(data);
				}
			});
		});		
	}
	
	if(options.standardSendMessageBox && options.modal_dialog_popup_container)	{	
		$(options.standardSendMessageBox + ' img').click(function() {				
			$.ajax({ 
				url: "/profile/show_bbcode_popup/" + $(this).attr('id'),
				dataType : 'html',
				success: function(data) {
					$(options.modal_dialog_popup_container).html(data);
					$(options.modal_dialog_popup_container).show();
				}
			});
		});		
	}

 	//emotican_selection = '';
	
	$('#emoticansContainer img').click(function() {
		
		var selected_img_src = $(this).attr('src');
		
		emotican_selection = selected_img_src.substring(5)

		$('#emoticansContainer img').each(
			function (i)	{
				/*if(selected_img_src==$(this).attr('src'))	{
					$(this).css({'background-color':'#00FF80','border':'1px solid #cccccc'});
				}	else	{
					$(this).css({'background-color':'','border':'1px solid #ffffff'});
				}*/
			}
		)
		var start = '[ico]'+emotican_selection;
		var end = '[/ico]';
		insert(start, end, e);

		tb_remove();
		return false;
	});
	
	
	$('#prompt_emoticans_ok_b').click(function() {

		if(emotican_selection=='')	{
			alert('Please select and emotican by clicking it');return false;
		}

		var start = '[ico]'+emotican_selection;
		var end = '[/ico]';
		insert(start, end, e);

		tb_remove();
		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;

		if(start=='[url]') {
			element.value = element.value.substring(0, startPos) + '[url ' + element.value.substring(startPos, endPos) + ']' + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
			return;
		}

       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;
    }
  }
 
// hotkeys 
isCtrl=false;

$(document).live('keyup', function (e) 
{ if(e.which == 17) isCtrl=false; }).keydown(function (e) 
{ if(e.which == 17) isCtrl=true; 
if (e.which == 66 && isCtrl == true) // CTRL + B, bold
{ 
	$("#b").click();
	return false;
} 
else if (e.which == 73 && isCtrl == true) // CTRL + I, italic
{ 
	$("#i").click();
	return false;
} 
else if (e.which == 85 && isCtrl == true) // CTRL + U, underline
{ 
	$("#u").click();
	return false;
}
})
  
})(jQuery);



$(document).ready (function() {
	

	$("#popup_button_cancel").live('click', function()	{
		$('#modal_dialog_popup_container').hide();
	});

	$('#standardFormattingButtons img, #standardSendMessageBox img').live('click', function() {

		$.ajax({ 
				url: "/profile/show_bbcode_popup/" + $(this).attr('id'),
				dataType : 'html',
				success: function(data) {
					//alert($('#modal_dialog_popup_container').html());
					$('#modal_dialog_popup_container').html(data);
					$('#modal_dialog_popup_container').show();
					//alert(data);
				}
		});
	});

	
	$('#MessageFontColor option', this).each(	
		function ()	{
			$(this).css({'color':$(this).val()});
		}
	);

	$('#button_send_pm').live('click', function(e)	{

		var options = { 
			  target:        '#responseShow',   // target element(s) to be updated with server response
			  beforeSubmit:  function(formData, jqForm, options)	{
			  
				var error = '';
				
				if($.trim($('#MessageSubject').val())=='')	{
					error += '* Please enter subject of the message'+"\n";
				}				
				
				if($.trim($('#MessageContent').val())=='')	{
					error += '* Please enter message'+"\n";
				}
				
				if(error!="")	{
					alert(error);return false;
				}			  
			  },  // pre-submit callback 
			  success:       function (responseText, statusText, xhr, $form)	{
				alert(responseText);
				  if(responseText=="Success")	{
						
						//alert("Message successfully sent!");
						//window.location = '/messages/inbox';
						tb_remove();
						//$('#sendProfileLinkTable').html("Profile link successfully sent!");
						//var dump = setTimeout('tb_remove()', 3000);
				  }
			  }  // post-submit callback 
		 };
		 $('#sendPrivateMessageForm').ajaxSubmit(options);
		 return false;
	
	});
})


function bb_trigger(obj)	{

	var id = $(obj).attr("id")
	var e = $('#MessageContent').get(0);

	var parts = id.split('_');

	var text = $('#bbcode_field_'+parts[1]).val();

	var start = '['+parts[1]+']'+text;
	var end = '[/'+parts[1]+']';


	if(parts[1]=='url')	{
			var url_url = $('#bbcode_field_url').val();
			var url_text = $('#bbcode_field_text').val();

			if(url_text=='')	{
				url_text = url_url
			}
			start = '[url '+url_url+']'+url_text;
			end = '[/url]';
	}

	if(parts[1]=='img') {

		var imgs = '';

		$('.imageInsertInput').each(
			function (i)	{
				if($(this).val()!="")	{
					imgs = imgs + '[img]'+$(this).val()+'[/img]';
				}
			}
		)

		if(imgs!='')	{
			var start = imgs;
			var end = '';
		}
    }

	if(parts[1]=='video') {

	  /* text = $('#bbcode_field_video').val();

	  var start = '[video]'+text;
		var end = '[/video]';
	   insert(start, end, e);
      return false;*/
    }


	 bbcode_insert(start, end, e)

	 $('#modal_dialog_popup_container').hide();
	
}

function bb_popup_hide()	{
	$('#modal_dialog_popup_container').hide();
}

function bbcode_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;

		if(start=='[url]') {
			element.value = element.value.substring(0, startPos) + '[url ' + element.value.substring(startPos, endPos) + ']' + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
			return;
		}

       element.value = element.value.substring(0, startPos) + start + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
    } else {
	 alert(element.value);
      element.value += start + end;
    }
  }

