// // WEB BUDITEl 1.0 // ================================================================ // Copyright (C) 2004 - http://buditel.xdev-bg.com/ // - Nikola Gramatikov // - Petko Yotov // - Mircho Mirev // --------------------------------------------------------------- // Mod: Web Keyboard // Original Script: motranslator / Êèðèëèöà â óåá ôîðìè // Copyright (C) 2002-2003 Mircho Mirev | www.momche.net // ================================================================ // This script was created // by Mircho Mirev // mo /mo@momche.net/ // // :: feel free to use it for non-commercial use BUT // :: if you want to use this code PLEASE send me a note // :: and please keep this disclaimer intact // // translation routines var cDefaultLang = { sName : 'Default Language', sDName : 'EN', //display name sMap : '', sRData : '' } var cCyrPho = { sName : 'Bulgarian Cyrillc Phonetic', sDName : 'BP', //display name sMap : 'aAbBwWgGdDeEvVzZiIjJkKlLmMnNoOpPrRsStTuUfFhHcC`~[{]}yYxX\\|qQ', sRData : 'àÀáÁâÂãÃäÄåÅæÆçÇèÈéÉêÊëËìÌíÍîÎïÏðÐñÑòÒóÓôÔõÕöÖ÷×øØùÙúÚüÜþÞÿß' } var cCyrBds = { sName : 'Bulgarian Cyrillc', sDName : 'BG', //display name sMap : 'dD/?lLhHoOeEgGpPrRxXuU.>;:kKfFmM,= 0 ) { sRep = cTranslator.hCurrentLang.sRData.charAt( nPos ) if( window.event ) //we have IE { window.event.keyCode = sRep.charCodeAt() } else //no we have some kind of moz { replaceSelection( hElement, sRep ) } if( hEvent.preventDefault ) { hEvent.preventDefault() } } hEvent.returnValue=true return true } cTranslator.install = function( hElement ) { if( document.attachEvent ) { hElement.attachEvent( 'onfocus', cTranslator.initLanguage ) hElement.attachEvent( 'onkeypress', cTranslator.processKey ) } else if( document.addEventListener ) { hElement.addEventListener( 'focus', cTranslator.initLanguage, false ) hElement.addEventListener( 'keypress', cTranslator.processKey, false ) } } cTranslator.init = function() { var nI = 0 var aInputs = document.getElementsByTagName( 'INPUT' ) for( var nI = 0; nI < aInputs.length; nI ++ ) { if( aInputs[ nI ].type.toLowerCase() == 'text' ) { var sLangAtt = aInputs[ nI ].getAttribute( 'kblang' ) if( sLangAtt ) { cTranslator.install( aInputs[ nI ] ) } } } var aTextAreas = document.getElementsByTagName( 'TEXTAREA' ) for( var nI = 0; nI < aTextAreas.length; nI ++ ) { var sLangAtt = aTextAreas[ nI ].getAttribute( 'kblang' ) if( sLangAtt ) { cTranslator.install( aTextAreas[ nI ] ) } } if( typeof CookieManager != 'undefined' ) { var sLang = CookieManager.getCookie( 'molang' ) } if( sLang != null ) { this.sGlobalLangID = sLang //this.switchLang( sLang ) } this.switchLang( this.sGlobalLangID ) } //replace incoming characters //the functions used to translate 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() } } function setCaretToEnd ( input ) { setSelectionRange( input, input.value.length, input.value.length ) } function setCaretToBegin ( input ) { setSelectionRange( input, 0, 0 ) } function setCaretToPos ( input, pos ) { setSelectionRange( input, pos, pos ) } function selectString ( input, string ) { var match = new RegExp(string, "i").exec(input.value) if (match) { setSelectionRange (input, match.index, match.index + match[0].length) } } //mozilla only 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) setSelectionRange(input, selectionStart + replaceString.length+1, selectionStart + replaceString.length+1) setCaretToPos(input, selectionStart + replaceString.length ) } } //attach to onload event function onKeySwitch( hEvent ) { if( hEvent == null ) hEvent = window.event var nCode = hEvent.keyCode ? hEvent.keyCode : hEvent.charCode ? hEvent.charCode : hEvent.which ? hEvent.which : void 0; //Àâòîð: Âàñèë Àíòîíîâ //Äàòà: 19.05.2004 if(hEvent.keyCode==113) { cTranslator.toggleLang( cTranslator.hCurrentInput ) } // if( hEvent.ctrlKey && hEvent.shiftKey ) // { // cTranslator.toggleLang( cTranslator.hCurrentInput ) // } } cTranslator.onLoad = function() { cTranslator.onSwitchLang = cTranslator.displayLanguage cTranslator.init() var hLink = document.getElementById( 'langLink' ) if( hLink != null ) { hLink.onclick = new Function( "cTranslator.toggleLang( cTranslator.hCurrentInput ); return false" ) } if( document.attachEvent ) { document.attachEvent( 'onkeydown', onKeySwitch ) } else if( document.addEventListener ) { document.addEventListener( 'keydown', onKeySwitch, false ) } } cTranslator.displayLanguage = function( sLang ) { var hLink = document.getElementById( 'langLink' ) if( hLink != null ) { hLink.innerHTML = sLang } } if( window.attachEvent ) { window.attachEvent( 'onload', cTranslator.onLoad ) } else if( window.addEventListener ) { window.addEventListener( 'load', cTranslator.onLoad, false ) }