$(function(){ panel = $('.smilies_panel'); if (panel.length) { function oneStepDialog(tag, question, defaultValue) { var value = prompt(question, defaultValue); if (value) { return '['+tag+']'+value+'[/'+tag+']'; } return ''; } function twoStepDialog(tag, question, defaultValue, question2, defaultValue2) { var value = prompt(question, defaultValue); var label = prompt(question2, defaultValue2=='{step_one}'?value:defaultValue2); if (value) { return '['+tag+'='+value.replace(/[\s"]/g, '')+']'+(label?label:value)+'[/'+tag+']'; } return ''; } $.each(panel, function(oneKey, onePanel) { var smilies = {":-D":"biggrin.png", ":-)":"smile.png", ":-/":"confused.png", ";-)":"wink.png", ":-(":"sad.png", ":-X":"mad.png", ":-O":"surprised.png", }; var content = $('
'); $.each(smilies, function(smile, image) { $('').append($('').attr('src', 'http://www.birkost.cz/css/komentare/smajlici/'+image)).click(function(){ $(onePanel).parent().children('textarea').addToCursorPosition(smile); }).appendTo(content); }); $(onePanel).append(content); button = $('
').addClass('tag_button').html('vložit text tučně').data('tag', 'b').data('first_step', 'napiš text, který má být vložen tučně').data('first_step_default', '');button.appendTo(onePanel);button = $('
').addClass('tag_button').html('vložit citaci').data('tag', 'i').data('first_step', 'napiš text, který má být vložen v úvozovkách').data('first_step_default', '');button.appendTo(onePanel);button = $('
').addClass('tag_button').html('vložit odkaz').data('tag', 'url').data('first_step', 'napiš webovou adresu').data('first_step_default', 'http://').data('second_step', 'napiš text odkazu').data('second_step_default', '{step_one}');button.appendTo(onePanel); $(onePanel).find('div.tag_button').click(function(){ button = this; if (!$(this).data('second_step')) { $(onePanel).parent().children('textarea').addToCursorPosition(oneStepDialog($(button).data('tag'), $(button).data('first_step'), $(button).data('first_step_default'))); } else { $(onePanel).parent().children('textarea').addToCursorPosition(twoStepDialog($(button).data('tag'), $(button).data('first_step'), $(button).data('first_step_default'), $(button).data('second_step'), $(button).data('second_step_default'))); } }); }); } }); (function ($, undefined) { $.fn.addToCursorPosition = function (val) { var el = $(this).get(0); var pos = 0; if ('selectionStart' in el) { pos = el.selectionStart; } else if ('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } $(el).val($(el).val().substr(0, pos) +" "+ val + $(el).val().substr(pos)); if (el.setSelectionRange) { el.focus(); el.setSelectionRange(pos+val.length+1, pos+val.length+1); } else if (el.createTextRange) { var range = el.createTextRange(); range.collapse(true); range.moveEnd('character', selectionEnd+val.length+1); range.moveStart('character', selectionStart+val.length+1); range.select(); } return this; } })(jQuery);