?
Path : /home/admin/public_html/old/board/administrator/components/com_kunena/lib/ |
Current File : /home/admin/public_html/old/board/administrator/components/com_kunena/lib/kunena.bbcode.js.php |
<?php /** * @version $Id: kunena.bbcode.js.php 951 2009-08-15 01:45:15Z mahagr $ * Kunena Component * @package Kunena * * @Copyright (C) 2008 - 2009 Kunena Team All rights reserved * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.kunena.com * * Based on FireBoard Component * @Copyright (C) 2006 - 2007 Best Of Joomla All rights reserved * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.bestofjoomla.com * * Based on Joomlaboard Component * @copyright (C) 2000 - 2004 TSMF / Jan de Graaff / All Rights Reserved * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @author TSMF & Jan de Graaff **/ ?> <script language = "JavaScript" type = "text/javascript"> <?php $fbConfig =& CKunenaConfig::getInstance(); ?> <!-- // bbCode control by // subBlue design // www.subBlue.com // adapted for Joomlaboard by the Two Shoes Module Factory (www.tsmf.net) // Startup variables var imageTag = false; var theSelection = false; var baseHeight; // Check for Browser & Platform for PC & IE specific bits // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html var clientPC = navigator.userAgent.toLowerCase(); // Get client info var clientVer = parseInt(navigator.appVersion); // Get browser version var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1)); var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1) && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1)); var is_moz = 0; var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1)); var is_mac = (clientPC.indexOf("mac")!=-1); var s; var newheight = 300; var change; function dE(n) { s = document.postform.speicher.value; if (document.getElementById(n).style.display == "none") { if (s != "") {document.getElementById(s).style.display = "none";} document.getElementById(n).style.display = "block"; s=document.getElementById(n).id; document.postform.speicher.value = s; } else { document.getElementById(n).style.display = "none"; s = ""; document.postform.speicher.value = s; } } function size_messagebox(change) { newheight = newheight + change; if (newheight > 200) {document.postform.message.style.height = newheight + "px";} else { document.postform.message.style.height = "300px"; newheight = 300;} } /** * Color pallette. From http://www.phpbb.de */ function colorPalette(dir, width, height) { var r = 0, g = 0, b = 0; var numberList = new Array(6); var color = ''; numberList[0] = '00'; numberList[1] = '40'; numberList[2] = '80'; numberList[3] = 'BF'; numberList[4] = 'FF'; document.writeln('<table class="fb-color_table" cellspacing="1" cellpadding="0" border="0" style="width: 100%;">'); for (r = 0; r < 5; r++) { if (dir == 'h') {document.writeln('<tr>');} for (g = 0; g < 5; g++) { if (dir == 'v') {document.writeln('<tr>');} for (b = 0; b < 5; b++) { color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]); document.write('<td id="' + color + '" style="background-color:#' + color + '; width: ' + width + '; height: ' + height + ';">'); document.write(' '); document.writeln('</td>'); } if (dir == 'v') {document.writeln('</tr>');} } if (dir == 'h') {document.writeln('</tr>');} } document.writeln('</table>'); } jQuery(document).ready(function() { jQuery('table.fb-color_table td').click( function() { // var color = jQuery(this).css('background-color'); var color = jQuery(this).attr('id'); bbfontstyle('[color=#' + color + ']', '[/color]'); return false; } ); jQuery('select#fb-bbcode_size').change( function() { var size = jQuery(this).val(); bbfontstyle('[size=' + size + ']', '[/size]'); return false; } ); } ); // From http://www.massless.org/mozedit/ function mozWrap(txtarea, open, close) { var selLength = txtarea.textLength; var selStart = txtarea.selectionStart; var selEnd = txtarea.selectionEnd; var scrollTop = txtarea.scrollTop; if (selEnd == 1 || selEnd == 2) { selEnd = selLength; } var s1 = (txtarea.value).substring(0,selStart); var s2 = (txtarea.value).substring(selStart, selEnd) var s3 = (txtarea.value).substring(selEnd, selLength); txtarea.value = s1 + open + s2 + close + s3; txtarea.selectionStart = selEnd + open.length + close.length; txtarea.selectionEnd = txtarea.selectionStart; txtarea.focus(); txtarea.scrollTop = scrollTop; return; } // Insert at Claret position. Code from // http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130 function storeCaret(textEl) { if (textEl.createTextRange) { textEl.caretPos = document.selection.createRange().duplicate(); } } // Insert BBCode in textarea. Code from // http://www.phpbb.de/ function bbfontstyle(bbopen, bbclose) { theSelection = false; var txtarea = document.postform.message; txtarea.focus(); if ((clientVer >= 4) && is_ie && is_win) { theSelection = document.selection.createRange().text; if (theSelection) { // Add tags around selection document.selection.createRange().text = bbopen + theSelection + bbclose; document.postform.message.focus(); theSelection = ''; if (document.postform.previewspeicher.value == "preview") {fbGetPreview(document.postform.message.value,<?php echo KUNENA_COMPONENT_ITEMID?>);} return; } } else if (document.postform.message.selectionEnd && (document.postform.message.selectionEnd - document.postform.message.selectionStart > 0)) { mozWrap(document.postform.message, bbopen, bbclose); document.postform.message.focus(); theSelection = ''; if (document.postform.previewspeicher.value == "preview") {fbGetPreview(document.postform.message.value,<?php echo KUNENA_COMPONENT_ITEMID?>);} return; } //The new position for the cursor after adding the bbcode var caret_pos = getCaretPosition(txtarea).start; var new_pos = caret_pos + bbopen.length; // Open tag insert_text(bbopen + bbclose); // Center the cursor when we don't have a selection // Gecko and proper browsers if (!isNaN(txtarea.selectionStart)) { txtarea.selectionStart = new_pos; txtarea.selectionEnd = new_pos; } // IE else if (document.selection) { var range = txtarea.createTextRange(); range.move("character", new_pos); range.select(); storeCaret(txtarea); } txtarea.focus(); if (document.postform.previewspeicher.value == "preview") {fbGetPreview(document.postform.message.value,<?php echo KUNENA_COMPONENT_ITEMID?>);} return; } // Insert text at position. Code from // http://www.phpbb.de/ function insert_text(text, spaces, popup) { var txtarea; if (!popup) { txtarea = document.postform.message; } else { txtarea = opener.document.postform.message; } if (spaces) { text = ' ' + text + ' '; } if (!isNaN(txtarea.selectionStart)) { var sel_start = txtarea.selectionStart; var sel_end = txtarea.selectionEnd; mozWrap(txtarea, text, '') txtarea.selectionStart = sel_start + text.length; txtarea.selectionEnd = sel_end + text.length; } else if (txtarea.createTextRange && txtarea.caretPos) { if (baseHeight != txtarea.caretPos.boundingHeight) { txtarea.focus(); storeCaret(txtarea); } var caret_pos = txtarea.caretPos; caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; } else { txtarea.value = txtarea.value + text; } if (!popup) { txtarea.focus(); } } // Caret Position object. Code from // http://www.phpbb.de/ function caretPosition() { var start = null; var end = null; } // Get the caret position in an textarea. Code from // http://www.phpbb.de/ function getCaretPosition(txtarea) { var caretPos = new caretPosition(); // simple Gecko/Opera way if(txtarea.selectionStart || txtarea.selectionStart == 0) { caretPos.start = txtarea.selectionStart; caretPos.end = txtarea.selectionEnd; } // dirty and slow IE way else if(document.selection) { // get current selection var range = document.selection.createRange(); // a new selection of the whole txtarea var range_all = document.body.createTextRange(); range_all.moveToElementText(txtarea); // calculate selection start point by moving beginning of range_all to beginning of range var sel_start; for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) { range_all.moveStart('character', 1); } txtarea.sel_start = sel_start; // we ignore the end value for IE, this is already dirty enough and we don't need it caretPos.start = txtarea.sel_start; caretPos.end = txtarea.sel_start; } return caretPos; } //####################################################### //code used in My Profile (userprofile.php) function textCounter(field, countfield, maxlimit) { if(field.value.length > maxlimit){ field.value = field.value.substring(0, maxlimit); } else{ countfield.value = maxlimit - field.value.length; } } function submitForm() { submitme=1; formname=document.postform.fb_authorname.value; if ((formname.length<1)) { alert("<?php @print( _POST_FORGOT_NAME_ALERT); ?>"); submitme=0; } <?php if ($fbConfig->askemail) { ?> formmail=document.postform.email.value; if ((formmail.length<1)) { alert("<?php @print( _POST_FORGOT_EMAIL_ALERT); ?>"); submitme=0; } <?php } ?> formsubject=document.postform.subject.value; if ((formsubject.length<1)) { alert("<?php @print( _POST_FORGOT_SUBJECT_ALERT); ?>"); submitme=0; } if (submitme>0) { // var message = document.postform.message.value; // message = message.replace(/</g,"<"); // message = message.replace(/>/g,">"); // document.postform.message.value = message; //change the following line to true to submit form return true; }else{ return false; } } function cancelForm() { document.forms['postform'].action.value = "cancel"; return true; } //--> </script>