/* Copyright 2000 SiteExperts.com/ InsideDHTML.com, LLC This code can be reusedas long as the above copyright notice is not removed */ function checkTab(el) { // Run only in IE // and if tab key is pressed // and if the control key is pressed if ((document.all) && (9==event.keyCode)) { // Cache the selection el.selection=document.selection.createRange(); setTimeout("processTab('" + el.id + "')",0) } } function processTab(id) { // Insert tab character in place of cached selection document.all[id].selection.text=String.fromCharCode(9) // Set the focus document.all[id].focus() } function setSelectionRange(input, selectionStart, selectionEnd) { if (input.setSelectionRange) { input.focus(); input.setSelectionRange(selectionStart, selectionEnd); } else if (input.createTextRange) { var range = input.createTextRange(); range.collapse(true); range.moveEnd('character', selectionEnd); range.moveStart('character', selectionStart); range.select(); } } /* Code contributed by Paul Brennan */ // replace the text area contents with original plus our new TAB function replaceSelection (input, replaceString) { if (input.setSelectionRange) { var selectionStart = input.selectionStart; var selectionEnd = input.selectionEnd; input.value = input.value.substring(0, selectionStart)+ replaceString + input.value.substring(selectionEnd); if (selectionStart != selectionEnd){ setSelectionRange(input, selectionStart, selectionStart + replaceString.length); }else{ setSelectionRange(input, selectionStart + replaceString.length, selectionStart + replaceString.length); } }else if (document.selection) { var range = document.selection.createRange(); if (range.parentElement() == input) { var isCollapsed = range.text == ''; range.text = replaceString; if (!isCollapsed) { range.moveStart('character', -replaceString.length); range.select(); } } } } // We are going to catch the TAB key so that we can use it function catchTab(item,e){ if(navigator.userAgent.match("Gecko")){ c=e.which; }else{ c=e.keyCode; } if(c==9){ replaceSelection(item,String.fromCharCode(9)); setTimeout("document.getElementById('"+item.id+"').focus();",0); return false; } } /////////////////////////////////////////////////////////// // functions used by the diff feature function fliprows(from,to) { var cells=document.getElementsByTagName('tr'); var i; for (i=0; i<cells.length; i++) { var cell=cells.item(i); if (cell.className==from) cell.className=to; } } function showold() { fliprows('new','hidenew'); fliprows('hideold','old'); document.getElementById('oldlink').style.background="#880000"; document.getElementById('newlink').style.background=""; document.getElementById('bothlink').style.background=""; } function shownew() { fliprows('hidenew','new'); fliprows('old','hideold'); document.getElementById('oldlink').style.background=""; document.getElementById('newlink').style.background="#880000"; document.getElementById('bothlink').style.background=""; } function showboth() { fliprows('hidenew','new'); fliprows('hideold','old'); document.getElementById('oldlink').style.background=""; document.getElementById('newlink').style.background=""; document.getElementById('bothlink').style.background="#880000"; } /////////////////////////////////////////////////////////// // clipboard copy // adapted from a post found here // http://www.gamedev.net/community/forums/topic.asp?topic_id=281951 // // Other interesting articles on clipboard access // http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard // http://sawai.blogspot.com/2005/12/copying-data-to-clipboard-using.html function copyToClipboard(txt) { if (window.clipboardData) { // IE makes it easy window.clipboardData.setData("Text", txt); } else if (netscape.security.PrivilegeManager) { //looks like we're running a flavour of Gecko, lets try something //more tricky... try { // not entirely sure what this does... netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); // get a clipboard interface var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); // get a transferable interface var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); // what kind of data are we copying? trans.addDataFlavor('text/unicode'); //get a supports-string interface var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); var copytext=txt; str.data=copytext; trans.setTransferData("text/unicode",str,copytext.length*2); var clipid=Components.interfaces.nsIClipboard; if (!clipid) return false; //here we go.. clip.setData(trans,null,clipid.kGlobalClipboard); //alert("Following info was copied to your clipboard:\n\n" + txt); } catch (e) { var showhelp=confirm("It was not possible to access your clipboard.\n\n"+ e+"\n"+ "Would you like to view the help page which may help "+ "you enable this feature?"); if (showhelp) { document.location="/?help=1"; } } } return false; } function clipboard() { var post=document.getElementById('code'); copyToClipboard(post.innerText); var span=document.getElementById('copytoclipboard'); span.innerHTML='<a href="javascript:clipboard()" title="Kopíruj do schránky">text zkopirován do schánky</a> | '; } function initPastebin() { if (document.getElementById) { //add copy to clipboard feature? IE only at the moment.. var span=document.getElementById('copytoclipboard'); if (window.clipboardData && span) { span.innerHTML='<a href="javascript:clipboard()" title="Kopíruj do schránky">Kopíruj do schránky</a> | '; } var radio; radio=document.getElementById('expiry_day'); radio.onclick=function () { var expiryinfo=document.getElementById('expiryinfo'); expiryinfo.innerHTML="Pro IM komunikaci"; document.getElementById('expiry_day_label').className='current'; document.getElementById('expiry_month_label').className=''; document.getElementById('expiry_forever_label').className=''; } if (radio.checked) radio.onclick(); radio=document.getElementById('expiry_month'); radio.onclick=function () { var expiryinfo=document.getElementById('expiryinfo'); expiryinfo.innerHTML="Pro e-mail / dočasnou úschovu textu"; document.getElementById('expiry_day_label').className=''; document.getElementById('expiry_month_label').className='current'; document.getElementById('expiry_forever_label').className=''; } if (radio.checked) radio.onclick(); radio=document.getElementById('expiry_forever'); radio.onclick=function () { var expiryinfo=document.getElementById('expiryinfo'); expiryinfo.innerHTML="Pro dlouhodobou archivaci textu"; document.getElementById('expiry_day_label').className=''; document.getElementById('expiry_month_label').className=''; document.getElementById('expiry_forever_label').className='current'; } if (radio.checked) radio.onclick(); } }