/*
ע\ع Lookup [former ע\ع Converter] is a multi-purpose text research tool with advanced support of Semitic languages.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved.

ע\ع (Ayn\Ayn) Lookup License Agreement v1.1

  1. Preamble. By this license, Ze'ev (Vladimir) Belkin that is the Author, the Licensor and the Copyright Holder, gives to you limited, world-wide, non-exclusive non-transferable right to use this Software under terms of this License. By using this Software you agree to the License agreement. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You.

    ע\ع (Ayn\Ayn) Lookup is a proprietary software that is allowed to use for no charge for both commercial and non-commercial purposes under terms of this License only. If You mean that any from the License terms are outlaw in Your country You must not to use this Software at all.

  2. Termination. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein.

  3. Publication & Distribution. This Software was created and published for free distribution only. It can be transferred to everyone without any limitations. It also can be offered on other websites for download as long as the product remains in its original form. Any changes, adjustment or modification must first be authorized by the Copyright Holder.

    The product may be distributed in its original form only unless expressly otherwise agreed upon from case to case with the Copyright Holder. All rights to the product remain reserved by the Copyright Holder.

  4. Ways of Use. It is permitted to use this software as an add-on to desktop applications only, any other ways of use are prohibited. "Desktop application" mean an application, for example Firefox, that a user runs on his/her local computer, or on a remote computer with a terminal server or X11. The add-on allowed to use only as whole, separate use of any from its parts is prohibited. For example, it is prohibited to execute any scripts from this add-on on a server side of a client/server application.

  5. Fee, Donations and The Advertisement. The Licensee is not obligated to pay the Author for the grant of the License and the use of the Software. Also, it is allowed to disable the advertisement, that the Software shows in its result window advertisement pane, using the add-on options pane.

  6. Limited right to find and to fix bugs. It is allowed, for the Licensee, to investigate this Software to find and to fix bugs treating to security or privacy of a this Software user. You can distribute a patched version, where the critical bugs are fixed by You, only with detailed description of all changes were made, and only accompanied by the original edition. If You put the patched version on a web-page, a working link to the original edition download should be on the same web-page. Also, you should inform the Author about all the changes you made.

  7. Disclaimer. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  8. Limitation of liability. The Author shall not be responsible for, and shall not pay, any amount of incidental, consequential or other indirect damages, whether based on lost revenue or otherwise, regardless of whether The Author was advised of the possibility of such losses in advance.

  9. Death of the Author. In case of Death of the Author this software, and all its sources become public domain under terms of GNU Affero General Public License, version 3. If it is known for You that the Author is dead, to use this Software and its sources under terms or AGPLv3 You should remove from the source files this License and put the next text to begin of the source files:
    
        ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac
        text to Hebrew writing system and a convenience interface to on-line translation
        services/search engines.
    
        Copyright (C) 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU Affero General Public License for more details.
    
        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see http://www.gnu.org/licenses/.
                
    (this option should not be used while the Author is alive)

  10. No further rights are granted or should be assumed. This includes, but is not limited to, the right to create derivative works.

The End
*/ /* ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac text
to Hebrew writing system and a convenience interface to on-line translation services/search engines.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved. This file is a part of ע\ع (Ayn\Ayn) Lookup and should be used under terms of the ע\ع (Ayn\Ayn) Lookup license only. **/ if (!String.fromCodePoint) { (function() { var defineProperty = (function() { // IE 8 only supports `Object.defineProperty` on DOM elements try { var object = {}; var $defineProperty = Object.defineProperty; var result = $defineProperty(object, object, object) && $defineProperty; } catch(error) {} return result; }()); var stringFromCharCode = String.fromCharCode; var floor = Math.floor; var fromCodePoint = function() { var MAX_SIZE = 0x4000; var codeUnits = []; var highSurrogate; var lowSurrogate; var index = -1; var length = arguments.length; if (!length) { return ''; } var result = ''; while (++index < length) { var codePoint = Number(arguments[index]); if ( !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` codePoint < 0 || // not a valid Unicode code point codePoint > 0x10FFFF || // not a valid Unicode code point floor(codePoint) != codePoint // not an integer ) { throw RangeError('Invalid code point: ' + codePoint); } if (codePoint <= 0xFFFF) { // BMP code point codeUnits.push(codePoint); } else { // Astral code point; split in surrogate halves // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae codePoint -= 0x10000; highSurrogate = (codePoint >> 10) + 0xD800; lowSurrogate = (codePoint % 0x400) + 0xDC00; codeUnits.push(highSurrogate, lowSurrogate); } if (index + 1 == length || codeUnits.length > MAX_SIZE) { result += stringFromCharCode.apply(null, codeUnits); codeUnits.length = 0; } } return result; }; if (defineProperty) { defineProperty(String, 'fromCodePoint', { 'value': fromCodePoint, 'configurable': true, 'writable': true }); } else { String.fromCodePoint = fromCodePoint; } }()); } if (!window.com) window.com={}; if (!window.com.zeevbelkin) window.com.zeevbelkin={}; /*if (!window.com.zeevbelkin.utils)*/ window.com.zeevbelkin.utils={ defobject:function(objname,ns,init) { if (!ns) ns=window; var obj=ns[objname]; if (!obj) { var i=objname.indexOf('.'); if (i<0) { if (!init) init={}; return ns[objname]=init; } var nsn=objname.substr(0,i),ns1=ns[nsn]; if (!ns1) ns1=ns[nsn]={}; return this.defobject(objname.substr(i+1),ns1); } return obj; }, findobject:function(objname,ns) { if (!ns) ns=window; var obj=ns[objname]; if (!obj) { var i=objname.indexOf('.'); if (i<0) return false; var nsn=objname.substr(0,i),ns1=ns[nsn]; if (!ns1) return false; return this.findobject(objname.substr(i+1),ns1); } return obj; }, extend:function(obj,extension,ns) { obj=((typeof obj)=='string')?this.defobject(obj,ns):obj; if (extension) for (var i in extension) obj[i]=extension[i]; return obj; }, inheritFromInstance:function(prototypeUpdate,baseClass) { var c=function() { if (baseClass) baseClass.apply(this,arguments); if (prototypeUpdate.init) prototypeUpdate.init.apply(this,arguments); } if (baseClass) c.prototype=new baseClass(); for (var i in prototypeUpdate) c.prototype[i]=prototypeUpdate[i]; return c; }, defclass:function(classname,baseClass,prototypeUpdate) { var classobject=function() { if (baseClass) baseClass.apply(this,arguments); if (prototypeUpdate.init) prototypeUpdate.init.apply(this,arguments); }; var v; if (baseClass) { for (var i in baseClass.prototype) classobject.prototype[i]=baseClass.prototype[i]; //classobject.prototype=baseClass.prototype; } if (prototypeUpdate) { for (v in prototypeUpdate) { classobject.prototype[v]=prototypeUpdate[v]; } } if (classname) { classobject.prototype._className=classname; var j=classname.lastIndexOf('.'); if (j<0) { window[classname]=classobject; } else { var env=this.defobject(classname.substring(0,j)); env[classname.substr(j+1)]=classobject; } } return classobject; }, isDefined:function(x) { return typeof x!='undefined'; }, isObject:function(x) { return (typeof x)=='object'; }, isValidObject:function(objToTest) { if (null == objToTest) return false; if ("undefined" == typeof(objToTest)) return false; return true; }, isUrlSane:function(s) { return s.match(/^http(s)?:\/\/[a-zA-Z]+/)&&!(s.match(/<|>|\"|\'/g)||s.match(/^http(s)?:\/\/localhost/)); }, _rx_trim:/(^\s+)|(\s+$)/g, trim:function(s) { return s.replace(this._rx_trim,""); }, _rx_dec:/^\d+$/, isDecimalString:function(s) { return s.match(this._rx_dec); } }; with (com.zeevbelkin.utils) { extend( "com.zeevbelkin.utils", { isArray:function(obj) { if (Array.isArray) return Array.isArray(obj); return isObject(obj)&&(obj.constructor == Array); }, isFunction:function(obj) { return obj&&(typeof(obj)=='function'); }, isHtmlElement:function(obj) { return isObject(obj)&&(obj instanceof HTMLElement); }, containsAnyString:function(s,ss) { if (s) if (isArray(ss)) for (var i=0;i=0) return true; } else if (s.indexOf(ss)>=0) return true; return false; }, msgs:{ _subscribers:[], subscribe:function(msgname,handler) { var a=this._subscribers[msgname]; if (!a) a=this._subscribers[msgname]=[]; if (a.indexOf(handler)<0) a.push(handler); }, unsubscribe:function(msgname,handler) { var a=this._subscribers[msgname]; if (a) { var i=a.indexOf(handler); if (i>=0) a.splice(i,1); } }, send:function(msgname,args,context,faultHandler) { var a=this._subscribers[msgname]; var rv=null,x; if (a) { if (!context) context=null; for (var i=0;i"),i1=hl.indexOf(""); if ((i0>=0)&&(i1>i0)) { hl=html.substring(0,i0)+html.substr(i1); html=hl; } s=html .replace(/
/gi,"\n") .replace(/<[^>]+>/g,""); } return s; }, decodeUnicode:function(str) { var r = [], i = 0; while(i < str.length) { var chr = str.charCodeAt(i++); if(chr >= 0xD800 && chr <= 0xDBFF) { // surrogate pair var low = str.charCodeAt(i++); r.push(0x10000 + ((chr - 0xD800) << 10) | (low - 0xDC00)); } else { // ordinary character r.push(chr); } } return r; }, encodeUnicode:function(chr) { if(chr >= 0x10000) { // surrogate pair chr&=0xffff; var TEN_BITS = 0x3ff; function u(codeUnit) { return '&#x'+codeUnit.toString(16).toUpperCase()+';'; } //chr -= 0x10000; // Shift right to get to most significant 10 bits var leadSurrogate = 0xD800 + (chr >> 10); // Mask to get least significant 10 bits var tailSurrogate = 0xDC00 + (chr & TEN_BITS); return u(leadSurrogate) + u(tailSurrogate); //var low=(chr&0x3ff)|0xDC00, high=((chr>>10)&0x5ff)|0xD800; //return String.fromCharCode(high)+String.fromCharCode(low); /* var low = str.charCodeAt(i++); r.push(0x10000 + ((chr - 0xD800) << 10) | (low - 0xDC00)); */ } else { // ordinary character return String.fromCharCode(chr); } }, charcode:function(c) { if (c) return ((typeof c)=='string')?decodeUnicode(c)[0]:c; return false; }, valuesOf:function(obj) { var res=[]; for (var i in obj) res.push(obj[i]); return res; }, HashSet:function(a) { // set class constuctor var x; this.or=function() { var r={},key; for (key in this) r[key]=this[key]; if (arguments) for (var i=0;i1)) { return s.charAt(0).toUpperCase()+s.substr(1); } return s; }, bind:function(obj,id) { if (isArray(id)) for (var i=0;ia[i].length) { a.splice(i,0,s); return a; } } a.push(s); return a; }, ArrayPlus:inheritFromInstance( { insertStringByLength:function(s) { com.zeevbelkin.utils.insertStringByLength(this,s); } }, Array ), /* ArrayPlus:( function() { var c=function() { this.insertStringByLength=function(s) { com.zeevbelkin.utils.insertStringByLength(this,s); } }; c.prototype=[]; return c; } )(),*/ versIsGreater:function(a,b) { if (!a) a='';if (!b) b=''; var aa=a.split('.'),bb=b.split('.'); for (var i=0;iyy) return true; if (xxbb.length; }, urlencode:function(s) { var r=''; if (s) for (var i=0;i=n) { if (giveUp) giveUp(x); } else setTimeout( function() { tryNtimes(n,interval,doIt,giveUp,_time+1) }, interval ); } }, dupArray:function(a) { return a.filter(function(){return true}); }, reverseString:function(s) { var r=''; for (var i=s.length-1;i>=0;i--) r+=s[i]; return r; }, sheepsAndGoats:function( text, handleSheep, handleGoat, isASheep, shouldSkip ) { if (!handleSheep) handleSheep=function() {}; if (!handleGoat) handleGoat=function() {}; if (!shouldSkip) shouldSkip=function() {return false;}; var chunk='', sheep=false, utx=decodeUnicode(text); for (var i=0; i ע\ع Lookup [former ע\ع Converter] is a multi-purpose text research tool with advanced support of Semitic languages.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved.

ע\ع (Ayn\Ayn) Lookup License Agreement v1.1

  1. Preamble. By this license, Ze'ev (Vladimir) Belkin that is the Author, the Licensor and the Copyright Holder, gives to you limited, world-wide, non-exclusive non-transferable right to use this Software under terms of this License. By using this Software you agree to the License agreement. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You.

    ע\ع (Ayn\Ayn) Lookup is a proprietary software that is allowed to use for no charge for both commercial and non-commercial purposes under terms of this License only. If You mean that any from the License terms are outlaw in Your country You must not to use this Software at all.

  2. Termination. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein.

  3. Publication & Distribution. This Software was created and published for free distribution only. It can be transferred to everyone without any limitations. It also can be offered on other websites for download as long as the product remains in its original form. Any changes, adjustment or modification must first be authorized by the Copyright Holder.

    The product may be distributed in its original form only unless expressly otherwise agreed upon from case to case with the Copyright Holder. All rights to the product remain reserved by the Copyright Holder.

  4. Ways of Use. It is permitted to use this software as an add-on to desktop applications only, any other ways of use are prohibited. "Desktop application" mean an application, for example Firefox, that a user runs on his/her local computer, or on a remote computer with a terminal server or X11. The add-on allowed to use only as whole, separate use of any from its parts is prohibited. For example, it is prohibited to execute any scripts from this add-on on a server side of a client/server application.

  5. Fee, Donations and The Advertisement. The Licensee is not obligated to pay the Author for the grant of the License and the use of the Software. Also, it is allowed to disable the advertisement, that the Software shows in its result window advertisement pane, using the add-on options pane.

  6. Limited right to find and to fix bugs. It is allowed, for the Licensee, to investigate this Software to find and to fix bugs treating to security or privacy of a this Software user. You can distribute a patched version, where the critical bugs are fixed by You, only with detailed description of all changes were made, and only accompanied by the original edition. If You put the patched version on a web-page, a working link to the original edition download should be on the same web-page. Also, you should inform the Author about all the changes you made.

  7. Disclaimer. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  8. Limitation of liability. The Author shall not be responsible for, and shall not pay, any amount of incidental, consequential or other indirect damages, whether based on lost revenue or otherwise, regardless of whether The Author was advised of the possibility of such losses in advance.

  9. Death of the Author. In case of Death of the Author this software, and all its sources become public domain under terms of GNU Affero General Public License, version 3. If it is known for You that the Author is dead, to use this Software and its sources under terms or AGPLv3 You should remove from the source files this License and put the next text to begin of the source files:
    
        ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac
        text to Hebrew writing system and a convenience interface to on-line translation
        services/search engines.
    
        Copyright (C) 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU Affero General Public License for more details.
    
        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see http://www.gnu.org/licenses/.
                
    (this option should not be used while the Author is alive)

  10. No further rights are granted or should be assumed. This includes, but is not limited to, the right to create derivative works.

The End */ /* ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac text
to Hebrew writing system and a convenience interface to on-line translation services/search engines.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved. This file is a part of ע\ع (Ayn\Ayn) Lookup and should be used under terms of the ע\ع (Ayn\Ayn) Lookup license only. **/ com.zeevbelkin.utils.extend( "com.zeevbelkin.alifAlef", { phoe: { alef: String.fromCharCode(0x10900), // PHOENICIAN LETTER ALF beth: String.fromCharCode(0x10901), // PHOENICIAN LETTER BET gimel: String.fromCharCode(0x10902), // PHOENICIAN LETTER GAML daleth: String.fromCharCode(0x10903), // PHOENICIAN LETTER DELT hey: String.fromCharCode(0x10904), // PHOENICIAN LETTER HE waw: String.fromCharCode(0x10905), // PHOENICIAN LETTER WAU zayn: String.fromCharCode(0x10906), // PHOENICIAN LETTER ZAI heth: String.fromCharCode(0x10907), // PHOENICIAN LETTER HET teth: String.fromCharCode(0x10908), // PHOENICIAN LETTER TET yud: String.fromCharCode(0x10909), // PHOENICIAN LETTER YOD kaf: String.fromCharCode(0x1090A), // PHOENICIAN LETTER KAF lamed: String.fromCharCode(0x1090B), // PHOENICIAN LETTER LAMD mem: String.fromCharCode(0x1090C), // PHOENICIAN LETTER MEM nun: String.fromCharCode(0x1090D), // PHOENICIAN LETTER NUN samekh: String.fromCharCode(0x1090E), // PHOENICIAN LETTER SEMK ayn: String.fromCharCode(0x1090F), // PHOENICIAN LETTER AIN pey: String.fromCharCode(0x10910), // PHOENICIAN LETTER PE tsadi: String.fromCharCode(0x10911), // PHOENICIAN LETTER SADE quf: String.fromCharCode(0x10912), // PHOENICIAN LETTER QOF reysh: String.fromCharCode(0x10913), // PHOENICIAN LETTER ROSH shin: String.fromCharCode(0x10914), // PHOENICIAN LETTER SHIN tab: String.fromCharCode(0x10915), // PHOENICIAN LETTER TAU one: String.fromCharCode(0x10916), // PHOENICIAN NUMBER ONE ten: String.fromCharCode(0x10917), // PHOENICIAN NUMBER TEN twenty: String.fromCharCode(0x10918), // PHOENICIAN NUMBER TWENTY one_handred: String.fromCharCode(0x10919), // PHOENICIAN NUMBER ONE HUNDRED two: String.fromCharCode(0x1091A), // PHOENICIAN NUMBER TWO three: String.fromCharCode(0x1091B), // PHOENICIAN NUMBER THREE word_separator: String.fromCharCode(0x1091F) // PHOENICIAN WORD SEPARATOR }, heb:{ alef:'\u05D0', beth:'\u05D1', gimel:'\u05D2', daleth:'\u05D3', hey:'\u05D4', waw:'\u05D5', zayn:'\u05D6', heth: '\u05D7', teth: '\u05D8', yud:'\u05D9', kaf:'\u05DB', kaf_sofit:'\u05Da', lamed:'\u05DC', mem:'\u05De', mem_sofit:'\u05Dd', nun: '\u05e0', nun_sofit: '\u05df', samekh: '\u05E1', ayn:'\u05E2', pey: '\u05E4', pey_sofit: '\u05E3', tsadi:'\u05E6', tsadi_sofit:'\u05E5', quf:'\u05E7', reysh:'\u05E8', shin:'\u05E9', tab:'\u05EA', shva:'\u05B0', patah:'\u05B7', // short a qamats:'\u05B8', // long a kubuts: '\u05BB', // short u hiriq:'\u05B4', dagesh: '\u05BC', shuruk: '\u05BC', shin_dot: '\u05C1', sin_dot: '\u05C2', hataf_qamats: '\u05B3', hataf_patah: '\u05B2', hataf_segol: '\u05B1', tzeyre: '\u05B5', // long e segol: '\u05B6', // short e holam: '\u05B9', // short o rafe: '\u05BF', // antidagesh geresh: '\u05f3', gershayim:'\u05F4' }, ar:{ shadda: '\u0651', ayn: '\u0639', alif_madda:'\u0622', alif_hamza_above:'\u0623', alif_hamza_below:'\u0625', alif:'\u0627', sukoon: '\u0652', hamza_above: '\u0654', // '\u0654' (none transparent) hamza_below: '\u0655', fatha:'\u064E', hashra:'\u0650', yeh: '\u064a', lam: '\u0644' }, syr: { samekh: '\u0723', samekh_sofit: '\u0724', makeSofit:function(c) { if (c==this.samekh) return this.samekh_sofit; return c; } }, et: { n10000:'\u137c', n100:'\u137b' } } ); with (com.zeevbelkin) with(utils) with(alifAlef) extend( "com.zeevbelkin.alifAlef", { patchHebTransTab:function(tab) { tab[heb.nun_sofit]=tab[heb.nun]; tab[heb.tsadi_sofit]=tab[heb.tsadi]; tab[heb.mem_sofit]=tab[heb.mem]; tab[heb.nun_sofit]=tab[heb.nun]; tab[heb.pey_sofit]=tab[heb.pey]; tab[heb.kaf_sofit]=tab[heb.kaf]; return tab; } } ); with (com.zeevbelkin) with(utils) with(alifAlef) extend( "com.zeevbelkin.alifAlef", { heb2lat_tab: patchHebTransTab( { "\u05D0" : "A", "\u05D1" : "B" , "\u05D2" : "G" , "\u05D3" : "D" , "\u05D4" : "H" , "\u05D5" : "V" , "\u05D6" : "Z" , "\u05D7" : "X" , "\u05D8" : "F" , "\u05D9" : "J" , "\u05DB" : "K" , "\u05DC" : "L" , "\u05DE" : "M" , "\u05E0" : "N" , "\u05E1" : "S" , "\u05E2" : "Y" , "\u05E4" : "P" , "\u05E6" : "C" , "\u05E7" : "Q" , "\u05E8" : "R" , "\u05E9" : "W" , "\u05EA" : "T" } ), reUnicodeLetterRanges: new RegExp( "[0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05230531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0904-0939093D09500958-096109710972097B-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1159115F-11A211A8-11F91200-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-16761681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA1900-191C1950-196D1970-19741980-19A919C1-19C71A00-1A161B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2C6F2C71-2C7D2C80-2CE42D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF34004DB54E009FC3A000-A48CA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A90A-A925A930-A946AA00-AA28AA40-AA42AA44-AA4BAC00D7A3F900-FA2DFA30-FA6AFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC]" .replace(/\w{4}/g, "\\u$&") ), inWordSupplement: [ "\u00AD" // SOFT HYPHEN ], isInWordSupplement: function(c) { return inWordSupplement.indexOf(c)>=0; }, isUnicodeLetters:function(str) { return reUnicodeLetterRanges.test(str); }, isRus:function(c) { c=charcode(c); return ( ((c>=0x430)&&(c<=0x44f))|| ((c>=0x410)&&(c<=0x42f))|| (c==0x451)|| (c==0x401) ); }, isWestern:function(c) { c=charcode(c); return ( ((c>=0x41)&&(c<=0x5a))|| ((c>=0x61)&&(c<=0x7a))|| ((c>=0xc0)&&(c<=0xd6))|| ((c>=0xd8)&&(c<=0xf6))|| ((c>=0xf8)&&(c<=0xff)) ); }, anyRus:function(s) { for (var i=0;i=0x10840)&&(c<=0x1085F); }, isImparLetter:function(c) { c=charcode(c); return (c>=0x10840)&&(c<=0x10855); }, isPhoe:function(c) { c=charcode(c); return (c>=0x10900)&&(c<=0x1091F); }, isPhoeLetter:function(c) { c=charcode(c); return (c>=0x10900)&&(c<=0x10915); }, isHeb:function(c) { c=charcode(c); return (c>=0x590)&&(c<=0x5ff); }, isGeneralPunctuation:function(c) { c=charcode(c); return (c>=0x2000)&&(c<=0x206f); }, isApostrophe:function(c) { switch(c) { case '\u2019': case '\'': return c; } return false; }, isCombiningDiacriticalMark:function(c) { c=charcode(c); return (c>=0x300)&&(c<=0x367); }, isSyr:function(c) { c=charcode(c); return (c>=0x700)&&(c<=0x74F); }, isHejazi:function(c) { c=charcode(c); return ( ((c>=0x0600)&&(c<=0x06FF))|| //Arabic ((c>=0x0750)&&(c<=0x077F))|| //Arabic Supplement ((c>=0xFB50)&&(c<=0xFDFF))|| //Arabic Presentation Forms-A ((c>=0xFE70)&&(c<=0xFEFF)) //Arabic Presentation Forms-B ); }, anySyr:function(s) { for (var i=0;i=0x1200)&&(c<=0x139F))|| ((c>=0x2D80)&&(c<=0x2DDF)) ); }, anyGeez:function(s) { for (var i=0;i=0x4E00)&&(c<=0x9FFF))|| ((c>=0x3400)&&(c<=0x4DFF))|| ((c>=0x20000)&&(c<=0x2A6DF))|| ((c>=0xF900)&&(c<=0xFAFF))|| ((c>=0x2F800)&&(c<=0x2FA1F)) ); }, isWordLetter:function(c) { return isUnicodeLetters(c)||isHan(c)|| isPhoeLetter(c)||isImparLetter(c)||isInWordSupplement(c)||isCombiningDiacriticalMark(c); }, calcTextMetrics:function(s) { var rv={ west:0, heb:0, arab:0, rus:0, geez:0, syr:0, phoe:0, other:0, impar:0, rtl:false, prev:'west', prevaling:function() { var bestSelector=false, bestVal=0, overall=0; for (var k in this) { var v=this[k]; if ((typeof v)=='number') { overall+=v; if (v>bestVal) { bestSelector=k; bestVal=v; } } } this.prev=bestSelector; var crtl=this.arab+this.heb+this.syr+this.phoe; this.rtl=crtl*2>overall; return bestSelector; } }; var utx=decodeUnicode(s); for (var i=0;i ע\ع Lookup [former ע\ع Converter] is a multi-purpose text research tool with advanced support of Semitic languages.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved.

ע\ع (Ayn\Ayn) Lookup License Agreement v1.1

  1. Preamble. By this license, Ze'ev (Vladimir) Belkin that is the Author, the Licensor and the Copyright Holder, gives to you limited, world-wide, non-exclusive non-transferable right to use this Software under terms of this License. By using this Software you agree to the License agreement. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You.

    ע\ع (Ayn\Ayn) Lookup is a proprietary software that is allowed to use for no charge for both commercial and non-commercial purposes under terms of this License only. If You mean that any from the License terms are outlaw in Your country You must not to use this Software at all.

  2. Termination. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein.

  3. Publication & Distribution. This Software was created and published for free distribution only. It can be transferred to everyone without any limitations. It also can be offered on other websites for download as long as the product remains in its original form. Any changes, adjustment or modification must first be authorized by the Copyright Holder.

    The product may be distributed in its original form only unless expressly otherwise agreed upon from case to case with the Copyright Holder. All rights to the product remain reserved by the Copyright Holder.

  4. Ways of Use. It is permitted to use this software as an add-on to desktop applications only, any other ways of use are prohibited. "Desktop application" mean an application, for example Firefox, that a user runs on his/her local computer, or on a remote computer with a terminal server or X11. The add-on allowed to use only as whole, separate use of any from its parts is prohibited. For example, it is prohibited to execute any scripts from this add-on on a server side of a client/server application.

  5. Fee, Donations and The Advertisement. The Licensee is not obligated to pay the Author for the grant of the License and the use of the Software. Also, it is allowed to disable the advertisement, that the Software shows in its result window advertisement pane, using the add-on options pane.

  6. Limited right to find and to fix bugs. It is allowed, for the Licensee, to investigate this Software to find and to fix bugs treating to security or privacy of a this Software user. You can distribute a patched version, where the critical bugs are fixed by You, only with detailed description of all changes were made, and only accompanied by the original edition. If You put the patched version on a web-page, a working link to the original edition download should be on the same web-page. Also, you should inform the Author about all the changes you made.

  7. Disclaimer. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  8. Limitation of liability. The Author shall not be responsible for, and shall not pay, any amount of incidental, consequential or other indirect damages, whether based on lost revenue or otherwise, regardless of whether The Author was advised of the possibility of such losses in advance.

  9. Death of the Author. In case of Death of the Author this software, and all its sources become public domain under terms of GNU Affero General Public License, version 3. If it is known for You that the Author is dead, to use this Software and its sources under terms or AGPLv3 You should remove from the source files this License and put the next text to begin of the source files:
    
        ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac
        text to Hebrew writing system and a convenience interface to on-line translation
        services/search engines.
    
        Copyright (C) 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU Affero General Public License for more details.
    
        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see http://www.gnu.org/licenses/.
                
    (this option should not be used while the Author is alive)

  10. No further rights are granted or should be assumed. This includes, but is not limited to, the right to create derivative works.

The End */ /* ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac text
to Hebrew writing system and a convenience interface to on-line translation services/search engines.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved. This file is a part of ע\ع (Ayn\Ayn) Lookup and should be used under terms of the ע\ع (Ayn\Ayn) Lookup license only. **/ with (com.zeevbelkin.utils) { uses_mod("tables.js"); } with (com.zeevbelkin) with(utils) with(alifAlef) extend( "com.zeevbelkin.alifAlef", { /* wordlength:function(text) { var len=0; if (text) for (var i=0;i1) res=makeSofit(res,dontUseSofiyot); res=res.replace(this.rx01,rp01,'g') .replace(this.rx02,rp02,'g') .replace(this.rx3,'$1') .replace(this.rx1,heb.patah,'g') .replace(this.rx2,heb.qamats,'g') .replace(this.rx4,rp4,'g') .replace(this.rx_ala,rp_ala) .replace(this.alef2,alef2_rp) .replace(this.alef3,alef3_rp) ; if (res==allah0) return allah1; return res; }, alef2:new RegExp("("+heb.qamats+")?"+heb.alef+heb.alef+heb.shva,"g"), alef2_rp:heb.qamats+heb.alef+heb.shva, alef3:new RegExp(heb.shva+heb.alef+heb.shva+heb.alef,"g"), alef3_rp:heb.shva+heb.alef, allah0:heb.alef+heb.lamed+heb.lamed+heb.hey, allah1:heb.alef+heb.patah+heb.lamed+heb.lamed+heb.qamats+heb.hey, rx_ala:new RegExp("(^)"+heb.alef+heb.lamed+heb.alef+heb.shva+heb.alef), rp_ala: heb.alef+heb.lamed+heb.shva+heb.alef, rx1:new RegExp(heb.patah+"+","g"), rx2:new RegExp( heb.patah+'*'+heb.qamats+'+'+heb.patah+'*', // "("+heb.patah+heb.qamats+")|("+heb.qamats+heb.patah+")|("+heb.qamats+")+", "g" ), rx3:new RegExp("(^)"+heb.alef+heb.shva,"g"), rx4:new RegExp("("+heb.alef+heb.shva+")+","g"), rp4:heb.alef+heb.shva, rx01:new RegExp(heb.qamats+'('+heb.geresh+')?'+heb.alef+heb.alef+heb.shva,'g'), rp01:heb.qamats+'$1'+heb.alef+heb.shva, rx02:new RegExp(heb.shva+'('+heb.geresh+')?'+heb.alef+heb.shva,"g"), rp02:heb.shva+'$1'+heb.alef+heb.shva } ); /*

ע\ع Lookup [former ע\ع Converter] is a multi-purpose text research tool with advanced support of Semitic languages.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved.

ע\ع (Ayn\Ayn) Lookup License Agreement v1.1

  1. Preamble. By this license, Ze'ev (Vladimir) Belkin that is the Author, the Licensor and the Copyright Holder, gives to you limited, world-wide, non-exclusive non-transferable right to use this Software under terms of this License. By using this Software you agree to the License agreement. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You.

    ע\ع (Ayn\Ayn) Lookup is a proprietary software that is allowed to use for no charge for both commercial and non-commercial purposes under terms of this License only. If You mean that any from the License terms are outlaw in Your country You must not to use this Software at all.

  2. Termination. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein.

  3. Publication & Distribution. This Software was created and published for free distribution only. It can be transferred to everyone without any limitations. It also can be offered on other websites for download as long as the product remains in its original form. Any changes, adjustment or modification must first be authorized by the Copyright Holder.

    The product may be distributed in its original form only unless expressly otherwise agreed upon from case to case with the Copyright Holder. All rights to the product remain reserved by the Copyright Holder.

  4. Ways of Use. It is permitted to use this software as an add-on to desktop applications only, any other ways of use are prohibited. "Desktop application" mean an application, for example Firefox, that a user runs on his/her local computer, or on a remote computer with a terminal server or X11. The add-on allowed to use only as whole, separate use of any from its parts is prohibited. For example, it is prohibited to execute any scripts from this add-on on a server side of a client/server application.

  5. Fee, Donations and The Advertisement. The Licensee is not obligated to pay the Author for the grant of the License and the use of the Software. Also, it is allowed to disable the advertisement, that the Software shows in its result window advertisement pane, using the add-on options pane.

  6. Limited right to find and to fix bugs. It is allowed, for the Licensee, to investigate this Software to find and to fix bugs treating to security or privacy of a this Software user. You can distribute a patched version, where the critical bugs are fixed by You, only with detailed description of all changes were made, and only accompanied by the original edition. If You put the patched version on a web-page, a working link to the original edition download should be on the same web-page. Also, you should inform the Author about all the changes you made.

  7. Disclaimer. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  8. Limitation of liability. The Author shall not be responsible for, and shall not pay, any amount of incidental, consequential or other indirect damages, whether based on lost revenue or otherwise, regardless of whether The Author was advised of the possibility of such losses in advance.

  9. Death of the Author. In case of Death of the Author this software, and all its sources become public domain under terms of GNU Affero General Public License, version 3. If it is known for You that the Author is dead, to use this Software and its sources under terms or AGPLv3 You should remove from the source files this License and put the next text to begin of the source files:
    
        ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac
        text to Hebrew writing system and a convenience interface to on-line translation
        services/search engines.
    
        Copyright (C) 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU Affero General Public License for more details.
    
        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see http://www.gnu.org/licenses/.
                
    (this option should not be used while the Author is alive)

  10. No further rights are granted or should be assumed. This includes, but is not limited to, the right to create derivative works.

The End
*/ /* ע\ع (Ayn\Ayn) Lookup -- a tools for transliteration of Arabic/Syriac text
to Hebrew writing system and a convenience interface to on-line translation services/search engines.

Developed by Ze'ev (Zeev, Vladimir) Belkin ( http://zeevbelkin.com ).
© 2009, 2010, 2011 Ze'ev (Zeev, Vladimir) Belkin. All rights reserved. This file is a part of ע\ع (Ayn\Ayn) Lookup and should be used under terms of the ע\ع (Ayn\Ayn) Lookup license only. **/ with (com.zeevbelkin.utils) { uses_mod("tables.js"); uses_mod("translitWord.js"); } with (com.zeevbelkin) with(utils) with(alifAlef) extend( "com.zeevbelkin.alifAlef", { heb2syr_tab: ( (function() { var tab={}; for (var cc in transTable) if ((cc>=0x700)&&(cc<=0x74F)) { var t=transTable[cc]; if (t&&!t.opt&&t.h) { var h=t.h.charAt(0); if (hebLetters[h]&&!tab[h]) { tab[h]=String.fromCharCode(cc); // alert(h+' '+tab[h]); } } } return patchHebTransTab(tab); })() ), heb2phoe_tab: ( (function() { var tab={}; for (var cc in transTable) if ((cc>=0x10900)&&(cc<=0x1091F)) { var t=transTable[cc]; if (t&&!t.opt&&t.h) { var h=t.h.charAt(0); if (hebLetters[h]&&!tab[h]) { tab[h]=String.fromCodePoint(cc); } } } return patchHebTransTab(tab); })() ), heb2syr:function(text,nsof) { var r='',tl=text.length-1; if (text) for (var i=0;i<=tl;i++) { var c=text.charAt(i),sr=heb2syr_tab[c]; var sof=!nsof; if (sr) { //alert(c+' '+sr) c=(sof&&(i==tl))?syr.makeSofit(sr):sr; } r+=c; } return r; }, heb2phoe:function(text) { var r='',tl=text.length-1; if (text) for (var i=0;i<=tl;i++) { var c=text.charAt(i),sr=heb2phoe_tab[c]; if (sr) c=sr; r+=c; } return r; }, heb2phoe_dup:function(hws) { var ws=[]; for (var i=0;i=0;i--) { var c=text.charAt(i); if (!isHeb(c)) return text; if (hebConsonants[c]) { var t=text.substr(i+1); debug.write("makeSofit "+nq+" "+c+" tl:"+t.length+" txl:"+text.length); return text.substring(0,i)+(nq?_makeSofitMenuqad:_makeSofit)(c)+t; } else if (!dontUseSofiyot) { nq=vowelNiqud[c]; } } } return text; }, anyVowel:function(s) { if (s) for (var i=0;i1)&&b) { var aLast=a.charAt(a.length-1),bFirst=b.charAt(0); if (vowelNiqud[bFirst]) { var aPreLast=a.charAt(a.length-2); if (!vowelNiqud[aPreLast]&&(b==this.shortA_accusative)&&(aLast==heb.alef)) { return this.concat(a.substr(0,a.length-1),this.longA_accusative); } if (aLast==heb.geresh) { return a.slice(0,a.length-1)+bFirst+aLast+b.slice(1); } } } return a+b; }, signsToSkip:function(cc) {// U+06D6 to U+06ED encode Qur'anic annotation signs if (cc=='\u2019') return false; cc=charcode(cc); if ((isCombiningDiacriticalMark(cc)||isGeneralPunctuation(cc))&&!transTable[cc]) return true; return (cc>=0x6d6&&cc<=0x6ed)&&!/* start Ayah, Rub el Hizb */ (cc==0x6dd||cc==0x6de||cc==0x6e1||cc==0x6df); }, removeFromChunk:function(chunk,sym) { var cnk=''; for (var j=0;j2) concatenated.push(a.shift()); } while (rv.textParts.length); while (a.length) concatenated.push(a.shift()); rv.textParts=concatenated; /////////////////////// for (var i=0;i0) return converGeezNumber(s.substring(0,j))*10000+converGeezNumber(s.substr(j+1)); // j=s.lastIndexOf(et.n100); if (j==0) return 100+converGeezNumber(s.substr(1)); if (j>0) return converGeezNumber(s.substring(0,j))*100+converGeezNumber(s.substr(j+1)); // var ac=0; for (j=0;j