Initialer Commit: Kundenverwaltung (PHP/Smarty)

Bestehende Codebasis als Ausgangsstand aufgenommen.

- .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache
  (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen;
  Verzeichnisstruktur ueber .gitkeep erhalten
- .gitattributes: Zeilenenden normalisiert (LF im Repo),
  Binaerformate markiert
- db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der
  Anwendung aus der externen Konfiguration statt hartkodiert aus der
  Datei; Passwort wird ueber eine temporaere Optionsdatei statt per
  Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet,
  Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-28 16:41:18 +02:00
co-authored by Claude Opus 5
commit e6eb55bc4b
2225 changed files with 1070301 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
Installing JavaScript SpellCheck is easy on any server that supports ASP, PHP or ASP.Net.... almost any modern web host.
There are no dependencies, plug-ins or ActiveX controls to install - the entire solution is self-contained.
The only caveat is that JavaScript SpellCheck will not work in a "file://" development environment (e.g. from your desktop) It will start working when you have uploaded to a web server - or on localhost.
* Download JavaScriptSpellCheck.zip
* Unzip The package
* Copy it to the root folder of your website - such its url "/JavascriptSpellCheck"
* Open "/JavascriptSpellCheck/02-TestInstall.html" in your browser to test installation.
Notes:
* If you are using an ASP.Net server - copy ASPNetSpell.dll from the zip package to the "/bin/ASPNetSpell.dll"
* If you hit a snag - read the troubleshooting guide at http://www.javascriptspellcheck.com/Troubleshooting
* Sample Code & Examples - online at http://www.javascriptspellcheck.com/Demos_And_Tutorials
Support:
* Email support@javascriptspellcheck.com
+184
View File
@@ -0,0 +1,184 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Test-Install for JavaScript Spell Check</title>
<link rel="stylesheet" href="core/test-assets/itest.css" type="text/css" media="screen" title="no title" charset="utf-8">
<script src="include.js" type="text/javascript"></script>
<script type="text/javascript">
var msg=""
var haserror = false;
function out(type,input){
msg+=( "<div class='"+type+"'>"+input+"</div>")
if(type.toLowerCase()=="error"){haserror = true}
}
outout = function(){
document.getElementById('it_hldr').innerHTML = msg;
}
outdic = function(){
document.getElementById('dic_hldr').innerHTML = msg;
}
outcache= function(){
document.getElementById('dic_che').innerHTML = msg;
}
outfin= function(){
document.getElementById('fin_hldr').innerHTML = msg;
}
function sect(name){
msg+=("<h2>"+name+"</h2>")
}
var sendSyncRequest = livespell.testSyncRequest
function is_on_a_server(){
var url = (document.location.href);
var p = url.indexOf("//")+2;
return url.substr(0, p-3).toLowerCase().indexOf('http')>-1;
}
function testInstall(){
sect("Basic Installation")
if(typeof(JavaScriptSpellCheckObj) !="undefined"){
out("tick","JavaScriptSpellCheck <em><strong>include.js</strong></em> file found...")
}else{
out("error","The file <em><strong>include.js</strong></em> seems to be missing or corrupt. Please make sure that the JavaScript SpellCheck files have all been installed properly. Have you copied / uploaded these files properly?"); return;
}
sect("Server Context")
if(is_on_a_server ()){out("tick","JavaScriptSpellCheck is Installed on a Web-Server") } else{out("error","To test installation, must access this web-page on a live IIS web server with Classic ASP Support. Read <a target='_blank' href=http://www.javascriptspellcheck.com/Installation'> The Installation Guide </a> for help on this."); return }
sect("Browser Capabilities")
//
if(sendSyncRequest ("core/test-assets/test.html")){out("tick","AJAX is Enabled on Your Web Browser") } else{out("error","AJAX is Enabled on Your Web Browser. Try viewing this page in another browser - perhaps: <em><strong>FireFox , Chrome, Safari, Konqueror, IE6,IE7 IE8 or IE9</strong></em>");return }
// END
sect("System Capabilities")
var modelOK
var hasNet = false;
if(sendSyncRequest ("core/test-assets/test.aspx")){ if(sendSyncRequest ("core/Default.aspx")){out("tick","<b>ASP.Net</b> server software Installed.") ; modelOK = true ;} else{out("warn","ASP.Net is enabled on your server - but you have not installed <em><strong>ASPNetSpell.Dll<em><strong> to the path <em><strong>/Bin/ASPNetSpell.Dll<em><strong> of your website. <a target='_blank' href=http://www.javascriptspellcheck.com/Installation'>Read How...</a>") ; } }
if(sendSyncRequest ("core/test-assets/test.asp")){ if(sendSyncRequest ("core/default.asp")){out("tick","<b>ASP Classic</b> Server software Installed. ")
; out("info","Installing <b>ASP.Net</b>will improve speed / performance. "); modelOK = true }
else{out("warn","<b>ASP Classic</b> server software did not work. ASP only works on IIS web-servers - and may require you to update your server's windows script host. <a target='_blank' href=http://www.ehow.com/how_7432762_install-windows-script-host.html'> Update Windows Script Host now....</a>") } }
if(sendSyncRequest ("core/test-assets/test.php")){ if(sendSyncRequest ("core/index.php")){out("tick","<b>PHP</b> server software Installed.") ; modelOK = true} else{out("warn","PHP requires you to <a target='_blank' href=php.net/downloads.php'>install PHP 5</a>.") } }
sect("Running Test")
if(!modelOK){ out("error","No working server technology found! You will need to deploy this solution on a server that supports ASP, ASP.Net or PHP. Read <a target='_blank' href=http://www.javascriptspellcheck.com/Installation'> The Installation Guide </a> for help on this."); return; }
//System capabilities
if(sendSyncRequest ("core/")){out("tick","JavaScriptSpellCheck is working and connected to your server.")
} else{
var mymodel = livespell.setUniServerModel();
var code = "<code>&lt;scr"+"ipt language='text/javascr"+"ipt'&gt;$Spelling.ServerModel = \""+mymodel+"\";&lt;"+"/s"+"cript&gt;</code>";
out("warn","JavaScriptSpellCheck performance can be enhanced. Add the folloing code to the header of your pages after <em>inlcude.js</em> has been added:<br/>"+code);
}
}
function testDict(){
msg="";
sect("Installed Dictionaries");
var dicts = $Spelling.ListDictionaries();
var rawpath = document.location.pathname.replace(/02-TestInstall\.html/i,"")
var path = rawpath+"dictionaries/"
if(dicts){
var dictlist = "<ul>";
for (var i=0;i<dicts.length;i++){
dictlist += "<li><b>"+dicts[i]+"</b></li>";
}
dictlist+="<li><b>custom.txt</b> (add 1 word per line to this custom dictionary to add words easily)</li>"
dictlist+="</ul>"
}
if(dicts && dicts.length){
out("tick",dictlist);
}else{
out("error","No Dictionaries Installed. Check file permissions to "+path );
}
out("info","Additional international dictionaries may be downloaded <b>for free</b> from <a target='_blank' href='http://www.javascriptspellcheck.com/Installing_JavaScript_SpellCheck_Dictionaries'>http://www.javascriptspellcheck.com/Installing_JavaScript_SpellCheck_Dictionaries</a>. Just download, unzip and copy to the dictionary folder" );
out("info","Your Dictionary Folder is: <em>"+path+"</em>");
}
function cacherem(){
msg="";
if( haserror){
sect("Important Notice Before Re-Testing");
out("reup","<em>Clear your browser cache</em> before re-running this test.");
}else{
sect("Re-Testing");
out("reupclean","<em>Clear your browser cache</em> before re-running this test.");
}
}
function fin(){
msg="";
if(! haserror){
sect("Installation Complete");
out("tick","<h2>Well Done. Your installation of JavaScriptSpellCheck was 100% successful</h2>");
out("info","<p><a href='*Example.html'> Now lets try out an example...</p>");
}
}
function testSeq(){
testInstall(); outout(); if(!haserror){testDict();outdic();} cacherem();outcache(); fin();outfin();
}
</script>
</head>
<body onload='testSeq()'>
<h1>SpellChecker Installation Test</h1>
<div id="it_hldr"> </div>
<div id="dic_hldr"> </div>
<div id="dic_che"> </div>
<div id="fin_hldr"> </div>
</body>
</html>
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>JavaScriptSpellCheck - Hello World</title>
<script type='text/javascript' src='include.js' ></script>
<script type='text/javascript'>$Spelling.ShowStatisticsScreen = false;$Spelling.SpellCheckAsYouType('myTextArea')</script>
</head>
<body>
<textarea name="myTextArea" id="myTextArea" cols="50" rows="20">Hello Worlb. This Example show JavaScript Spellcheck "as-you-Type" and also spellchecking window functionality on the same page. Implementation is easy using only a few lines of Java Script - and will work on alost all modern web hosting packages - both Linux and Windows based. </textarea>
<input type="button" value="Spell Check" onclick="$Spelling.SpellCheckInWindow('myTextArea')">
<br/><br/><br/><a href="http://www.javascriptspellcheck.com/Demos_And_Tutorials">More Examples and Documentation...</a>
</body>
</html>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>JavaScriptSpellCheck with jQuery - Hello World</title>
<script type='text/javascript' src='extensions/jquery-1.6.4.min.js' ></script>
<script type='text/javascript' src='include.js' ></script>
<script type='text/javascript' src='extensions/fancybox/jquery.fancybox-1.3.4.pack.js' ></script>
<link rel="stylesheet" href="extensions/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type='text/javascript'>
$(function() {
$('textarea').spellAsYouType();
});
</script>
</head>
<body>
<textarea name="myTextArea" id="myTextArea" cols="50" rows="20">Hello Worlb. This Examplee shows JavaScript Spellcheck "as-you-type" and also spellchecking window functionallity on the smae paage.... this time implemented using jQuery and the $() selector. </textarea>
<input type="button" value="Spell Check" onclick="$('#myTextArea').spellCheckInDialog({popUpStyle:'fancybox',theme:'clean'})">
<br/><br/><br/><a href="http://www.javascriptspellcheck.com/Demos_And_Tutorials">More Examples and Documentation...</a>
</body>
</html>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>JavaScriptSpellCheck - Hello World</title>
<script type='text/javascript' src='include.js' ></script>
<script type='text/javascript'>$Spelling.SpellCheckAsYouType('myTextArea')</script>
<script type='text/javascript' src='extensions/modalbox/modalbox.combined.js' ></script>
<link rel="stylesheet" href="extensions/modalbox/modalbox.css" type="text/css" media="screen" />
<script type='text/javascript'>
$Spelling.PopUpStyle="modalbox";
</script>
</head>
<body>
<textarea name="myTextArea" id="myTextArea" cols="50" rows="20">Hello Worlb. This Example show JavaScript Spellcheck "as-you-type" and also spellchecking window functionality on the same page. Implementation is easy using only a few lines of Java Script - and will work on alost all modern web hosting packages - both Linux and Windows based. </textarea>
<input type="button" value="Spell Check" onclick="$Spelling.SpellCheckInWindow('myTextArea')">
<br/><br/><br/><a href="http://www.javascriptspellcheck.com/Demos_And_Tutorials">More Examples and Documentation...</a>
</body>
</html>
+14
View File
@@ -0,0 +1,14 @@
<%@ Page Language="C#" AutoEventWireup="true" MaintainScrollPositionOnPostback="false" StylesheetTheme="" Theme="" EnableTheming="false" ValidateRequest="false" %><%@ OutputCache Location="None" VaryByParam="None" %><script type="text/C#" runat="server">
protected void Page_Init(object sndr, EventArgs e)
{
ASPNetSpell.Helpers.renderAJAXHandler.process(Context);
Response.Flush();
Response.End();
}
</script><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="NotRendered1" runat="server">
<title>Themes Compatibility</title>
</head>
<body><form runat="server" id="NotRendered2"></form></body>
</html>
File diff suppressed because one or more lines are too long
+28
View File
@@ -0,0 +1,28 @@
<%@ WebHandler Language="C#" Class="ASPNetSpellWebHandler" %>
using System;
using System.Web;
using ASPNetSpell;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Text;
using System.IO;
using System.Web.Configuration;
public class ASPNetSpellWebHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
ASPNetSpell.Helpers.renderAJAXHandler.process(context);
}
public bool IsReusable {
get {
return false;
}
}
}
+390
View File
@@ -0,0 +1,390 @@
<%option explicit%><!--#include file="asp/ASPSpellClass.asp"--><% dim LicenseKey, SaveToCentralDictionary%><!--#include file="settings/default-settings.asp"--><%
Server.ScriptTimeout=30
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
Dim sent_langs, objASPSpell, objASPSpellDYM,lang, arrLangs, note, script, sender, args, i, dlimit1, dlimit2, dlimit5, command, words, suggestcountinit, error_type_words(), spell_check_words(), suggest_words(), maxsuglength, suggestcount, word, ok, doSuggest, centralDictionaryFile, OpenFileobj, FSOobj,FilePath, centralDictionaryFilePath, sValid
Set objASPSpell = ASPSpellObjectProvider.Create("aspspellcheck")
objASPSpell.ignoreCaseMistakes =false
objASPSpell.ignoreAllCaps = false
objASPSpell.IgnoreNumeric = false
objASPSpell.IgnoreEmailAddresses = false
objASPSpell.IgnoreWebAddresses = false
objASPSpell.newLineNewSentance = false
objASPSpell.LicenseKey = LicenseKey
objASPSpell.DictionaryPath = (replace(LCASE(Request.ServerVariables("PATH_INFO")),"core/default.asp","dictionaries/"))+""
objASPSpell.AddCustomDictionary("custom.txt")
objASPSpell.LoadCustomBannedWords("language-rules/banned-words.txt")
' call LoadCommonTypos(objASPSpell,"language-rules/common-mistakes.txt")
////////////////////////////////
Response.Buffer = true
'Response.ContentType = "text/plain"
lang = "English (International)"
note = ""
script = false
sender = ""
args = ""
if (Request.QueryString("args")&"" <> "") then args = Request.QueryString("args")
if (Request.QueryString("lan")&"" <> "") then lang = Request.QueryString("lan")
if (Request.QueryString("note")&"" <> "") then note = Request.QueryString("note")
if (Request.QueryString("sender")&"" <> "") then sender = Request.QueryString("sender")
if (Request.QueryString("script")&"" <> "") then script = true
if (Request.QueryString("command")&"" <> "") then command = UCASE(Trim(Request.QueryString("command"))) else response.write("No Command"):Response.end()
dlimit1 = chr(1)
dlimit2 = chr(2)
dlimit5 = chr(5)
arrLangs = Split(lang,",")
for i=0 to UBOUND(arrLangs)
objASPSpell.AddDictionary(trim(arrLangs(i)))
next
IF (command ="SAVEWORD") THEN
Response.Write("SAVEWORD")
Response.Write(dlimit5)
Response.Write(sender)
Response.Write(dlimit5)
if( NOT SaveToCentralDictionary) THEN response.write "!! SaveToCentralDictionary Must be set true in core/settings/default-settings.asp line 2 to allow for a centralized 'add to dictionary'" : response.end()
centralDictionaryFile = (replace(LCASE(Request.ServerVariables("PATH_INFO")),"core/default.asp","dictionaries/"))+""&"custom.txt"
on error resume next
FilePath=Server.MapPath(centralDictionaryFile)
Set FSOobj = Server.CreateObject("Scripting.FileSystemObject")
Set OpenFileobj = FSOobj.OpenTextFile(FilePath, 8)
OpenFileobj.WriteLine(args)
OpenFileobj.Close
on error goto 0
if err.number <>0 then response.write "!!Word not saved - "&centralDictionaryFile&" unwritable. Check the permissions for IUSER" : response.end()
response.write args&" saved to the custom dictionary."
END IF
IF (command = "WINSETUP") THEN
words = split(args,dlimit1)
suggestcountinit = 3
redim error_type_words (Ubound(words))
redim spell_check_words (Ubound(words))
redim suggest_words (Ubound(words))
maxsuglength = 0
suggestcount = 0
for i = 0 to ubound(words)
error_type_words(i) = ""
if (suggestcount < suggestcountinit + 1) THEN suggest_words(i) = ""
IF ( objASPSpell.SpellCheck(words(i))) THEN
spell_check_words(i) = "T"
ELSE
spell_check_words(i) = "F"
error_type_words(i) = objASPSpell.ErrorTypeWord(words(i))
if (suggestcount < suggestcountinit + 1) THEN
suggestcount = suggestcount + 1
suggest_words(i) = Join( objASPSpell.Suggestions(words(i)), dlimit2)
maxsuglength = i + 1
END IF
END IF
next 'i
redim preserve suggest_words (maxsuglength)
Response.Write("WINSETUP")
Response.Write(dlimit5)
Response.Write(sender)
Response.Write(dlimit5)
Response.Write(JOIN( spell_check_words,""))
Response.Write(dlimit5)
Response.Write(JOIN( error_type_words,dlimit1))
Response.Write(dlimit5)
Response.Write(JOIN( suggest_words,dlimit1))
Response.Write(dlimit5)
Response.Write(JOIN( objASPSpell.ListDictionaries(),dlimit2))
END IF
' //////////////////////////////// END WINSETUP
IF (command ="LISTDICTS") THEN
Response.Write("WINSETUP")
Response.Write(dlimit5)
Response.Write(sender)
Response.Write(dlimit5)
Response.Write(JOIN( objASPSpell.ListDictionaries(),dlimit2))
END IF
IF (command ="WINSUGGEST") THEN
words = split(args,dlimit1)
redim suggest_words (Ubound(words))
FOR i = 0 to UBOUND(words)
suggest_words(i) = Join( objASPSpell.Suggestions(words(i)), dlimit2)
NEXT 'i
Response.Write "WINSUGGEST"
Response.Write dlimit5
Response.Write sender
Response.Write dlimit5
Response.Write(JOIN( suggest_words,dlimit1))
END IF ''' WIN SUGGEST
IF (command ="CTXSPELL") THEN
words = split(args,dlimit1)
redim error_type_words (Ubound(words))
redim spell_check_words (Ubound(words))
redim suggest_words (Ubound(words))
FOR i = 0 to UBOUND(words)
error_type_words(i) ="-"
IF ( objASPSpell.SpellCheck(words(i))) THEN
spell_check_words(i) = "T"
ELSE
spell_check_words(i) = "F"
error_type_words(i) = objASPSpell.ErrorTypeWord(words(i))
END IF
NEXT 'i
Response.Write ("CTXSPELL")
Response.Write (dlimit5)
Response.Write (sender)
Response.Write (dlimit5)
Response.Write(JOIN( spell_check_words,""))
Response.Write(dlimit5)
Response.Write(JOIN( error_type_words,dlimit1))
END IF 'CTXSPELL
IF (command ="CTXSUGGEST") THEN
word = args
Response.Write ("CTXSUGGEST")
Response.Write (dlimit5)
Response.Write (sender)
Response.Write (dlimit5)
Response.Write( Join( objASPSpell.Suggestions(args), dlimit2) )
IF(note="ADDLANGS") THEN
Response.Write (dlimit5)
Response.Write(JOIN( objASPSpell.ListDictionaries(),dlimit2))
END IF
END IF 'CTXSUGGEST
IF (command ="RAWSPELL") THEN
word = args
ok = objASPSpell.SpellCheck(word)
Response.Write ("RAWSPELL")
Response.Write (dlimit5)
Response.Write (sender)
Response.Write (word)
Response.Write (sender)
Response.Write (dlimit5)
IF (ok) THEN Response.Write ("T") ELSE Response.Write ("F")
Response.Write (dlimit5)
if( ok) THEN
Response.Write (word)
Response.Write (dlimit5)
Response.Write ("")
ELSE
Response.Write( Join( objASPSpell.Suggestions(word), dlimit2) )
Response.Write (dlimit5)
Response.Write objASPSpell.ErrorTypeWord(word)
END IF
END IF '' RAWSPELL
IF (command ="APISPELL" OR command ="APISPELLARRAY") THEN
words = split(args,dlimit1)
doSuggest = (note<>"NOSUGGEST")
redim error_type_words (Ubound(words))
redim spell_check_words (Ubound(words))
redim suggest_words (Ubound(words))
FOR i = 0 to UBOUND(words)
error_type_words(i) = ""
IF ( objASPSpell.SpellCheck(words(i))) THEN
spell_check_words(i) = "T"
ELSE
spell_check_words(i) = "F"
error_type_words(i) = objASPSpell.ErrorTypeWord(words(i))
if(doSuggest) THEN
suggest_words(i) = Join( objASPSpell.Suggestions(words(i)), dlimit2)
ELSE
suggest_words(i) = ""
END IF
END IF
NEXT 'i
Response.Write (command)
Response.Write (dlimit5)
Response.Write (sender)
Response.Write (dlimit5)
Response.Write(JOIN( spell_check_words,""))
Response.Write (dlimit5)
Response.Write(JOIN( error_type_words,dlimit1))
Response.Write(dlimit5)
Response.Write(JOIN( suggest_words,dlimit1))
Response.Write(dlimit5)
Response.Write(JOIN( words,dlimit1))
END IF 'APISPELL / APISPELLARRAY
IF (command ="APIDYM" ) THEN
Set objASPSpellDYM = ASPSpellObjectProvider.Create("aspdidyoumean")
objASPSpellDYM.setInstallPath( (replace(LCASE(Request.ServerVariables("PATH_INFO")),"core/default.asp","dictionaries/"))+"")
objASPSpellDYM.setSugguestionsLimit(1)
arrLangs = Split(lang,",")
for i=0 to UBOUND(arrLangs)
objASPSpellDYM.AddDictionary(trim(arrLangs(i)))
next
Response.Write ("APIDYM")
Response.Write (dlimit5)
Response.Write (sender)
Response.Write (dlimit5)
Response.Write (args)
Response.Write (dlimit5)
Response.Write (objASPSpellDYM.SuggestionString(args))
Response.Write (dlimit5)
Response.Write (lang)
END IF 'APIDYM
IF (command ="APIVALIDATE") THEN
words = split(args,dlimit1)
objASPSpell.ignoreCaseMistakes = (note="CASESENSITVE")
redim error_type_words (Ubound(words))
redim spell_check_words (Ubound(words))
sValid = "T"
FOR i = 0 to UBOUND(words)
error_type_words(i) = ""
IF ( objASPSpell.SpellCheck(words(i))) THEN
spell_check_words(i) = "T"
ELSE
spell_check_words(i) = "F"
sValid = "F"
error_type_words(i) = objASPSpell.ErrorTypeWord(words(i))
END IF
NEXT 'i
Response.Write (command)
Response.Write (dlimit5)
Response.Write (sender)
Response.Write (dlimit5)
Response.Write(JOIN( spell_check_words,""))
Response.Write (dlimit5)
Response.Write(JOIN( error_type_words,dlimit1))
Response.Write(dlimit5)
Response.Write(JOIN( words,dlimit1))
Response.Write(dlimit5)
Response.Write(sValid)
END IF 'APIVALIDATE
IF (script) THEN response.write ("<script type=""text/javascript"">window.parent.livespell.ajax.pickupIframe(document.body.innerHTML);history.go(-1);</script>")
Response.flush
response.end()
%><%
'
%>
+120
View File
@@ -0,0 +1,120 @@
var livespell;spellWin={resumeAfterEditing:function(){this.pickup();spellWin.regroup(false)},isStillOpen:function(){return window.document!=null;},providerID:null,provider:function(){if(!livespell){this.handshake()}
return livespell.spellingProviders[this.providerID];},lang:{localize_ui:function(){document.title=this.fetch("WIN_TITLE");E$("btnAddToDict").value=this.fetch("BTN_ADD_TO_DICT");E$("btnAutoCorrect").value=this.fetch("BTN_AUTO_CORECT");E$("btnOptionsCancel").value=E$("btnLangCancel").value=this.fetch("BTN_CANCEL");E$("btnChange").value=this.fetch("BTN_CHANGE");E$("btnChangeAll").value=this.fetch("BTN_CHANGE_ALL");E$("btnCancel").value=this.fetch("BTN_CLOSE");E$("btnIgnoreAll").value=this.fetch("BTN_IGNORE_ALL");E$("btnIgnore").value=this.fetch("BTN_IGNORE_ONCE");E$("btnUndoManualEdit").value=this.fetch("BTN_CLEAR_EDIT");E$("btnUndo").value=this.fetch("BTN_UNDO");E$("btnAllDone").value=E$("btnOptionsOK").value=E$("btnLangOK").value=this.fetch("BTN_OK");E$("btnShowOptions").value=this.fetch("BTN_OPTIONS");E$("btnResetDict").value=E$("btnResetAutoCorrect").value=this.fetch("BTN_RESET");E$("tSum").innerHTML=this.fetch("DONESCREEN_MESSAGE");E$("fldLanguageLab").innerHTML=this.fetch("LABEL_LANGAUGE");E$("SuggestionsLab").innerHTML=this.fetch("LABEL_SUGGESTIONS");E$("fldLanguageMultipleLabText").innerHTML=this.fetch("LANGUAGE_MULTIPLE_INSTRUCTIONS");E$("lMeaningLink").innerHTML=this.fetch("LOOKUP_MEANING");E$("optCaseSensitiveText").innerHTML=this.fetch("OPT_CASE_SENSITIVE");E$("optAllCapsbText").innerHTML=this.fetch("OPT_IGNORE_CAPS");E$("optNumericText").innerHTML=this.fetch("OPT_IGNORE_NUMERIC");E$("optSentenceText").innerHTML=this.fetch("OPT_SENTENCE_AWARE");E$("btnResetDictLabText").innerHTML=this.fetch("OPT_PERSONAL_DICT");E$("btnResetAutoCorrectLabText").innerHTML=this.fetch("OPT_PERSONAL_AUTO_CURRECT");if(spellWin.provider().AddWordsToDictionary=="SERVER"){E$("btnAddToDict").value=this.fetch("BTN_ADD_TO_DICT").replace("Personal","Word")}},fetch:function(index){return livespell.lang.fetch(spellWin.providerID,index);}},allDone:false,docs:[],wordstocheck:[],currentDoc:0,currentToken:0,currentReason:"",editcount:0,suggestionsInMotion:true,undo:{bookmarks:[],set:function(action){var mem={};var targets="currentDoc,currentReason,currentToken,editcount".split(",");for(var i=0;i<targets.length;i++){mem[targets[i]]=spellWin[targets[i]]}
mem.word=spellWin.tokens.getCurrent();mem.docs=this.arrayCopy(spellWin.docs)
mem.action=action+"";if(action==="ADD"){mem.add=livespell.cookie.get("SPELL_DICT_USER");}
if(action==="AUTO"){mem.auto=livespell.cookie.get("SPELL_AUTOCORRECT_USER");}
this.bookmarks.push(mem);if(this.bookmarks.length>spellWin.provider().UndoLimit){this.bookmarks.shift();}},get:function(){var mem=this.bookmarks.pop();if(!mem){return};var targets="currentDoc,currentReason,currentToken,editcount".split(",");for(var i=0;i<targets.length;i++){spellWin[targets[i]]=mem[targets[i]]}
delete spellWin.docs;spellWin.docs=this.arrayCopy(mem.docs)
delete livespell.cache.ignore[mem.word]
if(mem.action==="ADD"){spellWin.actions.deletePersonal();livespell.cookie.set("SPELL_DICT_USER",mem.add);}
if(mem.action==="AUTO"){spellWin.actions.deleteAutoCorrect();livespell.cookie.set("SPELL_AUTOCORRECT_USER",mem.auto);}
spellWin.tokenize();spellWin.moveNext();},arrayCopy:function(ain){var aout=[];for(var it in ain){aout[it]=ain[it]}
return aout;}},tokens:{value:[],countWords:function(){var num=0;for(var i=0;i<this.value.length;i++){for(var j=0;j<this.value[i].length;j++){if(this.isWord(i,j)){num++}}}
return num;},next:function(){spellWin.currentToken++
if(spellWin.currentToken>this.value[spellWin.currentDoc].length){spellWin.currentDoc++;spellWin.currentToken=0;}},set:function(i,j,val){this.value[i][j]=val;},setCurrent:function(val){this.value[spellWin.currentDoc][spellWin.currentToken]=val;},getCurrent:function(){return this.value[spellWin.currentDoc][spellWin.currentToken];},isWord:function(i,j){return livespell.test.isword(this.value[i][j])},startsSentence:function(i,j){return(j<2||livespell.test.eos(this.value[i][j-1]))},findAndReplace:function($$from,$$to,$$toCase){for(var i=0;i<this.value.length;i++){for(var j=0;j<this.value[i].length;j++){if(this.isWord(i,j)&&this.value[i][j].toLowerCase()==$$from.toLowerCase()){this.value[i][j]=livespell.str.toCase($$to,livespell.str.getCase(this.value[i][j]),this.startsSentence(i,j));spellWin.editcount++;}}}},appetureXHTML:function(i,j,green){var $$appeture=this.appeture(i,j,false);$$out="";for(var k=$$appeture.min;k<=$$appeture.max;k++){$$fragment=livespell.str.stripTags(this.value[i][k]);if(k==j){if(!green){$$fragment='<span id="highlight">'+$$fragment+"</span>";}else{$$fragment='<span id="highlightGrammar">'+$$fragment+"</span>";}}
$$out+=$$fragment;}
return $$out;},setAppeture:function(i,j,value){var $$appeture=this.appeture(i,j,true);for(var k=$$appeture.min;k<=$$appeture.max;k++){if(k==$$appeture.min){this.value[i][k]=value;}else{this.value[i][k]="";}}
spellWin.currentToken=$$appeture.min;},appetureText:function(i,j){var $$appeture=this.appeture(i,j,true);$$out="";for(var k=$$appeture.min;k<=$$appeture.max;k++){$$fragment=this.value[i][k];if($$fragment){$$out+=$$fragment;}}
return $$out;},appeture:function(i,j,binsafe){var doclen=this.value[i].length;var found=false
for(var $$min=j;$$min>0&&$$min>j-20&&!found;$$min--){if(livespell.test.eos(this.value[i][$$min])||(binsafe&&livespell.test.HTML(this.value[i][$$min]))){$$min++;found=true;break;}}
found=false
for(var $$max=j;$$max<doclen&&$$max<j+20&&!found;$$max++){if(livespell.test.eos(this.value[i][$$max])||(binsafe&&livespell.test.HTML(this.value[i][$$max]))){$$max--;found=true;break;}}
var $$appeture={};$$appeture.min=$$min;$$appeture.max=$$max;return $$appeture;}},actions:{registerclose:function(){if(spellWin.allDone){spellWin.provider().onDialogCompleteNET();spellWin.provider().onDialogComplete();spellWin.provider().__SubmitForm();}else{spellWin.provider().onDialogClose();}},done:function(){spellWin.provider().onDialogCompleteNET();spellWin.provider().onDialogComplete();spellWin.provider().__SubmitForm();spellWin.allDone=false;if(!spellWin.provider().ShowSummaryScreen&&spellWin.provider().isUniPacked&&spellWin.undo.bookmarks.length==0){var doret=false;srthtml="<h2 class='spellnofify'>"+spellWin.lang.fetch("DONESCREEN_MESSAGE")+"</h2><br/>"
try{window.parent.Modalbox.show(srthtml,{title:spellWin.lang.fetch("WIN_TITLE"),slideDownDuration:0.2,slideUpDuration:0.2});doret=true;}catch(e){}
try{window.opener.Modalbox.show(srthtml,{title:spellWin.lang.fetch("WIN_TITLE"),slideDownDuration:0.2,slideUpDuration:0.2});doret=true;}catch(e){}
try{window.opener.Modalbox.resizeToContent()}catch(e){}
if(doret){return}}
if(spellWin.provider().CustomOpenerClose)
{spellWin.provider().CustomOpenerClose()}
else if(window.opener||window.parent){window.iclose();}else if(dialogArguments&&dialogArguments.document){window.iclose();}},cancel:function(){spellWin.provider().onDialogCancel();if(spellWin.provider().CustomOpenerClose)
{spellWin.provider().CustomOpenerClose()}
else if(window.opener||window.parent){window.iclose();}else if(dialogArguments&&dialogArguments.document){window.iclose();}},changeLanguage:function(){if(spellWin.ui.getMenuValue("fldLanguage")==spellWin.lang.fetch("LANGUAGE_MULTIPLE")){spellWin.optionsMenu.showMultiLang(true)}else{spellWin.provider().Language=spellWin.ui.getMenuValue("fldLanguage");spellWin.provider().onChangeLanguage(spellWin.ui.getMenuValue("fldLanguage"))
spellWin.regroup(false);}},changeMultiLanguage:function(){spellWin.provider().Language=spellWin.ui.getMenuValue("fldLanguageMultiple");spellWin.provider().onChangeLanguage(spellWin.ui.getMenuValue("fldLanguageMultiple"))
spellWin.optionsMenu.showMultiLang(false)
spellWin.ui.setupLanguageMenu();spellWin.regroup(false);},deletePersonal:function(){livespell.userDict.forget();livespell.cookie.erase("SPELL_DICT_USER");spellWin.provider().docRePaint();},deleteAutoCorrect:function(){livespell.cookie.erase("SPELL_AUTOCORRECT_USER");},ignoreOnce:function(){spellWin.undo.set();spellWin.provider().onIgnore(spellWin.tokens.getCurrent());spellWin.tokens.next();return spellWin.moveNext();},ignoreAll:function(){spellWin.undo.set();livespell.cache.ignore[spellWin.tokens.getCurrent().toLowerCase()]=true;spellWin.provider().onIgnoreAll(spellWin.tokens.getCurrent());spellWin.tokens.next();return spellWin.moveNext();},changeCurrent:function(){spellWin.undo.set();spellWin.editcount++
if(spellWin.ui.editingNow){spellWin.tokens.setAppeture(spellWin.currentDoc,spellWin.currentToken,E$("fldTextInput").value);spellWin.provider().onChangeWord(spellWin.tokens.getCurrent(),E$("fldTextInput").value);spellWin.ui.showEdit(false);spellWin.moveNext();return;}
var oS=E$("fldSuggestions");var os_value=spellWin.ui.getMenuValue("fldSuggestions")
if(oS.disabled){if(os_value=="__*DEL*__"){spellWin.provider().onChangeWord(spellWin.tokens.getCurrent(),"");spellWin.tokens.setCurrent("");spellWin.tokens.set(spellWin.currentDoc,spellWin.currentToken-1,livespell.str.rtrim(spellWin.tokens.value[spellWin.currentDoc][spellWin.currentToken-1]))}
if(os_value=="NONE"){spellWin.tokens.next();return spellWin.moveNext();}}else{if(os_value=="__*REG*__"){var a
if(spellWin.provider().isUniPacked){a="javascriptspellcheck";}
else if(spellWin.provider().ServerModel.toLowerCase()=="asp.net"||spellWin.provider().ServerModel.toLowerCase()=="aspx"){a="aspnetspell";}
else if(spellWin.provider().ServerModel.toLowerCase()=="asp"){a="aspspellcheck";}
else{a="phpspellcheck";}
window.open("h"+"tt"+"p"+":"+"/"+"/w"+"ww."+a+".c"+"om/Pur"+""+"cha"+"se")}else{spellWin.provider().onChangeWord(spellWin.tokens.getCurrent(),os_value);spellWin.tokens.setCurrent(os_value);}}
spellWin.tokens.next();return spellWin.moveNext();},changeAll:function(){spellWin.undo.set();var $$from=spellWin.tokens.getCurrent()
var $$to=spellWin.ui.getMenuValue("fldSuggestions");var $$toCase=livespell.str.getCase($$to);spellWin.tokens.findAndReplace($$from,$$to,$$toCase);spellWin.provider().onChangeAll($$from,$$to);spellWin.tokens.next()
spellWin.moveNext();},addPersonal:function(word){spellWin.undo.set("ADD");word=spellWin.tokens.getCurrent()
if(spellWin.provider().AddWordsToDictionary=="SERVER"){livespell.ajax.send("SAVEWORD",word,0,0,spellWin.provider().id());}
livespell.userDict.add(word)
spellWin.provider().docRePaint();spellWin.provider().onLearnWord(spellWin.tokens.getCurrent());spellWin.moveNext();},addAutoCorrect:function(){spellWin.undo.set("AUTO");$$current_cookie=livespell.cookie.get("SPELL_AUTOCORRECT_USER");var $$from=spellWin.tokens.getCurrent()
var $$to=spellWin.ui.getMenuValue("fldSuggestions");var $$toCase=livespell.str.getCase($$to);spellWin.tokens.findAndReplace($$from,$$to,$$toCase);if($$current_cookie){$$current_cookie=livespell.str.chr(1)+$$current_cookie}
$$current_cookie=$$from+"->"+$$to+"#"+$$toCase+$$current_cookie;livespell.cookie.setLocal("SPELL_AUTOCORRECT_USER",$$current_cookie);spellWin.provider().docRePaint();spellWin.provider().onLearnAutoCorrect($$from,$$to);spellWin.moveNext();}},optionsMenu:{showMultiLang:function(flag){spellWin.ui.show("multiLangForm",flag);spellWin.ui.show("MainForm",!flag);var fLang=E$("fldLanguage")
if(!flag){for(var i=0;i<fLang.options.length;i++){if(fLang.options[i].value==spellWin.provider().Language){fLang.selectedIndex=i;}}}},show:function(flag){if(flag){var pdict=livespell.cookie.get("SPELL_DICT_USER")
var intPersonalEntries=pdict.length?pdict.split(livespell.str.chr(1)).length:0;E$("tDictCount").innerHTML=intPersonalEntries+" "+spellWin.lang.fetch("OPT_ENTRIES");spellWin.ui.enable("btnResetDict",intPersonalEntries>0);var pauto=livespell.cookie.get("SPELL_AUTOCORRECT_USER")
var intPersonalAutoEntries=pauto.length?pauto.split(livespell.str.chr(1)).length:0;E$("tAutoCorrectCount").innerHTML=intPersonalAutoEntries+" "+spellWin.lang.fetch("OPT_ENTRIES");spellWin.ui.enable("btnResetAutoCorrect",intPersonalAutoEntries>0);E$("optCaseSensitive").checked=spellWin.provider().CaseSensitive;E$("optAllCaps").checked=spellWin.provider().IgnoreAllCaps;E$("optNumeric").checked=spellWin.provider().IgnoreNumeric;}
spellWin.ui.show("optForm",flag);spellWin.ui.show("MainForm",!flag);},set:function(){spellWin.provider().CaseSensitive=E$("optCaseSensitive").checked;spellWin.provider().IgnoreAllCaps=E$("optAllCaps").checked;spellWin.provider().IgnoreNumeric=E$("optNumeric").checked;spellWin.provider().CheckGrammar=E$("optSentence").checked;this.show(false);spellWin.moveNext();}},init:function(){this.handshake();this.pickup();this.setTheme();this.hideButtons();spellWin.provider().setFieldListeners();setInterval(this.openerAware,100);this.lang.localize_ui();E$("optSentence").checked=spellWin.provider().CheckGrammar;this.ui.setLoadingMessage();spellWin.tokenize();this.autoCorrectOnLoad();livespell.userDict.load();this.ui.disableAll();this.suggestionsInMotion=false;spellWin.buildWordQue();this.sendInitialAJAXRequest(false);},openerAware:function(){if(window.opener||window.parent){return;}
try{if(dialogArguments&&dialogArguments.document){return;}}catch(e){}
window.iclose();},regroup:function(binisrepeat){this.suggestionsInMotion=false;this.ui.setLoadingMessage();spellWin.tokenize();this.ui.disableAll();spellWin.buildWordQue();this.sendInitialAJAXRequest(binisrepeat)},nextSuggestionChunk:function(){if(!this.suggestionsInMotion){return this.regroup(true)}
var chunksize=8;livespell.cache.suglist=[];for(var i=spellWin.currentDoc;i<this.tokens.value.length;i++){for(var j=(i==spellWin.currentDoc?spellWin.currentToken:0);j<this.tokens.value[i].length;j++){var spelltest=livespell.test.spelling(this.tokens.value[i][j],spellWin.provider().Language);var unknown=(!livespell.cache.suggestions[spellWin.provider().Language][this.tokens.value[i][j]]);if(this.tokens.isWord(i,j)&&!spelltest&&unknown){livespell.cache.suglist=livespell.array.safepush(livespell.cache.suglist,this.tokens.value[i][j])
if(livespell.cache.suglist.length>=chunksize){return this.fetchSuggestionRequest()}}}}
if(livespell.cache.suglist.length){return this.fetchSuggestionRequest()}
this.suggestionsInMotion=false;},fetchSuggestionRequest:function(){livespell.ajax.send("WINSUGGEST",livespell.cache.suglist.join(livespell.str.chr(1)),spellWin.provider().Language,"",spellWin.providerID)},notify:function(){delete this.docs;this.docs=[];for(var i=0;i<this.tokens.value.length;i++){this.docs[i]=this.tokens.value[i].join("");}
spellWin.tokenize();spellWin.provider().docUpdate(this.docs);},autoCorrectOnLoad:function(){var $$current_cookie=livespell.cookie.get("SPELL_AUTOCORRECT_USER");if(!$$current_cookie){return false;}
var $$mycmds=$$current_cookie.split(livespell.str.chr(1));for(var key in $$mycmds){var mycmd=$$mycmds[key];if(!mycmd||!mycmd.length){return}
try{var a_mycmd=mycmd.split("->");if(a_mycmd[1]){var from=a_mycmd[0];var to=a_mycmd[1].split("#")[0];var toCase=a_mycmd[1].split("#")[1];livespell.cache.ignore[to.toLowerCase()]=true;this.tokens.findAndReplace(from,to,toCase);}}catch(e){}}},moveNext:function(){this.notify();try{window.focus();}catch(e){};var $$typo=this.FindNextTypo();if($$typo===null){return;}
var suggestions=livespell.cache.suggestions[spellWin.provider().Language][$$typo];var reason=spellWin.currentReason;var newSentence=this.tokens.startsSentence(spellWin.currentDoc,spellWin.currentToken);var suggestionsPending=(reason!=="R"&&reason!=="G"&&!livespell.cache.suggestions[spellWin.provider().Language][$$typo]);if(suggestionsPending){this.ui.disableAll();if(!this.suggestionsInMotion){this.suggestionsInMotion=true
spellWin.nextSuggestionChunk();}
return setTimeout("spellWin.moveNext()",1000)}
var isGreen=reason=="G"||reason=="R";if(!isGreen){var oCase=livespell.str.getCase($$typo);if(oCase===2){for(var j=0;j<suggestions.length;j++){suggestions[j]=suggestions[j].toUpperCase();}}
if(oCase===1){for(var j=0;j<suggestions.length;j++){suggestions[j]=livespell.str.toCaps(suggestions[j]);}}}
if(!suggestions||!suggestions.length||suggestions[0]===""){suggestions=[];}
var dsuggs=[];for(j=0;j<suggestions.length;j++){dsuggs=livespell.array.safepush(dsuggs,suggestions[j])}
suggestions=dsuggs;E$("TextShow").innerHTML=this.tokens.appetureXHTML(spellWin.currentDoc,spellWin.currentToken,isGreen);var oS=E$("fldSuggestions");oS.options.length=0
if(reason=="G"){if(!suggestions||!suggestions.length||suggestions[0]===""){suggestions=[];suggestions[0]=$$typo;}
for(var i=0;i<suggestions.length;i++){suggestions[i]=livespell.str.toCase(suggestions[i],0,true);}}
if(!suggestions||!suggestions.length||suggestions[0]===""||reason=="R"){oS.disabled=true;}else{oS.disabled=false;if(reason==="X"&&spellWin.provider().isUniPacked){suggestions=new Array("JavaScriptSpellCheck Trial","Please register online","javascriptspellcheck.com");}
for(var i=0;i<suggestions.length;i++){if(reason==="X"){oS.options[i]=(new Option(suggestions[i],"__*REG*__",i==0,i==0));}else{oS.options[i]=(new Option(suggestions[i],suggestions[i],i==0,i==0));}}}
this.ui.enable("btnIgnore,btnIgnoreAll,btnAddToDict,btnChange,btnChangeAll,btnAutoCorrect,btnShowOptions",true)
if(reason=="X"){this.ui.enable("btnIgnoreAll,btnAddToDict,btnChangeAll,btnAutoCorrect",false)}
this.ui.show("lMeaning",false);this.ui.enable("btnUndo",this.undo.bookmarks.length>0)
switch(reason){case"C":E$("fldTextInputLab").innerHTML=spellWin.lang.fetch("REASON_CASE");break;case"R":E$("fldTextInputLab").innerHTML=spellWin.lang.fetch("REASON_REPEATED");oS.options.length=0;oS.options[0]=(new Option(spellWin.lang.fetch("SUGGESTIONS_DELETE_REPEATED"),"__*DEL*__",false,true));this.ui.enable("btnIgnoreAll,btnAddToDict,btnChangeAll,btnAutoCorrect,fldSuggestions",false)
break;case"G":E$("fldTextInputLab").innerHTML=spellWin.lang.fetch("REASON_GRAMMAR");this.ui.enable("btnIgnoreAll,btnAddToDict,btnChangeAll,btnAutoCorrect",false)
break;default:if(reason==="B"){E$("fldTextInputLab").innerHTML=spellWin.lang.fetch("REASON_BANNED");if(spellWin.provider().Strict){this.ui.enable("btnIgnore,btnIgnoreAll,btnAddToDict",false)}}else if(reason==="E"){E$("fldTextInputLab").innerHTML=spellWin.lang.fetch("REASON_ENFORCED");this.ui.enable("btnIgnore,btnIgnoreAll,btnAddToDict",false)}else{E$("fldTextInputLab").innerHTML=spellWin.lang.fetch("REASON_SPELLING");}
if(!suggestions.length||suggestions[0]==""){oS.options[0]=(new Option(spellWin.lang.fetch("SUGGESTIONS_NONE"),$$typo,false,true));this.ui.enable("btnChange,btnChangeAll,btnAutoCorrect",false)}else{if(spellWin.provider().ShowMeanings&&!livespell.test.FireFox()){this.ui.show("lMeaning",true);}}
break;}},FindNextTypo:function(){for(var i=this.currentDoc;i<this.tokens.value.length;i++){for(var j=(i===this.currentDoc?this.currentToken:0);j<this.tokens.value[i].length;j++){if(this.tokens.isWord(i,j)){var word=this.tokens.value[i][j];var spelltest=livespell.test.spelling(word,spellWin.provider().Language);var unknown=spelltest!==true&&spelltest!==false;if(unknown){spellWin.regroup(false)
return null;}
if(!spelltest){var reason=livespell.cache.reason[spellWin.provider().Language][word]?livespell.cache.reason[spellWin.provider().Language][word]:"";if(spellWin.provider().IgnoreAllCaps&&livespell.test.ALLCAPS(word)&&reason!=="B"&&reason!=="E"){spelltest=true;}
if(spellWin.provider().IgnoreNumeric&&(livespell.test.num(word))&&reason!=="B"&&reason!=="E"){spelltest=true;}
if(!spellWin.provider().CaseSensitive&&reason=="C"){spelltest=true;}}
if(spellWin.provider().CheckGrammar&&!spellWin.tokens.startsSentence(i,j)&&j>1&&spellWin.tokens.value[i][j].toUpperCase()===spellWin.tokens.value[i][j-2].toUpperCase()){if(spellWin.tokens.value[i][j].toUpperCase()!=spellWin.tokens.value[i][j].toLowerCase()){spelltest=false;reason="R";}}
if(spellWin.provider().CaseSensitive&&spellWin.provider().CheckGrammar&&spellWin.tokens.startsSentence(i,j)&&livespell.test.lcFirst(word)){var strDoc=this.tokens.value[i].join(" ");if(strDoc.indexOf(".")>0||strDoc.indexOf("!")>0||strDoc.indexOf("?")>0||strDoc.length>50){spelltest=false;reason="G";}}
if(!spelltest){this.currentDoc=i;this.currentToken=j;this.currentReason=reason;var nextWord=this.tokens.value[i][j];return nextWord;}}}};spellWin.ui.finished()
return null;},sendInitialAJAXRequest:function(binisrepeat){if(binisrepeat){livespell.ajax.send("WINSETUP",livespell.cache.wordlist[spellWin.providerID].join(livespell.str.chr(1)),spellWin.provider().Language,"5",spellWin.providerID)}else{livespell.ajax.send("WINSETUP",livespell.cache.wordlist[spellWin.providerID].join(livespell.str.chr(1)),spellWin.provider().Language,"0",spellWin.providerID)}},tokenize:function(){for(var i=0;i<this.docs.length;i++){this.tokens.value[i]=livespell.str.tokenize(this.docs[i]);}},buildWordQue:function(){var memsize=0;var memmax=livespell.maxURI-128;livespell.cache.wordlist[spellWin.providerID]=[];for(var i=0;i<this.tokens.value.length&&memsize<memmax;i++){for(var j=0;j<this.tokens.value[i].length&&memsize<memmax;j++){var spelltest=true
spelltest=livespell.test.spelling(this.tokens.value[i][j],spellWin.provider().Language);var unknown=(spelltest!==true&&spelltest!==false);if(this.tokens.isWord(i,j)&&(!spelltest)&&unknown){memsize+=this.tokens.value[i][j].toString().length;livespell.cache.wordlist[spellWin.providerID]=livespell.array.safepush(livespell.cache.wordlist[spellWin.providerID],this.tokens.value[i][j].toString())}}}
this.suggestionsInMotion=(memsize<memmax);},handshake:function(){if(window.opener){livespell=window.opener.livespell}else if(window.parent!=window){livespell=window.parent.livespell;}
else{livespell=dialogArguments.livespell}
spellWin.providerID=(spellWin.querystring.get("instance"));spellWin.provider().spellWindowObject=spellWin;},setTheme:function(){var strTheme=spellWin.provider().CSSTheme;if(strTheme.length){E$("theme").setAttribute("href","themes/"+strTheme+"/dialog-window.css")}},hideButtons:function(){if(spellWin.provider().AddWordsToDictionary=="NONE"){E$("btnAddToDict").style.display="none";}
var arrHideButtons=(spellWin.provider().HiddenButtons.split(","))
for(var i=0;i<arrHideButtons.length;i++){strBtn=arrHideButtons[i];try{oBtn=E$(strBtn);if(oBtn&&oBtn.value){oBtn.style.display="none";};}catch(e){}}},pickup:function(){this.docs=spellWin.provider().docPickup();},querystring:{get:function(request){var query=window.location.search.substring(1);var vars=query.split("&");for(var i=0;i<vars.length;i++){var pair=vars[i].split("=");if(pair[0]==request){return pair[1];}}}},ui:{setGrammar:function(){spellWin.provider().CheckGrammar=E$("optSentence").checked;spellWin.moveNext();},setLoadingMessage:function(){E$("fldTextInputLab").innerHTML="";setTimeout(this.setLoadingMessageTimed,400);},setLoadingMessageTimed:function(){if(E$("fldTextInputLab").innerHTML!==""){return};E$("fldTextInputLab").innerHTML="<div id='ajaxLoader' ></div>";},finished:function(){this.show("optForm,SpellForm",false)
if(!spellWin.provider().ShowSummaryScreen){return spellWin.actions.done()}
spellWin.allDone=true;E$("tDoc").innerHTML=spellWin.lang.fetch("DONESCREEN_FIELDS")+" "+spellWin.tokens.value.length;E$("tEdi").innerHTML=spellWin.lang.fetch("DONESCREEN_EDITS")+" "+spellWin.editcount;E$("tWrd").innerHTML=spellWin.lang.fetch("DONESCREEN_WORDS")+" "+spellWin.tokens.countWords();this.show("doneForm",true)},setupLanguageMenu:function(){E$("fldLanguage").options.length=0;E$("fldLanguageMultiple").options.length=0;var ffound=false
for(l=0;l<livespell.cache.langs.length;l++){E$("fldLanguage")[l]=new Option(livespell.cache.langs[l],livespell.cache.langs[l],false,spellWin.provider().Language==livespell.cache.langs[l]);E$("fldLanguageMultiple")[l]=new Option(livespell.cache.langs[l],livespell.cache.langs[l],false,spellWin.provider().Language==livespell.cache.langs[l]);if(spellWin.provider().Language===livespell.cache.langs[l]){ffound=true;}}
E$("fldLanguage")[l]=new Option(spellWin.lang.fetch("LANGUAGE_MULTIPLE"),spellWin.lang.fetch("LANGUAGE_MULTIPLE"),false,false);if(ffound!==true){E$("fldLanguage").options.add(new Option(spellWin.provider().Language,spellWin.provider().Language,true,true),0);E$("fldLanguage").selectedIndex=0;}},lookupMeaning:function(){var word=spellWin.ui.getMenuValue("fldSuggestions");if(word=="__*REG*__"){word="registration"}
var url=spellWin.provider().MeaningProvider.replace("{word}",word)
if(window.opener&&livespell.test.IE()){window.opener.open(url);}else{window.open(url);}},disableAll:function(){this.showEdit(false);this.enable("btnIgnore,btnIgnoreAll,btnAddToDict,btnChange,btnChangeAll,btnAutoCorrect,btnUndo,btnShowOptions",false)},enable:function(elements,flag){if(!elements.join){var elements=elements.split(",")}
for(var i=0;i<elements.length;i++){try{E$(elements[i]).disabled=!flag;}catch(e){}}},show:function(elements,flag){if(!elements.join){var elements=elements.split(",")}
for(var i=0;i<elements.length;i++){E$(elements[i]).style.display=flag?"block":"none";}},editingNow:false,showEdit:function(flag){if(this.editingNow==flag){return null;}
E$("fldTextInput").value=flag?spellWin.tokens.appetureText(spellWin.currentDoc,spellWin.currentToken):"";this.editingNow=flag;this.show("TextShow",!flag);this.show("btnUndoManualEdit",flag);this.enable("btnIgnore,btnIgnoreAll,btnAddToDict,btnChangeAll,btnAutoCorrect,btnShowOptions,fldSuggestions",!flag)
if(flag){this.enable('btnChange',true)
E$('fldTextInput').focus();}else{spellWin.moveNext()}
return null;},getMenuValue:function(id){var o=E$(id)
if(!o.multiple){if(o.selectedIndex===null||o.selectedIndex<0){return""}
return o.options[o.selectedIndex].value;}else{var selVals=new Array();for(var i=0;i<o.length;i++){if(o.options[i].selected){selVals.push(o.options[i].value);}}
return selVals.join(",")}}}}
window.iclose=function(){if(spellWin.provider().WindowMode.toLowerCase()=="modalbox"){try{window.opener.Modalbox.hide()}catch(e){}
try{window.parent.Modalbox.hide()}catch(e){}}
if(spellWin.provider().WindowMode.toLowerCase()=="fancybox"){try{window.opener.$.fancybox.close()}catch(e){}
try{window.parent.$.fancybox.close()}catch(e){}}
window.close()}
E$=function(id){return document.getElementById(id);}
+318
View File
@@ -0,0 +1,318 @@
<?php
header('Content-type: text/html; charset=ISO-8859-1');
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
// Freeing up memory where available improoves performance on huge dictionary searches.
try{ini_set("memory_limit","255M");}catch(Exception $e){}
include "php/engine.php";
$script = false;
$SaveToCentralDictionary = false;
error_reporting(0);
if(!isset($_GET["command"])){die("no command");}
if(isset($_GET["lan"]) && strlen($_GET["lan"])>0){$lang = $_GET["lan"];}else{$lang = "English (International)" ;}
if(isset($_GET["note"]) && strlen($_GET["lan"])>0){$note = $_GET["note"];}else{$note = "" ;}
if(isset($_GET["script"])){$script = true ;}
if(isset($_GET["sender"])){$sender = $_GET["sender"] ;}
if(isset($_GET["settingsfile"]) && strstr($_GET["settingsfile"],"/")===false && strstr($_GET["settingsfile"],'\\') ===false && strstr($_GET["settingsfile"],".")===false ){
$settingsfile = $_GET["settingsfile"] ;
}else{$settingsfile = "default-settings";}
$RequestedLangs = explode(",",$lang);
include ("settings/$settingsfile.php");
if( strtoupper($_GET["command"])=="SAVEWORD" ){
/*SAVE CENTRAL DICTIONARY ON USER ADD*/
echo("SAVEWORD");
echo chr(5);
echo $sender ;
echo chr(5);
if($SaveToCentralDictionary){
$wordToSave = stripcslashes($_GET["args"]);
$filePath = $spellcheckObject->DictionaryPath.$spellcheckObject->SaveToCentralDictionary;
if (is_writable($filePath)) {
$handle = fopen($filePath, 'a');
fwrite($handle, "\n".$wordToSave);
fclose($handle);
echo "$wordToSave Saved to $filePath";
}else{
echo "$wordToSave Not Saved - $filePath Unwritable";
}}else{
echo "!! SaveToCentralDictionary Must be set true in core/index.php line 10 to allow for a centralized 'add to dictionary'";
}
/*SAVE CENTRAL DICTIONARY ON USER ADD*/
}
if( strtoupper($_GET["command"])=="WINSETUP" ){
$words = explode(chr(1),stripcslashes($_GET["args"]));
$suggestcountinit = 5;
$error_type_words = array();
$spell_check_words = array();
$suggest_words = array();
$suggestcount = 0;
for($i=0;$i<count($words);$i++){
$error_type_words[$i]="";
if($suggestcount <$suggestcountinit+1){
$suggest_words[$i]= "";
}
$spell_check_words[$i] = $spellcheckObject -> SpellCheckWord( $words[$i])?"T":"F";
if($spell_check_words[$i]=="F"){
$error_type_words[$i] = $spellcheckObject ->ErrorTypeWord( $words[$i]);
if($suggestcount <$suggestcountinit+1){
$suggestcount++;
$suggest_words[$i]= implode(chr(2),$spellcheckObject -> Suggestions( $words[$i] )) ;
}
}
}
echo "WINSETUP";
echo chr(5);
echo $sender ;
echo chr(5);
echo implode("",$spell_check_words);
echo chr(5);
echo implode(chr(1),$error_type_words);
echo chr(5);
echo implode(chr(1),$suggest_words);
echo chr(5);
echo implode(chr(2),$spellcheckObject ->ListDictionaries());
}
if( strtoupper($_GET["command"])=="WINSUGGEST" ){
$words = explode(chr(1),stripcslashes($_GET["args"]));
$suggest_words = array();
$suggestcount = 0;
for($i=0;$i<count($words);$i++){
$suggest_words[$i]= implode(chr(2),$spellcheckObject -> Suggestions( $words[$i] )) ;
}
echo "WINSUGGEST";
echo chr(5);
echo $sender ;
echo chr(5);
echo implode(chr(1),$suggest_words);
}
if( strtoupper($_GET["command"])=="CTXSPELL"){
$word = stripcslashes($_GET["args"]);
$words = explode(chr(1),stripcslashes($_GET["args"]));
$error_type_words = array();
$spell_check_words = array();
$suggest_words = array();
for($i=0;$i<count($words);$i++){
$error_type_words[$i]="";
$spell_check_words[$i] = $spellcheckObject -> SpellCheckWord( $words[$i])?"T":"F";
$error_type_words[$i] ="-" ;
if($spell_check_words[$i]=="F"){
$error_type_words[$i] = $spellcheckObject ->ErrorTypeWord( $words[$i]);
}
}
echo "CTXSPELL";
echo chr(5);
echo $sender ;
echo chr(5);
echo implode("",$spell_check_words);
echo chr(5);
echo implode("",$error_type_words);
}
elseif( strtoupper($_GET["command"])=="CTXSUGGEST"){
$word = stripcslashes($_GET["args"]);
echo "CTXSUGGEST";
echo chr(5);
echo $sender ;
echo chr(5);
echo implode(chr(2),$spellcheckObject -> Suggestions( $word )) ;
if($note=="ADDLANGS"){
echo chr(5);
echo implode(chr(2),$spellcheckObject -> ListDictionaries( $word )) ;
}
}
elseif( strtoupper($_GET["command"])=="RAWSPELL"){
$word = stripcslashes($_GET["args"]);
$ok = $spellcheckObject -> SpellCheckWord($word);
echo "RAWSPELL";
echo chr(5);
echo $sender ;
echo chr(5);
echo $word;
echo chr(5);
echo $ok?"T":"F";
echo chr(5);
if($ok){
echo $word;
echo chr(5);
echo "";
}else{
echo implode(chr(2),$spellcheckObject -> Suggestions( $word )) ;
echo chr(5);
echo $spellcheckObject -> ErrorTypeWord( $word[$i]);
}
}
if( strtoupper($_GET["command"])=="APISPELL" ||strtoupper($_GET["command"])=="APISPELLARRAY" ){
$words = explode(chr(1),stripcslashes($_GET["args"]));
$doSuggest = ($note!=="NOSUGGEST");
$error_type_words = array();
$spell_check_words = array();
$suggest_words = array();
for($i=0;$i<count($words);$i++){
$error_type_words[$i]="";
$suggest_words[$i]= array();
$spell_check_words[$i] = $spellcheckObject -> SpellCheckWord( $words[$i])?"T":"F";
if($spell_check_words[$i]=="F"){
$error_type_words[$i] = $spellcheckObject ->ErrorTypeWord( $words[$i]);
if($doSuggest){
$suggest_words[$i]= implode(chr(2),$spellcheckObject -> Suggestions( $words[$i] )) ;
}else{
$suggest_words[$i]="";
}
}
}
echo strtoupper($_GET["command"]);
echo chr(5);
echo $sender ;
echo chr(5);
echo implode("",$spell_check_words);
echo chr(5);
echo implode(chr(1),$error_type_words);
echo chr(5);
echo implode(chr(1),$suggest_words);
echo chr(5);
echo implode(chr(1),$words);
}
if( strtoupper($_GET["command"])=="LISTDICTS" ){
$in = stripcslashes($_GET["args"]);
echo "LISTDICTS";
echo chr(5);
echo $sender ;
echo chr(5);
echo implode(chr(2),$spellcheckObject ->ListDictionaries());
}
if( strtoupper($_GET["command"])=="APIDYM" ){
$in = stripcslashes($_GET["args"]);
echo strtoupper("APIDYM");
echo chr(5);
echo $sender ;
echo chr(5);
echo $in;
echo chr(5);
echo $spellcheckObject ->didYouMean($in);
echo chr(5);
echo $lang;
}
if( strtoupper($_GET["command"])=="APIVALIDATE"){
$words = explode(chr(1),stripcslashes($_GET["args"]));
$spellcheckObject -> CaseSensitive = ($note=="CASESENSITVE");
$error_type_words = array();
$spell_check_words = array();
$valid = true;
for($i=0;$i<count($words);$i++){
$error_type_words[$i]="";
$suggest_words[$i]= array();
$spell_check_words[$i] = $spellcheckObject -> SpellCheckWord( $words[$i])?"T":"F";
if($spell_check_words[$i]=="F"){
$valid = false;
$error_type_words[$i] = $spellcheckObject ->ErrorTypeWord( $words[$i]);
}
}
echo "APIVALIDATE";
echo chr(5);
echo $sender ;
echo chr(5);
echo implode("",$spell_check_words);
echo chr(5);
echo implode(chr(1),$error_type_words);
echo chr(5);
echo implode(chr(1),$words);
echo chr(5);
echo $valid?"T":"F";
}
if($script){echo '<script type="text/javascript">window.parent.livespell.ajax.pickupIframe(document.body.innerHTML);history.go(-1);</script>';};
?>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,4 @@
<%
SaveToCentralDictionary = false
LicenseKey = "LIVESPELL-CQ3FV8D62XMN2NM-JV4L5-CJEXH-PLTRACKER1927-D4V6V"
%>
@@ -0,0 +1,48 @@
<?php
# Create a PHPSpellCheck Instance for the SpellCheckButton Class, SpellAsYouType Class and the Javascript/AJAX API
$spellcheckObject = new PHPSpellCheck();
############# LICENSE ############
# Copy and Paste your license key here. Buy one onlline at www.phpspellcheck.com
$spellcheckObject -> LicenceKey="LIVESPELL-CQ3FV8D62XMN2NM-JV4L5-CJEXH-PLTRACKER1927-D4V6V";
######### BASIC SETTINGS ##########
$spellcheckObject -> IgnoreAllCaps = false;
$spellcheckObject -> IgnoreNumeric = false;
$spellcheckObject -> CaseSensitive = true;
# Set the tollerance of the spellchecker to 'unlikely' suggestions. 0=intollerant ... 10=very tollerant
$spellcheckObject -> SuggestionTollerance = 1.5;
############ FILE SYSTEM ###########
# Set up the file path to the (.dic) dictionaries folder
$spellcheckObject -> DictionaryPath = ("../dictionaries/");
# Loads all dictionaries requested by the API */
foreach($RequestedLangs as $dictionary){ $spellcheckObject -> LoadDictionary(trim($dictionary) );}
############ DICTIONARY SYSTEM ###########
#Add vocabulary to the spellchecker from a text file loaded from the DictionaryPath
$spellcheckObject -> LoadCustomDictionary("custom.txt");
/* Alternative methods to load vocabulary
$spellcheckObject -> LoadCustomDictionaryFromURL( $URL );
$spellcheckObject ->AddCustomDictionaryFromArray($array) // This is great for SQL integration
*/
/* Ban a list of words which will never be allowed as correct spellings. This is great for filtering profanity.*/
$spellcheckObject -> LoadCustomBannedWords("language-rules/banned-words.txt");
/*
You can also add banned words from an array which you could easily populate from an SQL query
//$spellcheckObject -> AddBannedWords(array("veryRudeWord"));
*/
/* Load a lost of Enforced Corrections from a file. This allows you to enforce a spelling suggestion for a specific word or acronym.*/
$spellcheckObject -> LoadEnforcedCorrections("language-rules/enforced-corrections.txt");
/*Load a list of common typing mistakes to fine tune the suggestion performance.*/
$spellcheckObject -> LoadCommonTypos("language-rules/common-mistakes.txt");
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -0,0 +1,43 @@
body{
font-family:Arial, Helvetica, sans-serif;
font-size:13px;
background-color: #F9F8F7;
margin:30px;
}
.tick, .warn, .warning, .error, .validation, .info , .reup, .reupclean {
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 50px;
background-repeat: no-repeat;
background-position: 10px center;
}
.tick {
color: #00529B;
background-color: #BDE5F8;
background-image: url('tick.png');
}
.warn {
color: #4F8A10;
background-color: #DFF2BF;
background-image:url('warn.png');
}
.error {
color: #9F6000;
background-color: #FEEFB3;
background-image: url('error.png');
}
.info {
color: #333;
background-color: #BAFFBA;
background-image: url('info.png');
}
.reup {
color: #D8000C;
background-color: #FFBABA;
background-image: url('reup.png');
}
.reupclean {
color: #666;
background-color: #BDE5F8;
background-image: url('reup.png');
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -0,0 +1,12 @@
<%option explicit%><%
Server.ScriptTimeout=20
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
Response.Write("No Command")
%>
@@ -0,0 +1 @@
<%@ Page Language="C#" AutoEventWireup="true" %>No Command
@@ -0,0 +1 @@
No Command
@@ -0,0 +1,3 @@
<?php
echo "No Command"
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

+79
View File
@@ -0,0 +1,79 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; iso-8859-1" http-equiv="Content-Type" />
<title>Spell Check...</title>
<link id="theme" type="text/css" rel="stylesheet" href="themes/js.modern/dialog-window.css" />
<script type="text/javascript" src="core/dialog.js"></script>
<body id ="LivespellDialogBody" onload="spellWin.init()" onunload="spellWin.actions.registerclose();" spellcheck="false" >
<div id="MainForm" >
<form id="SpellForm" name="SpellForm" method="post" action="">
<textarea rows="8" cols="30" id="fldTextInput" name="fldTextInput"></textarea>
<div id="TextShow" onclick="spellWin.ui.showEdit(true);" onmouseup="spellWin.ui.showEdit(true);" ></div>
<select size="8" id="fldSuggestions" name="fldSuggestions" ondblclick="spellWin.actions.changeCurrent()">
</select>
<label accesskey="Y" for="fldTextInput" id="fldTextInputLab"></label>
<label accesskey="N" for="fldSuggestions" id="SuggestionsLab">LABEL_SUGGESTIONS</label>
<div id="lMeaning"><a href="#" id="lMeaningLink" onkeypress="return spellWin.ui.lookupMeaning();" onclick="return spellWin.ui.lookupMeaning();" >LOOKUP_MEANING</a></div>
<label accesskey="D" for="fldLanguage" id="fldLanguageLab">LABEL_LANGAUGE</label>
<input type="button" value="BTN_CHANGE" accesskey="C" id="btnChange" name="btnChange" onclick="spellWin.actions.changeCurrent()" />
<input type="button" value="BTN_CLOSE" onclick="spellWin.actions.cancel();" accesskey="X" id="btnCancel" name="btnCancel" />
<input type="button" value="BTN_IGNORE_ONCE" accesskey="I" id="btnIgnore" name="btnIgnore" onclick="spellWin.actions.ignoreOnce();" />
<input type="button" value="BTN_IGNORE_ALL" accesskey="G" id="btnIgnoreAll" name="btnIgnoreAll" onclick="spellWin.actions.ignoreAll();"/>
<input type="button" value="BTN_ADD_TO_DICT" accesskey="A" id="btnAddToDict" name="btnAddToDict" onclick="spellWin.actions.addPersonal();" />
<input type="button" value="BTN_CHANGE_ALL" accesskey="L" id="btnChangeAll" name="btnChangeAll" onclick="spellWin.actions.changeAll();" />
<input type="button" value="BTN_AUTO_CORECT" accesskey="R" id="btnAutoCorrect" name="btnAutoCorrect" onclick="spellWin.actions.addAutoCorrect();" />
<input type="button" value="BTN_OPTIONS" accesskey="O" id="btnShowOptions" name="btnShowOptions" onclick="spellWin.optionsMenu.show(true);" />
<input type="button" value="BTN_CLEAR_EDIT" accesskey="U" id="btnUndoManualEdit" name="btnUndoManualEdit" onclick="spellWin.ui.showEdit(false);" />
<input type="button" value="BTN_UNDO" accesskey="U" id="btnUndo" name="btnUndo" disabled="disabled" onclick="spellWin.undo.get();" />
<select id="fldLanguage" name="fldLanguage" onchange="spellWin.actions.changeLanguage();">
</select>
<label for="optSentence" id="CheckGrammarLab" accesskey="G">
<input type="checkbox" value="True" name="optSentence" id="optSentence" onchange="spellWin.ui.setGrammar()"/>
<span id="optSentenceText">OPT_SENTENCE_AWARE</span>
</label>
</form>
</div>
<form name="optForm" action="" id="optForm" method="post" >
<label id='tOpt' >Options:</label>
<label for="optCaseSensitive" id="optCaseSensitiveLab" accesskey="C" >
<input type="checkbox" value="True" name="optCaseSensitive" id="optCaseSensitive" >
<span id="optCaseSensitiveText"> OPT_CASE_SENSITIVE</span></label>
<label for="optAllCaps" id="optAllCapsLab" accesskey="U" >
<input type="checkbox" value="True" name="optAllCaps" id="optAllCaps" >
<span id="optAllCapsbText"> OPT_IGNORE_CAPS</span></label>
<label for="optNumeric" id="optNumericLab" accesskey="B">
<input type="checkbox" value="True" name="optNumeric" id="optNumeric" >
<span id="optNumericText">OPT_IGNORE_NUMERIC</span></label>
<label for="btnResetDict" id="btnResetDictLab"><span id="btnResetDictLabText">OPT_PERSONAL_DICT</span> <span id="tDictCount">6 OPT_ENTRIES</span>
<input name="btnResetDict" type="button" id="btnResetDict" value="BTN_RESET" accesskey="D" onclick="spellWin.actions.deletePersonal(); spellWin.optionsMenu.show(true);" />
</label>
<label for="btnResetAutoCorrect" id="btnResetAutoCorrectLab"><span id="btnResetAutoCorrectLabText">OPT_PERSONAL_AUTO_CURRECT</span> <span id="tAutoCorrectCount">2 OPT_ENTRIES</span>
<input name="btnResetAutoCorrect" type="button" id="btnResetAutoCorrect" value="BTN_RESET" accesskey="A" onclick="spellWin.actions.deleteAutoCorrect(); spellWin.optionsMenu.show(true);" />
</label>
<input name="btnOptionsOK" type="button" id="btnOptionsOK" value="BTN_OK" accesskey="O" onclick="spellWin.optionsMenu.set()" />
<input name="btnOptionsCancel" type="button" id="btnOptionsCancel" value="BTN_CANCEL" accesskey="X" onclick="spellWin.optionsMenu.show(false); " >
</form>
<form name="multiLangForm" action="" id="multiLangForm" method="" >
<label accesskey="M" for="fldLanguageMultiple" >
<div id="fldLanguageMultipleLabText">LANGUAGE_MULTIPLE_INSTRUCTIONS</div>
<select multiple="multiple" name="fldLanguageMultiple" id="fldLanguageMultiple" size="11" >
</select>
</label>
<input name="btnLangOK" type="button" id="btnLangOK" value="BTN_OK" accesskey="O" onclick="spellWin.actions.changeMultiLanguage();"/>
<input name="btnLangCancel" type="button" id="btnLangCancel" value="BTN_CANCEL" accesskey="X" onclick="spellWin.optionsMenu.showMultiLang(false)" >
</form>
<form name="doneForm" action="" id="doneForm" method="" >
<div id="tSum"><strong>DONESCREEN_MESSAGE</strong></div>
<div id="sdivider">
<hr />
</div>
<div id="tWrd">DONESCREEN_WORDS</div>
<div id="tEdi">DONESCREEN_EDITS</div>
<div id="tDoc">DONESCREEN_FIELDS</div>
<input name="bOK" type="button" id="btnAllDone" accesskey="O" value="BTN_OK" onclick="spellWin.actions.done()" >
</form>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,14 @@
Installation of New Dictionaries:
1 - Dictionaries can be downloaded for free from www.javascriptspellcheck.com/download
2 - Unzip
3 - Copy the .dic file to this folder /JavaScriptSpellCheck/dictionaries/
Adding New Words:
1 - Add 1 word per line to JavaScriptSpellCheck/dictionaries/custom.txt
Removing Words:
1 - Add 1 word per line to JavaScriptSpellCheck/dictionaries/language-rules/banned-words.txt
Happy Coding
@@ -0,0 +1,10 @@
ASPNetSpell
asp
Asp
Net
net
LiveSpell
JavaScript
iFrame
Textarea
Textareas
@@ -0,0 +1,815 @@
abotu-->about
abouta-->about a
aboutit-->about it
aboutthe-->about the
abscence-->absence
accesories-->accessories
accidant-->accident
accomodate-->accommodate
accordingto-->according to
accross-->across
acheive-->achieve
acheived-->achieved
acheiving-->achieving
acn-->can
acommodate-->accommodate
acomodate-->accommodate
actualyl-->actually
additinal-->additional
addtional-->additional
adequit-->adequate
adequite-->adequate
adn-->and
advanage-->advantage
affraid-->afraid
afterthe-->after the
aganist-->against
aggresive-->aggressive
agian-->again
agreemeent-->agreement
agreemeents-->agreements
agreemnet-->agreement
agreemnets-->agreements
agressive-->aggressive
ahppen-->happen
ahve-->have
allwasy-->always
allwyas-->always
almots-->almost
almsot-->almost
alomst-->almost
alot-->a lot
alraedy-->already
alreayd-->already
alreday-->already
alwasy-->always
alwats-->always
alway-->always
alwyas-->always
amde-->made
amke-->make
amkes-->makes
anbd-->and
andone-->and one
andteh-->and the
andthe-->and the
anothe-->another
anual-->annual
apparant-->apparent
apparrent-->apparent
appearence-->appearance
appeares-->appears
applicaiton-->application
applicaitons-->applications
applyed-->applied
appointiment-->appointment
approrpiate-->appropriate
approrpriate-->appropriate
aquisition-->acquisition
aquisitions-->acquisitions
arguement-->argument
arguements-->arguments
arn't-->aren't
arond-->around
artical-->article
articel-->article
asdvertising-->advertising
assistent-->assistant
asthe-->as the
atention-->attention
atmospher-->atmosphere
attentioin-->attention
atthe-->at the
audeince-->audience
audiance-->audience
availalbe-->available
awya-->away
aywa-->away
bakc-->back
balence-->balance
ballance-->balance
baout-->about
bcak-->back
beacuse-->because
becasue-->because
becaus-->because
becausea-->because a
becauseof-->because of
becausethe-->because the
becauseyou-->because you
becomeing-->becoming
becomming-->becoming
becuase-->because
becuse-->because
befoer-->before
beggining-->beginning
begining-->beginning
beginining-->beginning
beleiev-->believe
beleieve-->believe
beleif-->belief
beleive-->believe
beleived-->believed
beleives-->believes
benifit-->benefit
benifits-->benefits
betwen-->between
beutiful-->beautiful
blase-->blasÈ
boxs-->boxes
brodcast-->broadcast
butthe-->but the
bve-->be
cafe-->cafÈ
caharcter-->character
calcullated-->calculated
calulated-->calculated
candidtae-->candidate
candidtaes-->candidates
catagory-->category
categiory-->category
certian-->certain
challange-->challenge
challanges-->challenges
chaneg-->change
chanegs-->changes
changable-->changeable
changeing-->changing
changng-->changing
charachter-->character
charachters-->characters
charactor-->character
charecter-->character
charector-->character
cheif-->chief
chekc-->check
chnage-->change
cieling-->ceiling
circut-->circuit
claer-->clear
claered-->cleared
claerly-->clearly
cliant-->client
cliche-->clichÈ
cn-->can
cna-->can
colection-->collection
comanies-->companies
comany-->company
comapnies-->companies
comapny-->company
combintation-->combination
comited-->committed
comittee-->committee
commadn-->command
comming-->coming
commitee-->committee
committe-->committee
committment-->commitment
committments-->commitments
committy-->committee
comntain-->contain
comntains-->contains
compair-->compare
compleated-->completed
compleatly-->completely
compleatness-->completeness
completly-->completely
completness-->completeness
composate-->composite
comtain-->contain
comtains-->contains
comunicate-->communicate
comunity-->community
condolances-->condolences
conected-->connected
conferance-->conference
confirmmation-->confirmation
considerit-->considerate
considerite-->considerate
consonent-->consonant
conspiricy-->conspiracy
consultent-->consultant
convertable-->convertible
cooparate-->cooperate
cooporate-->cooperate
corproation-->corporation
corproations-->corporations
corruptable-->corruptible
cotten-->cotton
coudl-->could
coudln't-->couldn't
coudn't-->couldn't
couldnt-->couldn't
couldthe-->could the
cpoy-->copy
creme-->crËme
ctaegory-->category
cusotmer-->customer
cusotmers-->customers
cutsomer-->customer
cutsomers-->customers
cxan-->can
danceing-->dancing
dcument-->document
deatils-->details
decison-->decision
decisons-->decisions
decor-->dÈcor
defendent-->defendant
definately-->definitely
deptartment-->department
desicion-->decision
desicions-->decisions
desision-->decision
desisions-->decisions
detente-->dÈtente
develeoprs-->developers
devellop-->develop
develloped-->developed
develloper-->developer
devellopers-->developers
develloping-->developing
devellopment-->development
devellopments-->developments
devellops-->develop
develope-->develop
developement-->development
developements-->developments
developor-->developer
developors-->developers
develpment-->development
diaplay-->display
didint-->didn't
didnot-->did not
didnt-->didn't
difefrent-->different
diferences-->differences
differance-->difference
differances-->differences
differant-->different
differemt-->different
differnt-->different
diffrent-->different
directer-->director
directers-->directors
directiosn-->direction
disatisfied-->dissatisfied
discoverd-->discovered
disign-->design
dispaly-->display
dissonent-->dissonant
distribusion-->distribution
divsion-->division
do'nt-->don't
docuement-->documents
docuemnt-->document
documetn-->document
documnet-->document
documnets-->documents
doens't-->doesn't
doese-->does
doesnt-->doesn't
doign-->doing
doimg-->doing
doind-->doing
dollers-->dollars
donig-->doing
dont-->don't
dosn't-->doesn't
driveing-->driving
drnik-->drink
eclair-->Èclair
efel-->feel
effecient-->efficient
efort-->effort
eforts-->efforts
ehr-->her
eligable-->eligible
embarass-->embarrass
emigre-->ÈmigrÈ
enought-->enough
entree-->entrÈe
equippment-->equipment
equivalant-->equivalent
esle-->else
especally-->especially
especialyl-->especially
espesially-->especially
excellant-->excellent
excercise-->exercise
exchagne-->exchange
exchagnes-->exchanges
excitment-->excitement
exhcange-->exchange
exhcanges-->exchanges
experiance-->experience
experienc-->experience
exprience-->experience
exprienced-->experienced
eyt-->yet
facade-->faÁade
faeture-->feature
faetures-->features
familair-->familiar
familar-->familiar
familliar-->familiar
fammiliar-->familiar
feild-->field
feilds-->fields
fianlly-->finally
fidn-->find
finalyl-->finally
firends-->friends
firts-->first
follwo-->follow
follwoing-->following
fora-->for a
foriegn-->foreign
forthe-->for the
forwrd-->forward
forwrds-->forwards
foudn-->found
foward-->forward
fowards-->forwards
freind-->friend
freindly-->friendly
freinds-->friends
frmo-->from
fromthe-->from the
furneral-->funeral
fwe-->few
garantee-->guarantee
gaurd-->guard
gemeral-->general
gerat-->great
geting-->getting
gettin-->getting
gievn-->given
giveing-->giving
gloabl-->global
goign-->going
gonig-->going
govenment-->government
goverment-->government
gruop-->group
gruops-->groups
grwo-->grow
guidlines-->guidelines
hadbeen-->had been
haev-->have
hapen-->happen
hapened-->happened
hapening-->happening
hapens-->happens
happend-->happened
hasbeen-->has been
hasnt-->hasn't
havebeen-->have been
haveing-->having
hda-->had
hearign-->hearing
helpfull-->helpful
herat-->heart
hesaid-->he said
hewas-->he was
hge-->he
hismelf-->himself
hlep-->help
hsa-->has
hsi-->his
hte-->the
htere-->there
htese-->these
htey-->they
hting-->thing
htink-->think
htis-->this
hvae-->have
hvaing-->having
hwich-->which
i-->I
idae-->idea
idaes-->ideas
identofy-->identify
ihs-->his
im-->I'm
imediate-->immediate
imediatly-->immediately
immediatly-->immediately
importent-->important
importnat-->important
impossable-->impossible
improvemnt-->improvement
improvment-->improvement
includ-->include
indecate-->indicate
indenpendence-->independence
indenpendent-->independent
indepedent-->independent
independance-->independence
independant-->independent
influance-->influence
infomation-->information
informatoin-->information
inital-->initial
instaleld-->installed
insted-->instead
insurence-->insurance
inteh-->in the
interum-->interim
inthe-->in the
inwhich-->in which
isthe-->is the
itis-->it is
ititial-->initial
itnerest-->interest
itnerested-->interested
itneresting-->interesting
itnerests-->interests
itwas-->it was
iwll-->will
iwth-->with
jsut-->just
jugment-->judgment
knowldge-->knowledge
knowlege-->knowledge
knwo-->know
knwon-->known
knwos-->knows
konw-->know
konwn-->known
konws-->knows
labratory-->laboratory
lastyear-->last year
learnign-->learning
lenght-->length
let's him-->lets him
let's it-->lets it
levle-->level
libary-->library
librarry-->library
librery-->library
liek-->like
liekd-->liked
lieutenent-->lieutenant
liev-->live
likly-->likely
lisense-->license
littel-->little
litttle-->little
liuke-->like
liveing-->living
loev-->love
lonly-->lonely
lookign-->looking
maintenence-->maintenance
makeing-->making
managment-->management
mantain-->maintain
marraige-->marriage
memeber-->member
merchent-->merchant
mesage-->message
mesages-->messages
mispell-->misspell
mispelling-->misspelling
mispellings-->misspellings
mkae-->make
mkaes-->makes
mkaing-->making
moeny-->money
morgage-->mortgage
mroe-->more
mysefl-->myself
myu-->my
naive-->naÔve
necassarily-->necessarily
necassary-->necessary
neccessarily-->necessarily
neccessary-->necessary
necesarily-->necessarily
necesary-->necessary
negotiaing-->negotiating
nkow-->know
nothign-->nothing
nver-->never
nwe-->new
nwo-->now
obediant-->obedient
ocasion-->occasion
occassion-->occasion
occured-->occurred
occurence-->occurrence
occurrance-->occurrence
ocur-->occur
oeprator-->operator
ofits-->of its
ofthe-->of the
oging-->going
ohter-->other
omre-->more
oneof-->one of
onepoint-->one point
onthe-->on the
onyl-->only
oppasite-->opposite
opperation-->operation
oppertunity-->opportunity
opposate-->opposite
opposible-->opposable
opposit-->opposite
oppotunities-->opportunities
oppotunity-->opportunity
orginization-->organization
orginized-->organized
otehr-->other
otu-->out
outof-->out of
overthe-->over the
owrk-->work
owuld-->would
oxident-->oxidant
papaer-->paper
parliment-->parliament
partof-->part of
paymetn-->payment
paymetns-->payments
pciture-->picture
peice-->piece
peices-->pieces
peolpe-->people
peopel-->people
percentof-->percent of
percentto-->percent to
performence-->performance
perhasp-->perhaps
perhpas-->perhaps
permanant-->permanent
perminent-->permanent
personalyl-->personally
pleasent-->pleasant
poeple-->people
porblem-->problem
porblems-->problems
porvide-->provide
possable-->possible
postition-->position
potentialy-->potentially
pregnent-->pregnant
presance-->presence
probelm-->problem
probelms-->problems
prominant-->prominent
protege-->protÈgÈ
protoge-->protÈgÈ
psoition-->position
ptogress-->progress
puting-->putting
pwoer-->power
quater-->quarter
quaters-->quarters
quesion-->question
quesions-->questions
questioms-->questions
questiosn-->questions
questoin-->question
quetion-->question
quetions-->questions
realyl-->really
reccomend-->recommend
reccommend-->recommend
receieve-->receive
recieve-->receive
recieved-->received
recieving-->receiving
recomend-->recommend
recomendation-->recommendation
recomendations-->recommendations
recomended-->recommended
reconize-->recognize
recrod-->record
religous-->religious
reluctent-->reluctant
remeber-->remember
reommend-->recommend
representativs-->representatives
representives-->representatives
represetned-->represented
represnt-->represent
reserach-->research
resollution-->resolution
resorces-->resources
respomd-->respond
respomse-->response
responce-->response
responsability-->responsibility
responsable-->responsible
responsibile-->responsible
responsiblity-->responsibility
restaraunt-->restaurant
restuarant-->restaurant
reult-->result
reveiw-->review
reveiwing-->reviewing
rumers-->rumors
rwite-->write
rythm-->rhythm
saidhe-->said he
saidit-->said it
saidthat-->said that
saidthe-->said the
scedule-->schedule
sceduled-->scheduled
seance-->sÈance
secratary-->secretary
sectino-->section
seh-->she
selectoin-->selection
sentance-->sentence
separeate-->separate
seperate-->separate
sercumstances-->circumstances
shcool-->school
shesaid-->she said
shineing-->shining
shiped-->shipped
shoudl-->should
shoudln't-->shouldn't
should of been-->should have been
should of had-->should have had
shouldent-->shouldn't
shouldnt-->shouldn't
showinf-->showing
signifacnt-->significant
simalar-->similar
similiar-->similar
simpyl-->simply
sincerly-->sincerely
sitll-->still
smae-->same
smoe-->some
soem-->some
sohw-->show
soical-->social
somethign-->something
someting-->something
somewaht-->somewhat
somthing-->something
somtimes-->sometimes
soudn-->sound
soudns-->sounds
speach-->speech
specificaly-->specifically
specificalyl-->specifically
statment-->statement
statments-->statements
stnad-->stand
stopry-->story
stoyr-->story
stpo-->stop
strentgh-->strength
stroy-->story
struggel-->struggle
strugle-->struggle
studnet-->student
successfull-->successful
successfuly-->successfully
successfulyl-->successfully
sucess-->success
sucessfull-->successful
sufficiant-->sufficient
suposed-->supposed
suppossed-->supposed
suprise-->surprise
suprised-->surprised
swiming-->swimming
tahn-->than
taht-->that
talekd-->talked
talkign-->talking
tath-->that
tecnical-->technical
teh-->the
tehy-->they
termoil-->turmoil
tghe-->the
tghis-->this
thansk-->thanks
thats-->that's
thatthe-->that the
thefirst-->the first
themself-->themselves
themselfs-->themselves
thenew-->the new
theri-->their
thesame-->the same
thetwo-->the two
they're are-->there are
they're is-->there is
theyll-->they'll
theyve-->they've
thgat-->that
thge-->the
thier-->their
thigsn-->things
thna-->than
thne-->then
thnig-->thing
thnigs-->things
threatend-->threatened
thsi-->this
thsoe-->those
thta-->that
tihs-->this
timne-->time
tiogether-->together
tje-->the
tjhe-->the
tkae-->take
tkaes-->takes
tkaing-->taking
tlaking-->talking
todya-->today
togehter-->together
tomorow-->tomorrow
tongiht-->tonight
tonihgt-->tonight
totaly-->totally
totalyl-->totally
tothe-->to the
towrad-->toward
traditionalyl-->traditionally
transfered-->transferred
treid-->tried
truely-->truly
truley-->truly
tst-->test
tthe-->the
tyhat-->that
tyhe-->the
udnerstand-->understand
understnad-->understand
unliek-->unlike
unpleasently-->unpleasantly
untilll-->until
useing-->using
usualyl-->usually
veyr-->very
virtualyl-->virtually
vrey-->very
vulnerible-->vulnerable
wa-->was
waht-->what
warrent-->warrant
wasnt-->wasn't
watn-->want
wehn-->when
wern't-->weren't
werre-->were
whcih-->which
wherre-->where
whic-->which
whihc-->which
whta-->what
wief-->wife
wierd-->weird
wihch-->which
wiht-->with
willbe-->will be
windoes-->windows
witha-->with a
withe-->with
withthe-->with the
wiull-->will
wnat-->want
wnated-->wanted
wnats-->wants
wo'nt-->won't
woh-->who
wohle-->whole
wokr-->work
woudl-->would
woudln't-->wouldn't
wouldbe-->would be
wouldnt-->wouldn't
wriet-->write
writting-->writing
wrod-->word
wroet-->wrote
wroking-->working
wtih-->with
wuould-->would
wya-->way
yera-->year
yeras-->years
yersa-->years
yoiu-->you
you're own-->your own
youare-->you are
youve-->you've
ytou-->you
yuo-->you
yuor-->your
@@ -0,0 +1,2 @@
PHPSpellcheck--> PHPSpellCheck || PHP Spell Check
cos--> because
@@ -0,0 +1,6 @@
The extensions in this folder are Open Source extensions and libraries from the internet. They are not part of our commercial Software package and we do not won nor control copyright..... but they provide useful extensions and examples which we think can help make your project richer.
jQuery: http://jquery.com
modalbox: http://okonet.ru/projects/modalbox
fancybox: http://fancybox.net
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,72 @@
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
// t: current time, b: begInnIng value, c: change In value, d: duration
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t<d/2)6 h.i.A(x,t*2,0,c,d)*.5+b;6 h.i.v(x,t*2-d,0,c,d)*.5+c*.5+b}});',62,74,'||||||return||Math|function|||||if|var|PI|jQuery|easing|pow|75|70158|else|sin|sqrt||5625|asin|||undefined|easeOutBounce|abs||def|swing|easeInBounce|525|cos|easeOutQuad|easeOutBack|easeInBack|easeInSine|easeOutElastic|easeInOutQuint|easeOutQuint|easeInQuint|easeInOutQuart|easeOutQuart|easeInQuart|extend|easeInElastic|easeInOutCirc|easeInOutCubic|easeOutCirc|easeInOutElastic|easeOutCubic|easeInCirc|easeInOutExpo|easeInCubic|easeOutExpo|easeInExpo||9375|easeInOutSine|easeInOutQuad|25|easeOutSine|easeInOutBack|easeInQuad|625|984375|jswing|easeInOutBounce'.split('|'),0,{}))
/*
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
@@ -0,0 +1,359 @@
/*
* FancyBox - jQuery Plugin
* Simple and fancy lightbox alternative
*
* Examples and documentation at: http://fancybox.net
*
* Copyright (c) 2008 - 2010 Janis Skarnelis
* That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
*
* Version: 1.3.4 (11/11/2010)
* Requires: jQuery v1.3+
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/
#fancybox-loading {
position: fixed;
top: 50%;
left: 50%;
width: 40px;
height: 40px;
margin-top: -20px;
margin-left: -20px;
cursor: pointer;
overflow: hidden;
z-index: 1104;
display: none;
}
#fancybox-loading div {
position: absolute;
top: 0;
left: 0;
width: 40px;
height: 480px;
background-image: url('fancybox.png');
}
#fancybox-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 1100;
display: none;
}
#fancybox-tmp {
padding: 0;
margin: 0;
border: 0;
overflow: auto;
display: none;
}
#fancybox-wrap {
position: absolute;
top: 0;
left: 0;
padding: 20px;
z-index: 1101;
outline: none;
display: none;
}
#fancybox-outer {
position: relative;
width: 100%;
height: 100%;
background: #fff;
}
#fancybox-content {
width: 0;
height: 0;
padding: 0;
outline: none;
position: relative;
overflow: hidden;
z-index: 1102;
border: 0px solid #fff;
}
#fancybox-hide-sel-frame {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: transparent;
z-index: 1101;
}
#fancybox-close {
position: absolute;
top: -15px;
right: -15px;
width: 30px;
height: 30px;
background: transparent url('fancybox.png') -40px 0px;
cursor: pointer;
z-index: 1103;
display: none;
}
#fancybox-error {
color: #444;
font: normal 12px/20px Arial;
padding: 14px;
margin: 0;
}
#fancybox-img {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
border: none;
outline: none;
line-height: 0;
vertical-align: top;
}
#fancybox-frame {
width: 100%;
height: 100%;
border: none;
display: block;
}
#fancybox-left, #fancybox-right {
position: absolute;
bottom: 0px;
height: 100%;
width: 35%;
cursor: pointer;
outline: none;
background: transparent url('blank.gif');
z-index: 1102;
display: none;
}
#fancybox-left {
left: 0px;
}
#fancybox-right {
right: 0px;
}
#fancybox-left-ico, #fancybox-right-ico {
position: absolute;
top: 50%;
left: -9999px;
width: 30px;
height: 30px;
margin-top: -15px;
cursor: pointer;
z-index: 1102;
display: block;
}
#fancybox-left-ico {
background-image: url('fancybox.png');
background-position: -40px -30px;
}
#fancybox-right-ico {
background-image: url('fancybox.png');
background-position: -40px -60px;
}
#fancybox-left:hover, #fancybox-right:hover {
visibility: visible; /* IE6 */
}
#fancybox-left:hover span {
left: 20px;
}
#fancybox-right:hover span {
left: auto;
right: 20px;
}
.fancybox-bg {
position: absolute;
padding: 0;
margin: 0;
border: 0;
width: 20px;
height: 20px;
z-index: 1001;
}
#fancybox-bg-n {
top: -20px;
left: 0;
width: 100%;
background-image: url('fancybox-x.png');
}
#fancybox-bg-ne {
top: -20px;
right: -20px;
background-image: url('fancybox.png');
background-position: -40px -162px;
}
#fancybox-bg-e {
top: 0;
right: -20px;
height: 100%;
background-image: url('fancybox-y.png');
background-position: -20px 0px;
}
#fancybox-bg-se {
bottom: -20px;
right: -20px;
background-image: url('fancybox.png');
background-position: -40px -182px;
}
#fancybox-bg-s {
bottom: -20px;
left: 0;
width: 100%;
background-image: url('fancybox-x.png');
background-position: 0px -20px;
}
#fancybox-bg-sw {
bottom: -20px;
left: -20px;
background-image: url('fancybox.png');
background-position: -40px -142px;
}
#fancybox-bg-w {
top: 0;
left: -20px;
height: 100%;
background-image: url('fancybox-y.png');
}
#fancybox-bg-nw {
top: -20px;
left: -20px;
background-image: url('fancybox.png');
background-position: -40px -122px;
}
#fancybox-title {
font-family: Helvetica;
font-size: 12px;
z-index: 1102;
}
.fancybox-title-inside {
padding-bottom: 10px;
text-align: center;
color: #333;
background: #fff;
position: relative;
}
.fancybox-title-outside {
padding-top: 10px;
color: #fff;
}
.fancybox-title-over {
position: absolute;
bottom: 0;
left: 0;
color: #FFF;
text-align: left;
}
#fancybox-title-over {
padding: 10px;
background-image: url('fancy_title_over.png');
display: block;
}
.fancybox-title-float {
position: absolute;
left: 0;
bottom: -20px;
height: 32px;
}
#fancybox-title-float-wrap {
border: none;
border-collapse: collapse;
width: auto;
}
#fancybox-title-float-wrap td {
border: none;
white-space: nowrap;
}
#fancybox-title-float-left {
padding: 0 0 0 15px;
background: url('fancybox.png') -40px -90px no-repeat;
}
#fancybox-title-float-main {
color: #FFF;
line-height: 29px;
font-weight: bold;
padding: 0 0 3px 0;
background: url('fancybox-x.png') 0px -40px;
}
#fancybox-title-float-right {
padding: 0 0 0 15px;
background: url('fancybox.png') -55px -90px no-repeat;
}
/* IE6 */
.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame {
height: expression(this.parentNode.clientHeight + "px");
}
#fancybox-loading.fancybox-ie6 {
position: absolute; margin-top: 0;
top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px');
}
#fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }
/* IE6, IE7, IE8 */
.fancybox-ie .fancybox-bg { background: transparent !important; }
.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,46 @@
/*
* FancyBox - jQuery Plugin
* Simple and fancy lightbox alternative
*
* Examples and documentation at: http://fancybox.net
*
* Copyright (c) 2008 - 2010 Janis Skarnelis
* That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
*
* Version: 1.3.4 (11/11/2010)
* Requires: jQuery v1.3+
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/
;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("<div/>")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)||
c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=
false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel",
function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("<img />").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+e.width+'" height="'+e.height+'"><param name="movie" value="'+c+
'"></param>';P="";b.each(e.swf,function(x,H){C+='<param name="'+x+'" value="'+H+'"></param>';P+=" "+x+'="'+H+'"'});C+='<embed src="'+c+'" type="application/x-shockwave-flash" width="'+e.width+'" height="'+e.height+'"'+P+"></embed></object>";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win==
"function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('<div style="width:'+a+";height:"+c+
";overflow: "+(e.scrolling=="auto"?"auto":e.scrolling=="yes"?"scroll":"hidden")+';position:relative;"></div>');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor,
opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length?
d.titlePosition=="float"?'<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">'+s+'</td><td id="fancybox-title-float-right"></td></tr></table>':'<div id="fancybox-title-'+d.titlePosition+'">'+s+"</div>":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding});
y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height==
i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents());
f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode==
37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto");
s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" '+(b.browser.msie?'allowtransparency="true""':"")+' scrolling="'+e.scrolling+'" src="'+d.href+'"></iframe>').appendTo(j);
f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);
j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type==
"image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"),
10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};
b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k=
0,C=a.length;k<C;k++)if(typeof a[k]=="object")b(a[k]).data("fancybox",b.extend({},g,a[k]));else a[k]=b({}).data("fancybox",b.extend({content:a[k]},g));o=jQuery.merge(o,a)}else{if(typeof a=="object")b(a).data("fancybox",b.extend({},g,a));else a=b({}).data("fancybox",b.extend({content:a},g));o.push(a)}if(q>o.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+
1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a<l.length){q=a;I()}else if(d.cyclic&&l.length>1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h=
true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1;
b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5-
d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('<div id="fancybox-tmp"></div>'),t=b('<div id="fancybox-loading"><div></div></div>'),u=b('<div id="fancybox-overlay"></div>'),f=b('<div id="fancybox-wrap"></div>'));D=b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
D.append(j=b('<div id="fancybox-content"></div>'),E=b('<a id="fancybox-close"></a>'),n=b('<div id="fancybox-title"></div>'),z=b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),A=b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()});
b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('<iframe id="fancybox-hide-sel-frame" src="'+(/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank")+'" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D)}}};
b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",
easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery);
@@ -0,0 +1,14 @@
/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
* Thanks to: Seamus Leahy for adding deltaX and deltaY
*
* Version: 3.0.4
*
* Requires: 1.2.2+
*/
(function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=
f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
ModalBox is a JavaScript technique for creating modern (Web 2.0-style) modal dialogues or even wizards (sequences of dialogues) without using conventional popups and page reloads. It's inspired by Mac OS X modal dialogues. And yes, it may also be useful for showing bigger versions of images.
Basically, ModalBox is based on GrayBox technique by Amir Salihefendic. But you can find a lot of similar techniques around the web: Lightbox JS, Lightbox gone wild, ThickBox etc.
There also a clone of ModalBox, the MOOdalBox, written on great and lightweight Mootools Framework.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,68 @@
// script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// For details, see the script.aculo.us web site: http://script.aculo.us/
var Scriptaculous = {
Version: '1.8.3',
require: function(libraryName) {
try{
// inserting via DOM fails in Safari 2.0, so brute force approach
document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
} catch(e) {
// for xhtml+xml served content, fall back to DOM methods
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = libraryName;
document.getElementsByTagName('head')[0].appendChild(script);
}
},
REQUIRED_PROTOTYPE: '1.6.0.3',
load: function() {
function convertVersionString(versionString) {
var v = versionString.replace(/_.*|\./g, '');
v = parseInt(v + '0'.times(4-v.length));
return versionString.indexOf('_') > -1 ? v-1 : v;
}
if((typeof Prototype=='undefined') ||
(typeof Element == 'undefined') ||
(typeof Element.Methods=='undefined') ||
(convertVersionString(Prototype.Version) <
convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
throw("script.aculo.us requires the Prototype JavaScript framework >= " +
Scriptaculous.REQUIRED_PROTOTYPE);
var js = /scriptaculous\.js(\?.*)?$/;
$$('head script[src]').findAll(function(s) {
return s.src.match(js);
}).each(function(s) {
var path = s.src.replace(js, ''),
includes = s.src.match(/\?.*load=([a-z,]*)/);
(includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
function(include) { Scriptaculous.require(path+include+'.js') });
});
}
};
Scriptaculous.load();
@@ -0,0 +1,569 @@
// script.aculo.us unittest.js v1.8.0, Tue Nov 06 15:01:40 +0300 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
// (c) 2005-2007 Michael Schuerig (http://www.schuerig.de/michael/)
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/
// experimental, Firefox-only
Event.simulateMouse = function(element, eventName) {
var options = Object.extend({
pointerX: 0,
pointerY: 0,
buttons: 0,
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false
}, arguments[2] || {});
var oEvent = document.createEvent("MouseEvents");
oEvent.initMouseEvent(eventName, true, true, document.defaultView,
options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, 0, $(element));
if(this.mark) Element.remove(this.mark);
this.mark = document.createElement('div');
this.mark.appendChild(document.createTextNode(" "));
document.body.appendChild(this.mark);
this.mark.style.position = 'absolute';
this.mark.style.top = options.pointerY + "px";
this.mark.style.left = options.pointerX + "px";
this.mark.style.width = "5px";
this.mark.style.height = "5px;";
this.mark.style.borderTop = "1px solid red;"
this.mark.style.borderLeft = "1px solid red;"
if(this.step)
alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
$(element).dispatchEvent(oEvent);
};
// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
// You need to downgrade to 1.0.4 for now to get this working
// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
Event.simulateKey = function(element, eventName) {
var options = Object.extend({
ctrlKey: false,
altKey: false,
shiftKey: false,
metaKey: false,
keyCode: 0,
charCode: 0
}, arguments[2] || {});
var oEvent = document.createEvent("KeyEvents");
oEvent.initKeyEvent(eventName, true, true, window,
options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
options.keyCode, options.charCode );
$(element).dispatchEvent(oEvent);
};
Event.simulateKeys = function(element, command) {
for(var i=0; i<command.length; i++) {
Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
}
};
var Test = {}
Test.Unit = {};
// security exception workaround
Test.Unit.inspect = Object.inspect;
Test.Unit.Logger = Class.create();
Test.Unit.Logger.prototype = {
initialize: function(log) {
this.log = $(log);
if (this.log) {
this._createLogTable();
}
},
start: function(testName) {
if (!this.log) return;
this.testName = testName;
this.lastLogLine = document.createElement('tr');
this.statusCell = document.createElement('td');
this.nameCell = document.createElement('td');
this.nameCell.className = "nameCell";
this.nameCell.appendChild(document.createTextNode(testName));
this.messageCell = document.createElement('td');
this.lastLogLine.appendChild(this.statusCell);
this.lastLogLine.appendChild(this.nameCell);
this.lastLogLine.appendChild(this.messageCell);
this.loglines.appendChild(this.lastLogLine);
},
finish: function(status, summary) {
if (!this.log) return;
this.lastLogLine.className = status;
this.statusCell.innerHTML = status;
this.messageCell.innerHTML = this._toHTML(summary);
this.addLinksToResults();
},
message: function(message) {
if (!this.log) return;
this.messageCell.innerHTML = this._toHTML(message);
},
summary: function(summary) {
if (!this.log) return;
this.logsummary.innerHTML = this._toHTML(summary);
},
_createLogTable: function() {
this.log.innerHTML =
'<div id="logsummary"></div>' +
'<table id="logtable">' +
'<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
'<tbody id="loglines"></tbody>' +
'</table>';
this.logsummary = $('logsummary')
this.loglines = $('loglines');
},
_toHTML: function(txt) {
return txt.escapeHTML().replace(/\n/g,"<br/>");
},
addLinksToResults: function(){
$$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log
td.title = "Run only this test"
Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;});
});
$$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log
td.title = "Run all tests"
Event.observe(td, 'click', function(){ window.location.search = "";});
});
}
}
Test.Unit.Runner = Class.create();
Test.Unit.Runner.prototype = {
initialize: function(testcases) {
this.options = Object.extend({
testLog: 'testlog'
}, arguments[1] || {});
this.options.resultsURL = this.parseResultsURLQueryParameter();
this.options.tests = this.parseTestsQueryParameter();
if (this.options.testLog) {
this.options.testLog = $(this.options.testLog) || null;
}
if(this.options.tests) {
this.tests = [];
for(var i = 0; i < this.options.tests.length; i++) {
if(/^test/.test(this.options.tests[i])) {
this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
}
}
} else {
if (this.options.test) {
this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
} else {
this.tests = [];
for(var testcase in testcases) {
if(/^test/.test(testcase)) {
this.tests.push(
new Test.Unit.Testcase(
this.options.context ? ' -> ' + this.options.titles[testcase] : testcase,
testcases[testcase], testcases["setup"], testcases["teardown"]
));
}
}
}
}
this.currentTest = 0;
this.logger = new Test.Unit.Logger(this.options.testLog);
setTimeout(this.runTests.bind(this), 1000);
},
parseResultsURLQueryParameter: function() {
return window.location.search.parseQuery()["resultsURL"];
},
parseTestsQueryParameter: function(){
if (window.location.search.parseQuery()["tests"]){
return window.location.search.parseQuery()["tests"].split(',');
};
},
// Returns:
// "ERROR" if there was an error,
// "FAILURE" if there was a failure, or
// "SUCCESS" if there was neither
getResult: function() {
var hasFailure = false;
for(var i=0;i<this.tests.length;i++) {
if (this.tests[i].errors > 0) {
return "ERROR";
}
if (this.tests[i].failures > 0) {
hasFailure = true;
}
}
if (hasFailure) {
return "FAILURE";
} else {
return "SUCCESS";
}
},
postResults: function() {
if (this.options.resultsURL) {
new Ajax.Request(this.options.resultsURL,
{ method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
}
},
runTests: function() {
var test = this.tests[this.currentTest];
if (!test) {
// finished!
this.postResults();
this.logger.summary(this.summary());
return;
}
if(!test.isWaiting) {
this.logger.start(test.name);
}
test.run();
if(test.isWaiting) {
this.logger.message("Waiting for " + test.timeToWait + "ms");
setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
} else {
this.logger.finish(test.status(), test.summary());
this.currentTest++;
// tail recursive, hopefully the browser will skip the stackframe
this.runTests();
}
},
summary: function() {
var assertions = 0;
var failures = 0;
var errors = 0;
var messages = [];
for(var i=0;i<this.tests.length;i++) {
assertions += this.tests[i].assertions;
failures += this.tests[i].failures;
errors += this.tests[i].errors;
}
return (
(this.options.context ? this.options.context + ': ': '') +
this.tests.length + " tests, " +
assertions + " assertions, " +
failures + " failures, " +
errors + " errors");
}
}
Test.Unit.Assertions = Class.create();
Test.Unit.Assertions.prototype = {
initialize: function() {
this.assertions = 0;
this.failures = 0;
this.errors = 0;
this.messages = [];
},
summary: function() {
return (
this.assertions + " assertions, " +
this.failures + " failures, " +
this.errors + " errors" + "\n" +
this.messages.join("\n"));
},
pass: function() {
this.assertions++;
},
fail: function(message) {
this.failures++;
this.messages.push("Failure: " + message);
},
info: function(message) {
this.messages.push("Info: " + message);
},
error: function(error) {
this.errors++;
this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
},
status: function() {
if (this.failures > 0) return 'failed';
if (this.errors > 0) return 'error';
return 'passed';
},
assert: function(expression) {
var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
try { expression ? this.pass() :
this.fail(message); }
catch(e) { this.error(e); }
},
assertEqual: function(expected, actual) {
var message = arguments[2] || "assertEqual";
try { (expected == actual) ? this.pass() :
this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
'", actual "' + Test.Unit.inspect(actual) + '"'); }
catch(e) { this.error(e); }
},
assertInspect: function(expected, actual) {
var message = arguments[2] || "assertInspect";
try { (expected == actual.inspect()) ? this.pass() :
this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
'", actual "' + Test.Unit.inspect(actual) + '"'); }
catch(e) { this.error(e); }
},
assertEnumEqual: function(expected, actual) {
var message = arguments[2] || "assertEnumEqual";
try { $A(expected).length == $A(actual).length &&
expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) +
', actual ' + Test.Unit.inspect(actual)); }
catch(e) { this.error(e); }
},
assertNotEqual: function(expected, actual) {
var message = arguments[2] || "assertNotEqual";
try { (expected != actual) ? this.pass() :
this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
catch(e) { this.error(e); }
},
assertIdentical: function(expected, actual) {
var message = arguments[2] || "assertIdentical";
try { (expected === actual) ? this.pass() :
this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
'", actual "' + Test.Unit.inspect(actual) + '"'); }
catch(e) { this.error(e); }
},
assertNotIdentical: function(expected, actual) {
var message = arguments[2] || "assertNotIdentical";
try { !(expected === actual) ? this.pass() :
this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
'", actual "' + Test.Unit.inspect(actual) + '"'); }
catch(e) { this.error(e); }
},
assertNull: function(obj) {
var message = arguments[1] || 'assertNull'
try { (obj==null) ? this.pass() :
this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
catch(e) { this.error(e); }
},
assertMatch: function(expected, actual) {
var message = arguments[2] || 'assertMatch';
var regex = new RegExp(expected);
try { (regex.exec(actual)) ? this.pass() :
this.fail(message + ' : regex: "' + Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }
catch(e) { this.error(e); }
},
assertHidden: function(element) {
var message = arguments[1] || 'assertHidden';
this.assertEqual("none", element.style.display, message);
},
assertNotNull: function(object) {
var message = arguments[1] || 'assertNotNull';
this.assert(object != null, message);
},
assertType: function(expected, actual) {
var message = arguments[2] || 'assertType';
try {
(actual.constructor == expected) ? this.pass() :
this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
'", actual "' + (actual.constructor) + '"'); }
catch(e) { this.error(e); }
},
assertNotOfType: function(expected, actual) {
var message = arguments[2] || 'assertNotOfType';
try {
(actual.constructor != expected) ? this.pass() :
this.fail(message + ': expected "' + Test.Unit.inspect(expected) +
'", actual "' + (actual.constructor) + '"'); }
catch(e) { this.error(e); }
},
assertInstanceOf: function(expected, actual) {
var message = arguments[2] || 'assertInstanceOf';
try {
(actual instanceof expected) ? this.pass() :
this.fail(message + ": object was not an instance of the expected type"); }
catch(e) { this.error(e); }
},
assertNotInstanceOf: function(expected, actual) {
var message = arguments[2] || 'assertNotInstanceOf';
try {
!(actual instanceof expected) ? this.pass() :
this.fail(message + ": object was an instance of the not expected type"); }
catch(e) { this.error(e); }
},
assertRespondsTo: function(method, obj) {
var message = arguments[2] || 'assertRespondsTo';
try {
(obj[method] && typeof obj[method] == 'function') ? this.pass() :
this.fail(message + ": object doesn't respond to [" + method + "]"); }
catch(e) { this.error(e); }
},
assertReturnsTrue: function(method, obj) {
var message = arguments[2] || 'assertReturnsTrue';
try {
var m = obj[method];
if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
m() ? this.pass() :
this.fail(message + ": method returned false"); }
catch(e) { this.error(e); }
},
assertReturnsFalse: function(method, obj) {
var message = arguments[2] || 'assertReturnsFalse';
try {
var m = obj[method];
if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
!m() ? this.pass() :
this.fail(message + ": method returned true"); }
catch(e) { this.error(e); }
},
assertRaise: function(exceptionName, method) {
var message = arguments[2] || 'assertRaise';
try {
method();
this.fail(message + ": exception expected but none was raised"); }
catch(e) {
((exceptionName == null) || (e.name==exceptionName)) ? this.pass() : this.error(e);
}
},
assertElementsMatch: function() {
var expressions = $A(arguments), elements = $A(expressions.shift());
if (elements.length != expressions.length) {
this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');
return false;
}
elements.zip(expressions).all(function(pair, index) {
var element = $(pair.first()), expression = pair.last();
if (element.match(expression)) return true;
this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());
}.bind(this)) && this.pass();
},
assertElementMatches: function(element, expression) {
this.assertElementsMatch([element], expression);
},
benchmark: function(operation, iterations) {
var startAt = new Date();
(iterations || 1).times(operation);
var timeTaken = ((new Date())-startAt);
this.info((arguments[2] || 'Operation') + ' finished ' +
iterations + ' iterations in ' + (timeTaken/1000)+'s' );
return timeTaken;
},
_isVisible: function(element) {
element = $(element);
if(!element.parentNode) return true;
this.assertNotNull(element);
//if(element.style && Element.getStyle(element, 'display') == 'none')
if(element.style && (Element.getStyle(element, 'display') == 'none' || Element.getStyle(element, 'visibility') == 'hidden'))
return false;
return this._isVisible(element.parentNode);
},
assertNotVisible: function(element) {
this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
},
assertVisible: function(element) {
this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
},
benchmark: function(operation, iterations) {
var startAt = new Date();
(iterations || 1).times(operation);
var timeTaken = ((new Date())-startAt);
this.info((arguments[2] || 'Operation') + ' finished ' +
iterations + ' iterations in ' + (timeTaken/1000)+'s' );
return timeTaken;
}
}
Test.Unit.Testcase = Class.create();
Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
initialize: function(name, test, setup, teardown) {
Test.Unit.Assertions.prototype.initialize.bind(this)();
this.name = name;
if(typeof test == 'string') {
test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');
test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');
this.test = function() {
eval('with(this){'+test+'}');
}
} else {
this.test = test || function() {};
}
this.setup = setup || function() {};
this.teardown = teardown || function() {};
this.isWaiting = false;
this.timeToWait = 1000;
},
wait: function(time, nextPart) {
this.isWaiting = true;
this.test = nextPart;
this.timeToWait = time;
},
run: function() {
try {
try {
if (!this.isWaiting) this.setup.bind(this)();
this.isWaiting = false;
this.test.bind(this)();
} finally {
if(!this.isWaiting) {
this.teardown.bind(this)();
}
}
}
catch(e) { this.error(e); }
}
});
// *EXPERIMENTAL* BDD-style testing to please non-technical folk
// This draws many ideas from RSpec http://rspec.rubyforge.org/
Test.setupBDDExtensionMethods = function(){
var METHODMAP = {
shouldEqual: 'assertEqual',
shouldNotEqual: 'assertNotEqual',
shouldEqualEnum: 'assertEnumEqual',
shouldBeA: 'assertType',
shouldNotBeA: 'assertNotOfType',
shouldBeAn: 'assertType',
shouldNotBeAn: 'assertNotOfType',
shouldBeNull: 'assertNull',
shouldNotBeNull: 'assertNotNull',
shouldBe: 'assertReturnsTrue',
shouldNotBe: 'assertReturnsFalse',
shouldRespondTo: 'assertRespondsTo'
};
var makeAssertion = function(assertion, args, object) {
this[assertion].apply(this,(args || []).concat([object]));
}
Test.BDDMethods = {};
$H(METHODMAP).each(function(pair) {
Test.BDDMethods[pair.key] = function() {
var args = $A(arguments);
var scope = args.shift();
makeAssertion.apply(scope, [pair.value, args, this]); };
});
[Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each(
function(p){ Object.extend(p, Test.BDDMethods) }
);
}
Test.context = function(name, spec, log){
Test.setupBDDExtensionMethods();
var compiledSpec = {};
var titles = {};
for(specName in spec) {
switch(specName){
case "setup":
case "teardown":
compiledSpec[specName] = spec[specName];
break;
default:
var testName = 'test'+specName.gsub(/\s+/,'-').camelize();
var body = spec[specName].toString().split('\n').slice(1);
if(/^\{/.test(body[0])) body = body.slice(1);
body.pop();
body = body.map(function(statement){
return statement.strip()
});
compiledSpec[testName] = body.join('\n');
titles[testName] = specName;
}
}
new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });
};
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,123 @@
/*
modalbox.css
Modalbox project
Created by Andrew Okonetchnikov.
Copyright 2006-2010 okonet.ru. All rights reserved.
Licensed under MIT license.
*/
#MB_overlay {
position: absolute;
margin: auto;
top: 0; left: 0;
width: 100%; height: 100%;
z-index: 999999;
z-index: 0!important;
border: 0;
background-color: #000!important;
}
#MB_overlay[id] { position: fixed; }
#MB_windowwrapper {
position:absolute;
top:0;
width:100%;
}
#MB_window {
position:relative;
margin-left:auto;
margin-right:auto;
top:0;
left:0;
border: 0 solid;
text-align: left;
z-index: 10000;
}
#MB_window[id] { position: relative; }
#MB_frame {
position: relative;
background-color: #EFEFEF;
height: 100%;
}
#MB_header {
margin: 0;
padding: 0;
}
#MB_content {
position: relative;
padding: 6px .75em;
overflow: auto;
}
#MB_caption {
font: bold 100% "Lucida Grande", Arial, sans-serif;
text-shadow: #FFF 0 1px 0;
padding: .5em 2em .5em .75em;
margin: 0;
text-align: left;
}
#MB_close {
display: block;
position: absolute;
right: 5px; top: 4px;
padding: 2px 3px;
font-weight: bold;
text-decoration: none;
font-size: 13px;
}
#MB_close:hover {
background: transparent;
}
#MB_loading {
padding: 1.5em;
text-indent: -10000px;
background: transparent url(spinner.gif) 50% 0 no-repeat;
}
/* Color scheme */
#MB_window {
background-color: #EFEFEF;
color: #000;
-webkit-box-shadow: 0 0 64px #000;
-moz-box-shadow: #000 0 0 64px;
box-shadow: 0 0 64px #000;
}
#MB_frame {
padding-bottom: 4px;
-webkit-border-bottom-left-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-bottomleft: 4px;
-moz-border-radius-bottomright: 4px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
#MB_content { border-top: 1px solid #F9F9F9; }
#MB_header {
background-color: #DDD;
border-bottom: 1px solid #CCC;
}
#MB_caption { color: #000 }
#MB_close { color: #777 }
#MB_close:hover { color: #000 }
/* Alert message */
.MB_alert {
margin: 10px 0;
text-align: center;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

+585
View File
@@ -0,0 +1,585 @@
if(typeof(LiveSpellInstance)=="undefined"){function LiveSpellInstance($setup){livespell.spellingProviders.push(this);this.Fields="ALL";this.IgnoreAllCaps=true;this.IgnoreNumeric=true;this.CaseSensitive=true;this.CheckGrammar=true;this.Language="English (International), Deutsch";this.MultiDictionary=false;this.UserInterfaceLanguage="de";this.CSSTheme="classic";this.SettingsFile="default-settings";this.ServerModel="";this.Delay=888;this.WindowMode="modal";this.Strict=true;this.ShowSummaryScreen=true;this.ShowMeanings=true;this.FormToSubmit="";this.MeaningProvider="http://www.thefreedictionary.com/{word}";this.UndoLimit=20;this.HiddenButtons="";this.CustomOpener=null;this.CustomOpenerClose=null;this.RightClickOnly=true;this.ShowLangInContextMenu=true;this.BypassAuthentication=false;this.UserSpellingInitiated=false;this.UserSpellingComplete=false;this.AddWordsToDictionary="USER";this.SetUserInterfaceLanguage=function(l){this.UserInterfaceLanguage=l;livespell.lang.load(l)}
this.isUniPacked=false;this.isNetSpell=false;this.FieldType=function(id){var oField=document.getElementById(id);var TYPE=oField.nodeName.toUpperCase();if(TYPE=="INPUT"||TYPE=="TEXTAREA"){return"value"}
if(TYPE=="IFRAME"){return"iframe"}
return"innerHTML";}
this.docUpdate=function(docs){var fieldIds=this.arrCleanFields();this.onUpdateFields(fieldIds);for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];var t=this.FieldType(id);var oField=document.getElementById(id);if(JavaScriptSpellCheck&&oField.MessageHolder){JavaScriptSpellCheck.LiveValidateMech(oField)}
if(docs[i]!==oField[t]){if(t==="iframe"){var myFrame=oField;var oDoc=livespell.getIframeDocumentBasic(oField);var oBody=oDoc.body;if(oBody.innerHTML!=docs[i]){oBody.innerHTML=docs[i]};}else{oField[t]=docs[i];}
if(t==="value"&&livespell.insitu.proxyDOM(id)){livespell.insitu.updateProxy(id);livespell.insitu.checkNow(id,this.id())}}}}
this.docRePaint=function(){var fieldIds=this.arrCleanFields();for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];var t=this.FieldType(id);var oField=document.getElementById(id);if(t==="value"&&livespell.insitu.proxyDOM(id)){livespell.insitu.updateProxy(id);livespell.insitu.checkNow(id,this.id())}}}
this.docPickup=function(){var fieldIds=this.arrCleanFields();var docs=[]
for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];var oField=document.getElementById(id);var t=this.FieldType(id);var val;if(t==="iframe"){var oDoc=livespell.getIframeDocumentBasic(oField);val=oDoc.body.innerHTML;}else{val=oField[t];val=livespell.str.stripTags(val);}
docs[i]=val;}
return docs;}
this.CheckInSitu=function(){this.UserSpellingInitiated=true;livespell.context.renderCss(this.CSSTheme);livespell.insitu.checkNow(this.arrCleanFields(),this.id())}
this.FieldModified=function(){try{if(this.spellWindowObject.isStillOpen()){this.spellWindowObject.resumeAfterEditing();}}catch(e){}}
this.setFieldListeners=function(){var fieldIds=this.arrCleanFields();{for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];var oField=document.getElementById(id);if(!oField["livespell__listener_"+this.id()]){oField["livespell__listener_"+this.id()]=true;var ty=this;var fn=function(){ty.FieldModified();}
var t=this.FieldType(id);if(t==="value"&&livespell.insitu.proxyDOM(id)){livespell.events.add(livespell.insitu.proxyDOM(id),"blur",fn,false)}else{livespell.events.add(oField,"change",fn,false)}}}}}
this.CheckInWindow=function(){this.UserSpellingInitiated=true;this.SetUserInterfaceLanguage(this.UserInterfaceLanguage);this.onDialogOpen();var e;var webkit=livespell.test.webkit()
var canmodal=!webkit;if(livespell.test.IE()&&(document.domain!=document.location.hostname)){canmodal=false;}
var wm=this.WindowMode.toLowerCase();if(this.CustomOpener){return this.CustomOpener(this.url())}
if(wm=="fancybox"&&typeof(jQuery)&&typeof(jQuery.fn.fancybox)){var uri=this.url();var ttl=livespell.lang.fetch(this.id(),"WIN_TITLE")
$.fancybox({width:460,height:290,type:'iframe',href:uri,title:ttl});var f=this
var fn=function(){f["onDialogOpen"]()};setTimeout(fn,150)}
else if(wm=="modalbox"&&typeof(Modalbox)!=="undefined"){var HTMLIframe="<iframe width='460' height='290' scrolling='no' marginwidth='0' marginheight='0' src='"+this.url()+"' frameborder='0' ></iframe>"
Modalbox.show(HTMLIframe,{title:livespell.lang.fetch(this.id(),"WIN_TITLE"),overlayDuration:0.2,slideDownDuration:0.2,slideUpDuration:0.2});var f=this
var fn=function(){f["onDialogOpen"]()};setTimeout(fn,189)}else if(wm=="modal"&&window.showModalDialog&&canmodal){window.showModalDialog(this.url(),window,"center:1;dialogheight:290px;dialogwidth:460px;resizable:0;scrollbars:0;scroll:0;location:0");}
else if(wm=="modeless"&&window.showModelessDialog&&canmodal){window.showModelessDialog(this.url(),window,"center:1;dialogheight:290px;dialogwidth:460px;resizable:0;scrollbars:0;scroll:0;location:0");}
else{window.open(this.url(),"spelldialog","width=460,height=290,scrollbars=no,resizable=no;centerscreen=yes;location=no;tolbar=no;menubar=no",false);}}
this.url=function(){var strout=livespell.installPath+"dialog.html";strout+="?instance="+this.id();return strout;}
this.m_ayt=[];this.m_ayt_timeout=null;this.m_AYTAjaxInervalHandler=function(){var fieldIds=this.m_ayt;if(!fieldIds.length){return;};for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];var oChild=E$(id)
if(oChild){var found=false;if(oChild.isCurrentAjaxImplementation!==true){oChild.isCurrentAjaxImplementation=true
found=true;}}}
if(found){this.ActivateAsYouType();}}
this.setAYTAjaxInervalHandler=function(){clearInterval(this.m_ayt_timeout);var t=this;var f=function(){t.m_AYTAjaxInervalHandler()}
setInterval(f,1000);}
this.ActivateAsYouTypeOnLoad=function(){livespell.context.renderCss(this.CSSTheme);var o=this;var fn=function(){o.ActivateAsYouType()}
livespell.events.add(window,"load",fn,false);}
this.ActivateAsYouType=function(){if(this.isUniPacked){this.Fields=$Spelling.findf(this.Fields);}
if(livespell.test.browserNoAYT()){return;}
this.SetUserInterfaceLanguage(this.UserInterfaceLanguage);livespell.context.renderCss(this.CSSTheme);fieldIds=this.arrCleanFields();this.AsYouTypeIsActive=true;for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];if(E$(id).nodeName.toLowerCase()=="textarea"){oField=livespell.insitu.createProxy(id);if(!oField){return}
oField.setAttribute("autocheck",true);oField.autocheck=true;oField.autocheckProvider=this.id();oChild=E$(id);oChild.isCurrentAjaxImplementation=true;this.m_ayt=livespell.array.safepush(this.m_ayt,id.replace("livespell____",""));}}
this.CheckInSitu();this.setAYTAjaxInervalHandler();}
this.AsYouTypeIsActive=false;this.PauseAsYouType=function(){fieldIds=this.arrCleanFields();for(var i=0;i<fieldIds.length;i++){var id=fieldIds[i];livespell.insitu.destroyProxy(id);this.AsYouTypeIsActive=false;}}
this.getFieldWordListMech=function(){var strDoc=this.docPickup().join(" ")
var tokens=livespell.str.tokenize(strDoc);var wordlist=[];var wasfine=true;if(!livespell.cache.spell[this.Language]){livespell.cache.spell[this.Language]=[];}
for(var i=0;i<tokens.length;i++){if(livespell.test.isword(tokens[i])===true){token=tokens[i].toString()+"";var mwm=livespell.test.spelling(token,this.Language);if(!mwm===true){wasfine=false}
if(typeof(mwm)=="undefined"){if(!(token===token.toUpperCase())){if(!(this.IgnoreNumeric&&livespell.test.num(token))){wordlist=livespell.array.safepush(wordlist,token);}}}}}
result={}
result.wasfine=wasfine;result.wordlist=wordlist;return result}
this.AjaxValidateFields=function(){var fResults=this.getFieldWordListMech()
var wasfine=fResults.wasfine
var wordlist=fResults.wordlist
if(wordlist.length<=0){return this.onValidateMech(wasfine);}
livespell.ajax.send("APIVALIDATE",wordlist.join(livespell.str.chr(1)),this.Language,this.CaseSensitive?"CASESENSITVE":"",this.id());}
this.BinSpellCheckFields=function(){var fResults=this.getFieldWordListMech()
var wasfine=fResults.wasfine
var wordlist=fResults.wordlist
if(wordlist.length<=0){return wasfine;}
return livespell.ajax.send_sync("APIVALIDATE",wordlist.join(livespell.str.chr(1)),this.Language,this.CaseSensitive?"CASESENSITVE":"",this.id());}
this.ListDictionaries=function(){return livespell.ajax.send_sync("LISTDICTS","","","",this.id());}
this.AjaxDidYouMean=function(input){livespell.ajax.send("APIDYM",input,this.Language,"",this.id());}
this.AjaxSpellCheck=function(input,makeSuggestions){makeSuggestions=makeSuggestions!==false;var wordstocheck=input.join?input:[input];var allFound=true
for(var i=0;i<wordstocheck.length&&allFound;i++){var word=wordstocheck[i];allFound=allFound&&livespell.test.fullyCached(word,this.Language,makeSuggestions);if(!allFound){}}
if(allFound){this.onSpellCheckFromCache(input,makeSuggestions);return;}
if(input.join){input=input.join(livespell.str.chr(1))
livespell.ajax.send("APISPELLARRAY",input,this.Language,makeSuggestions?"":"NOSUGGEST",this.id());}else{livespell.ajax.send("APISPELL",input,this.Language,makeSuggestions?"":"NOSUGGEST",this.id());}};this.SpellCheckSuggest=function(input){var wordstocheck=input.join?input:[input];var allFound=true;var out=[];for(var i=0;i<wordstocheck.length&&allFound;i++){var word=wordstocheck[i];allFound=allFound&&livespell.test.fullyCached(word,this.Language,true);}
if(allFound){for(var i=0;i<wordstocheck.length&&allFound;i++){var word=wordstocheck[i];out[i]=livespell.cache.suggestions[this.Language][word]}
return input.join?out:out[0];}
livespell.ajax.needsInstantSuggestion=true;if(input.join){input=input.join(livespell.str.chr(1))
return livespell.ajax.send_sync("APISPELLARRAY",input,this.Language,"",this.id());}else{return livespell.ajax.send_sync("APISPELL",input,this.Language,"",this.id());}}
this.BinSpellCheck=function(input){var wordstocheck=input.join?input:[input];var allFound=true
for(var i=0;i<wordstocheck.length&&allFound;i++){var word=wordstocheck[i];allFound=allFound&&livespell.test.fullyCached(word,this.Language,false);if(!allFound){}}
if(allFound){var ok=true;for(var i=0;i<input.length;i++){ok=ok&&livespell.test.spelling(word,this.Language);}
return ok;}
livespell.ajax.needsInstantSuggestion=false;if(input.join){input=input.join(livespell.str.chr(1));return livespell.ajax.send_sync("APISPELLARRAY",input,this.Language,"NOSUGGEST",this.id());}else{return livespell.ajax.send_sync("APISPELL",input,this.Language,"NOSUGGEST",this.id());}};this.BinSpellCheckArray=this.BinSpellCheck;this.AjaxSpellCheckArray=function(input,makeSuggestions){this.AjaxSpellCheck(input,makeSuggestions);}
this.onSpellCheck=function(input,spelling,reason,suggestions){}
this.onDidYouMean=function(suggestion,origional){}
this.onValidateMech=function(result){this.onValidate(this.Fields,result)}
this.onSpellCheckFromCache=function(input,makeSuggestions){var isArray=input.join;if(!isArray){input=[input];}
var outInput=input;var outSpellingOk=[]
var outSuggestions=[]
var outReason=[]
for(var i=0;i<input.length;i++){var word=input[i]
outSpellingOk[i]=livespell.test.spelling(word,this.Language);outReason[i]=outSpellingOk[i]?"-":livespell.cache.reason[this.Language][word];outSuggestions[i]=makeSuggestions?livespell.cache.suggestions[this.Language][word]:[];}
if(isArray){this.onSpellCheck(outInput,outSpellingOk,outReason,outSuggestions)}else{this.onSpellCheck(outInput[0],outSpellingOk[0],outReason[0],outSuggestions[0])}}
this.arrCleanFields=function(){var F=this.Fields;var isString=F.split;if(isString){F=F.replace(/\s/g,"").split(",");}
var out=new Array;for(var j=0;j<F.length;j++){var oid=F[j];var fieldok=true;var AF;var i;var found=false;if(oid.toUpperCase()==="TEXTAREAS"||oid.toUpperCase()==="ALL"||oid.toUpperCase()==="ENABLED"){out=[];AF=livespell.insitu.allTextAreas();for(i=0;i<AF.length;i++){fieldok=true;if(oid.toUpperCase()==="ENABLED"){if(E$(AF[i]).disabled||E$(AF[i]).readOnly){fieldok=false}}
if(fieldok){out=livespell.array.safepush(out,AF[i]);found=true;}}}
if(oid.toUpperCase()==="TEXTINPUTS"||oid.toUpperCase()==="ALL"||oid.toUpperCase()==="ENABLED"){AF=livespell.insitu.allTextInputs();for(i=0;i<AF.length;i++){fieldok=true;if(oid.toUpperCase()==="ENABLED"){if(E$(AF[i]).disabled||E$(AF[i]).readOnly){fieldok=false}}
if(fieldok){out=livespell.array.safepush(out,AF[i]);found=true;}}}
if(oid.toUpperCase()==="EDITORS"||oid.toUpperCase()==="ALL"||oid.toUpperCase()==="ENABLED"){AF=livespell.insitu.allEditors();for(i=0;i<AF.length;i++){out=livespell.array.safepush(out,AF[i]);found=true;}}
if(oid.toUpperCase().split(":")[0]=="IFRAME"){var e;var frameindex=Number(oid.split(":")[1]);if(frameindex<document.getElementsByTagName("iframe").length){myFrame=document.getElementsByTagName("iframe")[frameindex]
if(!myFrame.id){myFrame.id="livespell_IFRAME_id_"+frameindex}
out=livespell.array.safepush(out,myFrame.id);found=true;}}
if(oid.charAt(0)=="."&&!E$(oid)){var cname=oid.substring(1);var AF=livespell.getElementsByClass(cname);for(i=0;i<AF.length;i++){var oFieldByClass=AF[i];if(!oFieldByClass.id){oFieldByClass.id="livespell_CLASSSECTOR_id_"+cname+"_"+i}
out=livespell.array.safepush(out,oFieldByClass.id);found=true;}}
if(!found){if(document.getElementById(oid)){var liveChilren=livespell.insitu.findLiveChildrenInDOMElement(document.getElementById(oid));if(liveChilren.length){out=livespell.array.safepush(out,liveChilren);}else{out=livespell.array.safepush(out,oid);}}
else if(oid.id){out=livespell.array.safepush(out,oid);}
else if(oid.name){oid.id="livespell____"+oid.name;out=livespell.array.safepush(out,"livespell____"+oid.name);}
else if(document.getElementsByName(oid).length==1){document.getElementsByName(oid)[0].id="livespell____"+oid;out=livespell.array.safepush(out,"livespell____"+oid);}}}
return out;}
this.id=function(){for(var i=0;i<livespell.spellingProviders.length;i++){if(this===livespell.spellingProviders[i]){return i}}}
this.recieveWindowSpell=function(){try{this.spellWindowObject.nextSuggestionChunk()}catch(e){}}
this.recieveWindowSetup=function(){try{this.spellWindowObject.ui.setupLanguageMenu();this.spellWindowObject.nextSuggestionChunk();this.spellWindowObject.moveNext();}catch(e){}};this.recieveContextSpell=function(){var myFields=this.arrCleanFields();for(var i=0;i<myFields.length;i++){livespell.insitu.renderProxy(myFields[i],this.id())}}
this.SpellButton=function(insitu,text,Class,style){if(!insitu){insitu=false};if(!text){text="Spell Check"};if(!Class){Class="";};if(!style){style="";};var holder=document.createElement("span");var o=document.createElement("input");o.setAttribute("type","button");o.type="button";o.setAttribute("value",text);o.value=text;o.setAttribute("Class",Class);o.className=Class;o.setAttribute("style",style);if(insitu){o.setAttribute("onclick"," livespell.spellingProviders["+this.id()+"].CheckInSitu()");}else{o.setAttribute("onclick"," livespell.spellingProviders["+this.id()+"].CheckInWindow()");}
holder.appendChild(o);return(holder.innerHTML)}
this.SpellLink=function(insitu,text,Class,style){if(!insitu){insitu=false};if(!text){text="Spell Check"};if(!Class){Class="";};if(!style){style="";};var holder=document.createElement("span");var o=document.createElement("a");o.innerHTML=text;if(insitu){o.setAttribute("href","javascript:livespell.spellingProviders["+this.id()+"].CheckInSitu()");}else{o.setAttribute("href","javascript:livespell.spellingProviders["+this.id()+"].CheckInWindow()");}
o.setAttribute("Class",Class);o.className=Class;o.setAttribute("style",style);holder.appendChild(o);return(holder.innerHTML)}
this.SpellImageButton=function(insitu,image,rollover,text,Class,style){if(!insitu){insitu=false};if(!text){text="Spell Check"};if(!Class){Class="";};if(!image){image="themes/buttons/spellicon.gif";rollover="themes/buttons/spelliconover.gif"};if(!style){style="";};var holder=document.createElement("span");var o=document.createElement("img");o.setAttribute("alt",text);o.alt=text;o.setAttribute("src",livespell.installPath+image);o.src=livespell.installPath+image;o.setAttribute("border","0");o.setAttribute("onmouseover","this.src='"+livespell.installPath+rollover+"'");if(rollover){o.setAttribute("onmouseout","this.src='"+livespell.installPath+image+"'");}
if(insitu){o.setAttribute("onclick","livespell.spellingProviders["+this.id()+"].CheckInSitu()");}else{o.setAttribute("onclick","livespell.spellingProviders["+this.id()+"].CheckInWindow()");}
o.setAttribute("Class",Class);o.className=Class;o.setAttribute("style","cursor:pointer; "+style);holder.appendChild(o);return(holder.innerHTML)}
this.DrawSpellImageButton=function(insitu,image,rollover,text,Class,style){livespell.context.renderCss(this.CSSTheme);document.writeln(this.SpellImageButton(insitu,image,rollover,text,Class,style));}
this.DrawSpellLink=function(insitu,text,Class,style){livespell.context.renderCss(this.CSSTheme);document.writeln(this.SpellLink(insitu,text,Class,style))}
this.DrawSpellButton=function(insitu,text,Class,style){livespell.context.renderCss(this.CSSTheme);document.writeln(this.SpellButton(insitu,text,Class,style))}
this.__SubmitForm=function(){if(!this.FormToSubmit.length){return;};var e;try{E$(this.FormToSubmit).submit()}catch(e){}};this.onDialogCompleteNET=function(){if(this.UniqueIDNetPostBack!=""){if(window.__doPostBack){window.__doPostBack(this.UniqueIDNetPostBack,this.UniqueIDNetPostBack);}}};this.UniqueIDNetPostBack="";this.onDialogOpen=function(){};this.onDialogComplete=function(){};this.onDialogCancel=function(){};this.onDialogClose=function(){};this.onChangeLanguage=function(Language){};this.onIgnore=function(Word){};this.onIgnoreAll=function(Word){};this.onChangeWord=function(From,To){};this.onChangeAll=function(From,To){};this.onLearnWord=function(Word){};this.onLearnAutoCorrect=function(From,To){};this.onUpdateFields=function(arrFieldIds){};}
function JavaScriptSpellCheckObj($setup){this.DefaultDictionary="English (International), Deutsch";this.UserInterfaceTranslation="de";this.ShowStatisticsScreen=false;this.SubmitFormById="";this.Theme="modern";this.CaseSensitive=true;this.CheckGrammar=true;this.IgnoreAllCaps=true;this.IgnoreNumbers=true;this.ShowThesaurus=true;this.ShowLanguagesInContextMenu=false;this.ServerModel="auto";this.PopUpStyle="modal";this.isUniPacked=true;this.SpellCheckInWindow=function(Fields){var o=this.createInstance(Fields,arguments);o.CheckInWindow();return o;}
this.SpellCheckAsYouType=function(Fields){var o=this.createInstance(Fields,arguments);if(document.readyState&&document.readyState.toLowerCase()!=="complete"){o.Fields=Fields;o.ActivateAsYouTypeOnLoad();}else{o.ActivateAsYouType();}
return o;}
this.ManageFields=function(Fields){return Fields}
this.$validators=[];this.ajaxinstance=null;this.initAJAX=function(){if(!this.ajaxinstance){var o=this.createInstance();this.ajaxinstance=o;}else{var o=this.manageAjaxInstance();}
return o;}
this.AjaxSpellCheck=function(word){var o=this.initAJAX()
setTimeout(function(){o.AjaxSpellCheck(word,true);},1);return o}
this.BinSpellCheck=function(input){var o=this.initAJAX()
return o.BinSpellCheck(input)}
this.BinSpellCheckArray=this.BinSpellCheck;this.SpellCheckSuggest=function(input){var o=this.initAJAX()
return o.SpellCheckSuggest(input)}
this.BinSpellCheckFields=function(Fields){var o=this.createInstance(Fields,arguments);result=o.BinSpellCheckFields()
delete o;return result;}
this.ListDictionaries=function(){var o=this.initAJAX()
result=o.ListDictionaries()
delete o;return result;}
this.AjaxDidYouMean=function(string){if(!this.ajaxinstance){var o=this.createInstance();this.ajaxinstance=o;}else{var o=this.manageAjaxInstance();}
setTimeout(function(){o.AjaxDidYouMean(string);},1);this.ajaxinstance=o
return o}
this.AjaxValidateFields=function(Fields){var o=this.createInstance(Fields,arguments);setTimeout(function(){o.AjaxValidateFields();},1);return o}
this.LiveFormValidation=function(Fields,MessageHolder){var j=this;var f=Fields;var m=MessageHolder;var fn=function(){j.LiveFormValidation(f,m)}
if(document.readyState&&document.readyState.toLowerCase()!=="complete"){livespell.events.add(window,"load",fn,false);return;}else{var fn=function(){JavaScriptSpellCheck.LiveValidate(f,m)}
livespell.events.add(window,"load",fn,false);}
f=this.findf(Fields);ff=f.split(",");for(var i=0;i<ff.length;i++){var oneField=ff[i];var oField=document.getElementById(oneField);if(oField){oField.isValidated=true;oField.MessageHolder=MessageHolder;if(typeof(MessageHolder)=="string"){MessageHolder=document.getElementById(MessageHolder);}
if(!MessageHolder||!MessageHolder.id){}else{MessageHolder.style.display="none";}
livespell.events.add(oField,"keyup",this.validatortypoclick,false);JavaScriptSpellCheck.$validators=livespell.array.safepush(JavaScriptSpellCheck.$validators,oField);JavaScriptSpellCheck.LiveValidateMech(oField)}}}
this.LiveFormValidationCheck=function(){var myValid=true;for(var i=0;i<JavaScriptSpellCheck.$validators.length;i++){if(!JavaScriptSpellCheck.$validators[i].isValidated){myValid=false;}}
return myValid;}
this.validatortypoclick=function(event){var returnfalse=false;try{if(!event){event=window.event;}}catch(e){}
var ch8r=event.keyCode;if(((ch8r>15&&ch8r<32)||(ch8r>32&&ch8r<41))&&(ch8r!=127)){return;}
var me=event.srcElement?event.srcElement:this;clearTimeout(livespell.cache.checkTimeoutUni)
livespell.cache.checkTimeoutUni=setTimeout(function(){JavaScriptSpellCheck.LiveValidateMech(me)},567)}
this.LiveValidateMech4Proxy=function(oField,result){var MessageHolder=oField.MessageHolder;if(typeof(MessageHolder)=="string"){MessageHolder=document.getElementById(MessageHolder);}
if(!MessageHolder||!MessageHolder.id){return false;}
MessageHolder.style.display=result?"none":"inherit";oField.isValidated=result;}
this.LiveValidateMech=function(oField){var o=this.createInstance(oField);setTimeout(function(){o.AjaxValidateFields();},1);o.onValidate=function(Fields,result){var oneField=Fields.split(",")[0];var oField=document.getElementById(oneField);var MessageHolder=oField.MessageHolder;if(typeof(MessageHolder)=="string"){MessageHolder=document.getElementById(MessageHolder);}
if(!MessageHolder||!MessageHolder.id){return false;}
MessageHolder.style.display=result?"none":"inherit";oField.isValidated=result;delete o}}
this.vhcounter=0;this.findcounter=0;;this.findf=function(Fields,PassedArgs){if(!Fields){return"ALL"}
var inputs=[];var outputs=[];if(!PassedArgs){inputs=[];inputs[0]=Fields;}else{inputs=PassedArgs}
for(var i=0;i<inputs.length;i++){var f=inputs[i];var ff
if(f.push){ff=f;}else if(f.split){ff=f.split(",")}else{ff=[];ff[0]=f}
for(var j=0;j<ff.length;j++){var finderItem=ff[j];var oObject=null;var binWasMacro=false;if(typeof Fields==='string'){var td=Fields;var tdcase=Fields.replace(/\s\s*$/,'');var td=Fields.toUpperCase().replace(/\s\s*$/,'');if(td==="ALL"||td==="EDITORS"||td==="TEXTAREAS"||td==="TEXTINPUTS"){outputs.push(td);binWasMacro=true;}
if(td.charAt(0)==="."){outputs.push(tdcase);binWasMacro=true;}}
if(!binWasMacro){if(finderItem.nodeName){oObject=finderItem;}else{finderItem=finderItem.toString().replace(/^\s\s*/,'');if(document.getElementById(finderItem)){oObject=document.getElementById(finderItem);}else{var byName=document.getElementsByName(finderItem);if(byName&&byName.length>0){oObject=byName[0]}}}}
if(oObject){if(!oObject.id){oObject.id="jsspellcheck__element__"+(this.findcounter);this.findcounter++;}
outputs.push(oObject.id)}}}
return outputs.join(",")}
this.manageAjaxInstance=function(){var o=this.ajaxinstance;o.Language=this.DefaultDictionary;o.UserInterfaceLanguage=this.UserInterfaceTranslation;o.IgnoreAllCaps=this.IgnoreAllCaps;o.IgnoreNumeric=this.IgnoreNumbers;o.IgnoreAllCaps=this.IgnoreAllCaps;o.CSSTheme=this.Theme;o.WindowMode=this.PopUpStyle;o.FormToSubmit=this.SubmitFormById;o.ShowSummaryScreen=this.ShowStatisticsScreen;o.ShowMeanings=this.ShowThesaurus;o.ServerModel=this.ServerModel;return o;}
this.createInstance=function(Fields,PassedArgs){var o=new LiveSpellInstance();o.isUniPacked=this.isUniPacked;o.Language=this.DefaultDictionary;o.UserInterfaceLanguage=this.UserInterfaceTranslation;Fields=this.findf(Fields,PassedArgs)
o.Fields=this.ManageFields(Fields);o.IgnoreAllCaps=this.IgnoreAllCaps;o.IgnoreNumeric=this.IgnoreNumbers;o.WindowMode=this.PopUpStyle;o.CSSTheme=this.Theme;o.FormToSubmit=this.SubmitFormById;o.ShowSummaryScreen=this.ShowStatisticsScreen;o.ShowMeanings=this.ShowThesaurus;o.ShowLangInContextMenu=this.ShowLanguagesInContextMenu;o.ServerModel=this.ServerModel;return o;}}}
if(typeof(JavaScriptSpellCheck)=="undefined"||!JavaScriptSpellCheck){var JavaScriptSpellCheck=new JavaScriptSpellCheckObj()
var $Spelling=JavaScriptSpellCheck;var $spelling=JavaScriptSpellCheck}
if(typeof(livespell)=="undefined"){livespell={isactiveX:false,degradeToIframe:true,rubberRingServerModel:"",callerspan:null,liveProxys:[],installPath:"",spellingProviders:[],addedJsFiles:[],maxURI:2048,getElementsByClass:function(className)
{var thanksto="KorRedDevil";var hasClassName=new RegExp("(?:^|\\s)"+className+"(?:$|\\s)");var allElements=document.getElementsByTagName("*");var results=[];var element;for(var i=0;(element=allElements[i])!=null;i++){var elementClass=element.className;if(elementClass&&elementClass.indexOf(className)!=-1&&hasClassName.test(elementClass))
results.push(element);}
return results;},setrubberRingServerModel:function(){if(!(livespell.spellingProviders[0]&&livespell.spellingProviders[0].isUniPacked)){return false;}
var mode=""
if(this.testSyncRequest(livespell.installPath+"core/Default.aspx")){mode="aspx";}
else if(this.testSyncRequest(livespell.installPath+"core/Default.ashx")){mode="asp.net";}
else if(this.testSyncRequest(livespell.installPath+"core/index.php")){mode="php";}
else if(this.testSyncRequest(livespell.installPath+"core/default.asp")){mode="asp";}
else{if(typeof(window['LIVESPELL_DEBUG_MODE'])!="undefined"){livespell.ajax.debug("SpellCheck Cannot Connect to a Server!",false)}else{throw("SpellCheck Cannot Connect to a Server!");}
return;}
livespell.ajax.debug("<h1>Spell Check Server Mode Detected & Changed to "+mode.toUpperCase()+"</h1>",false)
livespell.rubberRingServerModel=mode;return mode;},setUniServerModel:this.setrubberRingServerModel,ajaxClient:function(sync){var xhr=false;try{xhr=new XMLHttpRequest();if(xhr){return xhr}}
catch(e){}
if(livespell.degradeToIframe&&!sync){return false}
try{xhr=new ActiveXObject('Microsoft.XMLHTTP');if(xhr){livespell.isactiveX=true;return xhr}}
catch(e2){try{xhr=new ActiveXObject('Msxml2.XMLHTTP');if(xhr){livespell.isactiveX=true;return xhr}}
catch(e3){return false;}}
return false;},testSyncRequest:function(posturl){var hasajax=false;var xhr=livespell.ajaxClient(true);if(posturl.indexOf("html")>-1){xhr.open("GET",posturl,false);xhr.send();}else{var params="test=true"
xhr.open("GET",posturl+"?"+params,false);xhr.send();}
if(xhr.status==200){if(typeof(window['LIVESPELL_DEBUG_MODE'])!="undefined"){livespell.ajax.debug("SERVER ERROR:"+xhr.responseText,false)}
return xhr.responseText.toLowerCase().replace(/^\s\s*/,'').replace(/\s\s*$/,'')=="no command";}
if(typeof(window['LIVESPELL_DEBUG_MODE'])!="undefined"){livespell.ajax.debug("SERVER CANNOT WORK:"+xhr.responseText,false)}
return false},addJs:function(js){if(livespell.addedJsFiles[js]==true){return}
livespell.addedJsFiles[js]=true
var Scr=document.createElement('SCRIPT');Scr.src=js;Scr.type='text/javascript';document.getElementsByTagName('HEAD')[0].appendChild(Scr);},inlineblock:function(){var webkit=livespell.test.webkit();if(webkit){return"block";}
return window.getComputedStyle?"inline-block":"inline";},heartbeat:function(){var id;var DesiredActive=new Array();for(var p=0;p<livespell.spellingProviders.length;p++){var provider=livespell.spellingProviders[p];if(provider.AsYouTypeIsActive){var flist=provider.arrCleanFields();for(var f=0;f<flist.length;f++){id=flist[f];DesiredActive=livespell.array.safepush(DesiredActive,id);if(document.getElementById(id).nodeName.toLowerCase()=="textarea"&&!document.getElementById(id+livespell.insitu._FIELDSUFFIX)){provider.ActivateAsYouType()}else{livespell.insitu.safeUpdateProxy(id,p)}}}}
var divs=document.getElementsByTagName("div");for(var i=0;i<divs.length;i++){thisdiv=divs[i];if(thisdiv.isLiveSpellProxy&&thisdiv.id){var shouldBeThere=false
id=thisdiv.id.replace(livespell.insitu._FIELDSUFFIX,"")
for(j=0;j<DesiredActive.length&&!shouldBeThere;j++){if(DesiredActive[j]==id){shouldBeThere=true}}
if(!shouldBeThere){livespell.insitu.destroyProxy(id);}}}},getIframeDocumentBasic:function(myFrame){var oDoc;if(myFrame.contentWindow){oDoc=myFrame.contentWindow.document;}else if(myFrame.contentDocument){oDoc=myFrame.contentDocument;}else{oDoc=null}
return oDoc;return null;},getIframeDocument:function(myFrame){var oDoc,oBody;var isEditable;try{if(myFrame.contentWindow){oDoc=myFrame.contentWindow.document;}else if(myFrame.contentDocument){oDoc=myFrame.contentDocument;}else{return null}
oBody=oDoc.body;isEditable=oBody.contentEditable==="true"||oBody.contentEditable===true||oBody.designMode=='on'||oBody.designMode=='On'||oBody.designMode=='ON'||oBody.designMode===true||oBody.designMode==="true"||oDoc.contentEditable===true||oDoc.designMode=='on'||oDoc.designMode===true||oDoc.designMode==="true";if(isEditable){return oDoc}
myFrame=myFrame.contentWindow?myFrame.contentWindow:myFrame;if(myFrame.frames.length){var oSubDoc;for(var i=0;i<myFrame.frames.length;i++){var mySubFrame=myFrame.frames[i];oSubDoc=mySubFrame.contentDocument?mySubFrame.contentDocument:mySubFrame.document;if(mySubFrame.contentDocument){oSubDoc=mySubFrame.contentDocument;}else if(mySubFrame.contentWindow){oSubDoc=mySubFrame.contentWindow.document;}
oBody=oSubDoc.body;isEditable=oBody.spellcheck==="false"||oBody.spellcheck===false||oBody.contentEditable==="true"||oBody.contentEditable===true||oBody.designMode=='on'||oBody.designMode=='On'||oBody.designMode=='ON'||oBody.designMode===true||oBody.designMode==="true"||oDoc.contentEditable===true||oDoc.designMode=='on'||oDoc.designMode===true||oDoc.designMode==="true";if(isEditable){return oSubDoc}}
isEditable=oBody.spellcheck==="false"||oBody.spellcheck===false;if(isEditable){return oDoc}}}catch(e){}
return null;},lang:{fetch:function(providerID,index){var lang=livespell.spellingProviders[providerID].UserInterfaceLanguage;try{return this[lang][this[index]];}catch(e){try{return this["en"][this[index]];}catch(e){return index;}}},load:function(lang){var idname="__livespell__translations__"+lang;var fileref=E$(idname)
if(fileref){}else{fileref=document.createElement("script");fileref.setAttribute("id",idname);fileref.id=idname;fileref.setAttribute("type","text/javascript");fileref.setAttribute("src",livespell.installPath+"translations/"+lang+".js");document.getElementsByTagName("head")[0].appendChild(fileref);}},BTN_ADD_TO_DICT:0,BTN_AUTO_CORECT:1,BTN_CANCEL:2,BTN_CHANGE:3,BTN_CHANGE_ALL:4,BTN_CLEAR_EDIT:5,BTN_CLOSE:6,BTN_IGNORE_ALL:7,BTN_IGNORE_ONCE:8,BTN_OK:9,BTN_OPTIONS:10,BTN_RESET:11,BTN_UNDO:12,DONESCREEN_EDITS:13,DONESCREEN_FIELDS:14,DONESCREEN_MESSAGE:15,DONESCREEN_WORDS:16,LABEL_LANGAUGE:17,LABEL_SUGGESTIONS:18,LANGUAGE_MULTIPLE:19,LANGUAGE_MULTIPLE_INSTRUCTIONS:20,LOOKUP_MEANING:21,MENU_APPLY:22,MENU_CANCEL:23,MENU_DELETEBANNED:24,MENU_DELETEREPEATED:25,MENU_IGNORE:26,MENU_IGNOREALL:27,MENU_LANGUAGES:28,MENU_LEARN:29,MENU_NOSUGGESTIONS:30,OPT_CASE_SENSITIVE:31,OPT_ENTRIES:32,OPT_IGNORE_CAPS:33,OPT_IGNORE_NUMERIC:34,OPT_PERSONAL_AUTO_CURRECT:35,OPT_PERSONAL_DICT:36,OPT_SENTENCE_AWARE:37,REASON_BANNED:38,REASON_CASE:39,REASON_ENFORCED:40,REASON_GRAMMAR:41,REASON_REPEATED:42,REASON_SPELLING:43,SUGGESTIONS_DELETE_REPEATED:44,SUGGESTIONS_NONE:45,USRBTN_SPELL_CHECK:46,WIN_TITLE:47},constants:{_IFRAME:"livespell___ajax_frame",_AJAXFORM:"livespell___ajax_form"},ajax:{renderIframe:function(postURL){if(E$(livespell.constants._IFRAME)){return;}
var n=document.createElement("span");n.innerHTML="<iframe id='"+livespell.constants._IFRAME+"' style='display:none;width:1px;height:1px;' src='about:blank' name='"+livespell.constants._IFRAME+"' ></iframe>"
document.body.appendChild(n);var f=document.createElement("form");f.setAttribute("method","get");f.setAttribute("action",postURL);f.setAttribute("id",livespell.constants._AJAXFORM);f.setAttribute("name",livespell.constants._AJAXFORM);f.setAttribute("target",livespell.constants._IFRAME);var fieldList=["command","args","lan","note","script","sender"];for(var i=0;i<fieldList.length;i++){var fieldName=fieldList[i];n=document.createElement("input");n.setAttribute("type","hidden");n.setAttribute("name",fieldName);n.setAttribute("id","livespell___ajax_form_"+fieldName);f.appendChild(n);n=null;}
document.body.appendChild(f);},resend:function(){if(livespell.isactiveX==true&&livespell.test.IE()){livespell.degradeToIframe=true;}
livespell.ajax.send(livespell.cache.ajaxrequest.cmd,livespell.cache.ajaxrequest.args,livespell.cache.ajaxrequest.lan,livespell.cache.ajaxrequest.note,livespell.cache.ajaxrequest.sender);},send:function(cmd,args,lan,note,sender){livespell.cache.ajaxrequest={};livespell.cache.ajaxrequest.cmd=cmd;livespell.cache.ajaxrequest.args=args;livespell.cache.ajaxrequest.lan=lan;livespell.cache.ajaxrequest.note=note;livespell.cache.ajaxrequest.sender=sender;var oSender=livespell.spellingProviders[sender];var serverModel=oSender.ServerModel.toLowerCase()
if(livespell.rubberRingServerModel!==""){serverModel=livespell.rubberRingServerModel}
var posturl=livespell.installPath+"core/"
if(serverModel==="asp.net"){posturl+="default.ashx"}
else if(serverModel==="aspx"){posturl+="Default.aspx"}
else if(serverModel==="asp"){posturl+="default.asp"}
else if(serverModel==="php"){posturl+="index.php"}
else if(serverModel==="auto"||serverModel===""){posturl+=""}
else if(serverModel!==""){posturl+="index."+serverModel}
else{throw('livespell::SeverModel not recognized: '+serverModel)}
var settingsfile=livespell.spellingProviders[sender].SettingsFile;var hasajax=false;var xhr=false;if(!oSender.BypassAuthentication){xhr=livespell.ajaxClient(false);}
if(xhr){hasajax=true};if(hasajax){xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status==200){livespell.ajax.pickup(xhr.responseText,false);}
else{if(livespell.rubberRingServerModel!=livespell.setrubberRingServerModel()){livespell.ajax.resend()}
if(typeof(window['LIVESPELL_DEBUG_MODE'])!="undefined"){try{if(xhr.responseText.length){livespell.ajax.debug("SERVER ERROR:"+xhr.responseText,false)}else{livespell.ajax.debug("SERVER ERROR - Please view this page in a browser other than IE for full details",false)}}catch(e){livespell.ajax.debug("SERVER ERROR",false)}}}}};try{args=encodeURIComponent(args);}catch(e){args=escape(args);}
var params='';params+="note="+escape(note);params+="&command="+cmd;params+="&args="+(args);params+="&lan="+escape(lan);params+="&sender="+escape(sender);params+="&settingsfile="+escape(settingsfile);xhr.open("GET",posturl+"?"+params,false);xhr.send();livespell.ajax.debug("URL:"+posturl+" <br/> GET:"+params,true)}else{var e;livespell.ajax.renderIframe(posturl);try{window.frames[livespell.constants._IFRAME].document.location="about:blank";}catch(e){}
livespell.ajax.debug("URL:"+posturl+" <br/> GET (IFRAME):"+params,true)
E$(livespell.constants._AJAXFORM+"_command").value=cmd;E$(livespell.constants._AJAXFORM+"_args").value=args;E$(livespell.constants._AJAXFORM+"_lan").value=lan;E$(livespell.constants._AJAXFORM+"_note").value=note;E$(livespell.constants._AJAXFORM+"_sender").value=sender;E$(livespell.constants._AJAXFORM+"_script").value="true";E$(livespell.constants._AJAXFORM).submit();}},send_sync:function(cmd,args,lan,note,sender){livespell.cache.ajaxrequest={};livespell.cache.ajaxrequest.cmd=cmd;livespell.cache.ajaxrequest.args=args;livespell.cache.ajaxrequest.lan=lan;livespell.cache.ajaxrequest.note=note;livespell.cache.ajaxrequest.sender=sender;var oSender=livespell.spellingProviders[sender];var serverModel=oSender.ServerModel.toLowerCase()
if(serverModel==="auto"&&livespell.rubberRingServerModel!==""){serverModel=livespell.rubberRingServerModel}
var posturl=livespell.installPath+"core/"
if(serverModel==="asp.net"){posturl+="default.ashx"}
else if(serverModel==="aspx"){posturl+="Default.aspx"}
else if(serverModel==="asp"){posturl+="default.asp"}
else if(serverModel==="php"){posturl+="index.php"}
else if(serverModel==="auto"||serverModel===""){posturl+=""}
else if(serverModel!==""){posturl+="index."+serverModel}
else{throw('livespell::SeverModel not recognized: '+serverModel)}
var settingsfile=livespell.spellingProviders[sender].SettingsFile;var hasajax=false;var xhr=livespell.ajaxClient(true);if(!xhr){livespell.ajax.debug("SYNC REQUEST ERROR: No HTMLHTTP object or ActiveX",false);return null;};var params='';try{args=encodeURIComponent(args);}catch(e){args=escape(args);}
params+="note="+escape(note);params+="&command="+cmd;params+="&args="+(args);params+="&lan="+escape(lan);params+="&sender="+escape(sender);params+="&settingsfile="+escape(settingsfile);xhr.open("GET",posturl+"?"+params,false);xhr.send();livespell.ajax.debug("REMOTE-CALL:"+posturl+" <br/> GET:"+params,true);if(xhr.status==200){return livespell.ajax.pickup(xhr.responseText,true);}
else{livespell.setrubberRingServerModel();if(typeof(window['LIVESPELL_DEBUG_MODE'])!="undefined"){try{if(xhr.responseText.length){livespell.ajax.debug("SERVER ERROR:"+xhr.responseText,false)}else{livespell.ajax.debug("SERVER ERROR - Please view this page in a browser other than IE for full details",false)}}catch(e){livespell.ajax.debug("SERVER ERROR",false)}
this.send_sync(cmd,args,lan,note,sender)}}
return null},pickupIframe:function(strHTML){strHTML=strHTML.split("<script")[0]
strHTML=strHTML.split("<SCRIPT")[0]
this.pickup(strHTML,false);},debug:function(msg,mtcolor){if(typeof(window['LIVESPELL_DEBUG_MODE'])!="undefined"){var o=document.getElementById('LIVESPELL_DEBUG_MODE_CONSOLE');if(!o){o=document.createElement('div');o.innerHTML="<h2>Spell checker debug console</h2><p>please email back for comprehensive support</p><hr/><div style='border:1px dotted grey; background-color:#eee;color:#000;' id='LIVESPELL_DEBUG_MODE_CONSOLE'></div> ";document.body.appendChild(o);}
o=document.getElementById('LIVESPELL_DEBUG_MODE_CONSOLE');o.innerHTML="<div style='background-color:"+((mtcolor===true)?"#ffe":"#aab")+"'>"+o.innerHTML+msg+"</div>";}},needsInstantSuggestion:false,pickup:function(strHTML,binInstant){this.debug((strHTML),false);if(strHTML.indexOf(livespell.str.chr(5))===-1){setTimeout(livespell.ajax.resend,5000);return;}
var arrResult=(strHTML).split(livespell.str.chr(5));var command=arrResult[0];var vSender=Number(arrResult[1]);var oSender=livespell.spellingProviders[vSender]
var vLang=oSender.Language
var i,j,k,t,r,newSuggestions,sug_each_word,Suggestions;if(!livespell.cache.suggestions[vLang]){livespell.cache.suggestions[vLang]=[];}
if(!livespell.cache.spell[vLang]){livespell.cache.spell[vLang]=[];}
if(!livespell.cache.reason[vLang]){livespell.cache.reason[vLang]=[];}
if(command==="CTXSPELL"){t=arrResult[2].split("");r=arrResult[3].split("");for(i=0;i<t.length;i++){livespell.cache.reason[vLang][livespell.cache.wordlist[vSender][i]]=(r[i]).toString();livespell.cache.spell[vLang][livespell.cache.wordlist[vSender][i]]=(t[i]==="T");}
oSender.recieveContextSpell()}else if(command==="CTXSUGGEST"){newSuggestions=arrResult[2].split(livespell.str.chr(2));livespell.cache.suggestions[vLang][livespell.cache.suggestionrequest.word]=newSuggestions;for(j=0;j<newSuggestions.length;j++){livespell.cache.spell[vLang][newSuggestions[j]]=true;sug_each_word=newSuggestions[j].replace(/\-/g," ").split(" ")
for(k=0;k<sug_each_word.length;k++){livespell.cache.spell[vLang][sug_each_word[k]]=true;}}
if(arrResult[3]&&arrResult[3].length){livespell.cache.langs=(arrResult[3].split(livespell.str.chr(2)));}
livespell.context.showMenu(livespell.cache.suggestionrequest.id,livespell.cache.suggestionrequest.word,livespell.cache.suggestionrequest.reason,livespell.cache.suggestionrequest.providerID);}else if(command==="WINSUGGEST"){Suggestions=arrResult[2].split(livespell.str.chr(1));for(i=0;i<livespell.cache.suglist.length;i++){newSuggestions=Suggestions[i].split(livespell.str.chr(2));livespell.cache.suggestions[vLang][livespell.cache.suglist[i]]=newSuggestions;for(j=0;j<newSuggestions.length;j++){livespell.cache.spell[vLang][newSuggestions[j]]=true;sug_each_word=newSuggestions[j].replace(/\-/g," ").split(" ")
for(k=0;k<sug_each_word.length;k++){livespell.cache.spell[vLang][sug_each_word[k]]=true;}}}
oSender.recieveWindowSpell()}else if(command==="WINSETUP"){Suggestions=arrResult[4].split(livespell.str.chr(1));t=arrResult[2].split("");r=arrResult[3].split(livespell.str.chr(1));for(i=0;i<t.length;i++){livespell.cache.reason[vLang][livespell.cache.wordlist[vSender][i]]=(r[i]);livespell.cache.spell[vLang][livespell.cache.wordlist[vSender][i]]=(t[i]==="T");if(!livespell.cache.spell[vLang][livespell.cache.wordlist[vSender][i]]&&i<Suggestions.length){newSuggestions=Suggestions[i].split(livespell.str.chr(2));livespell.cache.suggestions[vLang][livespell.cache.wordlist[vSender][i]]=newSuggestions;for(j=0;j<newSuggestions.length;j++){livespell.cache.spell[vLang][newSuggestions[j]]=true;sug_each_word=newSuggestions[j].replace(/\-/g," ").split(" ")
for(k=0;k<sug_each_word.length;k++){livespell.cache.spell[vLang][sug_each_word[k]]=true;}}}}
if(arrResult[5]&&arrResult[5].length){livespell.cache.langs=(arrResult[5].split(livespell.str.chr(2)));}
oSender.recieveWindowSetup()}else if(command==="LISTDICTS"){return(arrResult[2].split(livespell.str.chr(2)));}else if(command==="SAVEWORD"){var myMessage=(arrResult[2]);if(myMessage.indexOf("!!")>-1){alert(myMessage)}}
else if(command==="APIDYM"){var Suggestion=arrResult[3]
var Origional=arrResult[2]
oSender.onDidYouMean(Suggestion,Origional);}
else if(command==="APIVALIDATE"){var doSuggest=arrResult[4].length>0;Suggestions=arrResult[4].split(livespell.str.chr(1));t=arrResult[2].split("");r=arrResult[3].split(livespell.str.chr(1));var outInput=arrResult[4].split(livespell.str.chr(1));var isValid=arrResult[5]=="T"
var outSpellingOk=[];var outReason=[];for(i=0;i<outInput.length;i++){livespell.cache.reason[vLang][outInput[i]]=outReason[i]=(r[i]);livespell.cache.spell[vLang][outInput[i]]=outSpellingOk[i]=(t[i]==="T");}
if(binInstant){return isValid}
oSender.onValidateMech(isValid);}
else if(command==="APISPELL"||command==="APISPELLARRAY"){var doSuggest=arrResult[4].length>0;Suggestions=arrResult[4].split(livespell.str.chr(1));t=arrResult[2].split("");r=arrResult[3].split(livespell.str.chr(1));var outInput=arrResult[5].split(livespell.str.chr(1));var outSpellingOk=[];var outSuggestions=[];var outReason=[];for(i=0;i<outInput.length;i++){livespell.cache.reason[vLang][outInput[i]]=outReason[i]=(r[i]);livespell.cache.spell[vLang][outInput[i]]=outSpellingOk[i]=(t[i]==="T");if(doSuggest&&!livespell.cache.spell[vLang][outInput[i]]){newSuggestions=Suggestions[i].split(livespell.str.chr(2));livespell.cache.suggestions[vLang][outInput[i]]=outSuggestions[i]=newSuggestions;for(j=0;j<newSuggestions.length;j++){livespell.cache.spell[vLang][newSuggestions[j]]=true;sug_each_word=newSuggestions[j].replace(/\-/g," ").split(" ")
for(k=0;k<sug_each_word.length;k++){livespell.cache.spell[vLang][sug_each_word[k]]=true;}}}}
if(outInput.length>1||command==="APISPELLARRAY"){if(binInstant){if(livespell.ajax.needsInstantSuggestion){return outSuggestions}
return outSpellingOk}
oSender.onSpellCheck(outInput,outSpellingOk,outReason,outSuggestions);}else{if(binInstant){if(livespell.ajax.needsInstantSuggestion){return outSuggestions};return outSpellingOk[0]}
oSender.onSpellCheck(outInput[0],outSpellingOk[0],outReason[0],outSuggestions[0]);}}}},cache:{ignore:[],spell:[],reason:[],wordlist:[],suglist:[],langs:[],suggestions:[],suggestionrequest:null,checkTimeout:null,checkTimeoutUni:null,ajaxrequest:[]},test:{HTML:function(str){if(str.indexOf("<")>-1&&str.indexOf(">")>-1){return true;}
return false;},IE:function(){return(navigator.appVersion.indexOf("MSIE")>-1||navigator.userAgent.indexOf("Trident/5")>-1)},IE6:function(){return(navigator.appVersion.indexOf("MSIE 6.")>-1)},IE7:function(){return(navigator.appVersion.indexOf("MSIE 7.")>-1)},IE9:function(){if((navigator.userAgent.indexOf("MSIE 9.")>-1)&&!(arguments.caller)){return true;}
return false;},webkit:function(){return/webkit/.test(navigator.userAgent.toLowerCase())},Safari:function(){return/safari/.test(navigator.userAgent.toLowerCase())},FireFox:function(){return/firefox/.test(navigator.userAgent.toLowerCase())},MAC:function(){if(navigator.platform&&(navigator.platform.toUpperCase().indexOf("MAC")>-1)){return true;}
return false;},iPhone:function(){if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent.match(/iPod/i))||(navigator.userAgent.match(/iPad/i))){return true;}
return false;},isword:function(str){if(str=="length"){return false;}
return(/^([\w'`\x81-\xFF]+)$$/i).test(str);},ALLCAPS:function(str){return str===str.toUpperCase();},eos:function(str){return((/<br[ ]*[\/]?>/gi).test(str)||(/[!?.][\s\S]*$$/).test(str))&&!((/[.]{3}/).test(str));},browserNoAYT:function(){return!livespell.test.browserValid()},num:function(str){return(/[.0-9\*\#\@\/\%\$\&\+\=]/).test(str);},lcFirst:function(str){var f=str.substr(0,1);if((/[.0-9\*\#\@\/'`\%\$\&\+\=]/).test(f)){return false};return f==f.toLowerCase();},spelling:function(word,Lang){if(livespell.cache.ignore[word.toLowerCase()]&&livespell.cache.ignore[word.toLowerCase()]===true){return true};if(!livespell.cache.spell[Lang]){livespell.cache.spell[Lang]=[]}
var res=(livespell.cache.spell[Lang][word]);if(res&&typeof(res)=="function"){res=true};return res;},fullyCached:function(word,lang,makeSuggestions){var wordSpellCheck=this.spelling(word,lang);var result=wordSpellCheck===true||wordSpellCheck===false;if(wordSpellCheck!==true){result=result&&livespell.cache.reason[lang]&&typeof(livespell.cache.reason[lang][word])!=="undefined"
if(makeSuggestions){result=result&&livespell.cache.suggestions[lang]&&typeof(livespell.cache.suggestions[lang][word])!=="undefined"}}
return result;},browserValid:function(){return(document.designMode||document.contentEditable)&&!(document.opera)&&!/opera/.test(navigator.userAgent.toLowerCase())&&!livespell.test.iPhone();}},str:{getCase:function(word){if(word.toUpperCase()===word){return 2;}
if(livespell.str.toCaps(word)===word){return 1;}
return 0;},stripSpans:function(strinput){if(!strinput){return""}
strinput=strinput.replace((/(\<\/span[^>]*\>)/gi),"");return strinput.replace((/(\<span[^>]*\>)/gi),"");},stripNonSpaceTags:function(strinput,oinput){if(!strinput){return""}
if(strinput.indexOf('o:p')>-1||strinput.indexOf('<!--')>-1||strinput.indexOf('<![')>-1||strinput.indexOf('mso-style')>-1){strinput=livespell.str.convertToText(oinput)
strinput=livespell.str.stripComments(strinput)
if(livespell.test.IE()){strinput=strinput.replace(/\r/gi,"<br />")
strinput=strinput.replace(/\n/gi,"<br />")}}
if(strinput.indexOf('<!--')>-1||strinput.indexOf('<![')>-1){strinput=livespell.str.stripComments(strinput)}
if(strinput.indexOf('<?')>-1||strinput.indexOf('!xml')>-1||strinput.indexOf('xml')>-1){strinput=strinput.replace((/(\<\?[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/\?[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\?xml[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/\?[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\!xml[^>]*\>)/gi),"");}
if(strinput.indexOf('html')>-1){strinput=strinput.replace((/(\<html[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/html[^>]*\>)/gi),"");}
strinput=strinput.replace((/(\<\/b[^>]*\>)/gi),"");strinput=strinput.replace((/(\<a [^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/a [^>]*\>)/gi),"");strinput=strinput.replace((/(\<s [^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/s [^>]*\>)/gi),"");strinput=strinput.replace((/(\<span[^>]*\>)/gi),"");strinput=strinput.replace((/(\<\/span[^>]*\>)/gi),"");strinput=strinput.replace((/(\<p [^>]*\>)/gi),"<p>");strinput=strinput.replace((/(\<div[^>]*\>)/gi),"<div>");return strinput;},convertToText:function(me){if(me.textContent){me.textContent=me.textContent;}else if(me.innerText){me.innerText=me.innerText;}
return me.innerHTML;},stripTags:function(strinput){if(!strinput){return""}
strinput=livespell.str.stripComments(strinput)
return strinput.replace((/(<[\/]?[a-z][^>]*>)/gi),"");},stripComments:function(strinput){if(!strinput){return""}
strinput=strinput.replace((/<!--[\s\S.\n]*?-->/g),"");strinput=strinput.replace((/&lt;!--[\s\S.\n]*?--&gt;/g),"");return strinput;},HTMLEnc:function(s){s=(s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'));s=s.replace(/\n/g,"<br />");s=s.replace(/[ ][ ]/gi," &nbsp;");s=s.replace(/[ ][ ]/gi," &nbsp;");return s;},HTMLDec:function(s){s=this.encodeWhiteSpace(s);s=(s.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>'));return s;},HTMLDecAndStripFormatting:function(s){if(livespell.test.IE()){s=s.replace((/\n/gi),"");}else{s=s.replace((/\n/gi),"<BR>");s=s.replace((/\r/gi),"<BR>");}
s=s.replace((/<br[ ]*[\/]?>$/i),"");s=s.replace(/<div><br><\/div>/gi,"<BR>")
s=s.replace(/<div>/gi,"<BR>")
s=s.replace((/<\/p>/gi),"<BR>");s=s.replace((/<\/p>/gi),"<BR>");s=s.replace((/<br[ ]*[\/]?>$/i),"");s=s.replace((/<br[ ]*[\/]?>/gi),"\n");s=s.replace((/\x0A\x0D\x0A/gi),"\n");s=this.stripTags(s);s=s.replace(/\&nbsp;/gi," ");s=(s.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>'));return s;},spliceXHTML:function(str,pos,add){var arrStr=str.split('');var inHTML=false;var out="";var j=0;for(var i=0;i<arrStr.length;i++){var ch8r=arrStr[i];if(ch8r=="<"){inHTML=true}
out+=ch8r;if(j==pos&&!inHTML){out+=add}
if(!inHTML){j++;}
if(ch8r==">"&&inHTML){inHTML=false;}}
return out;},spliceSpans:function(str,pos,add){var arrStr=str.split('');var inHTML=false;var out="";var j=0;for(var i=0;i<arrStr.length;i++){var ch8r=arrStr[i];try{if(i<arrStr.length-5&&ch8r=="<"&&((arrStr[i+1].toLowerCase()=="s"&&arrStr[i+2].toLowerCase()=="p"&&arrStr[i+3].toLowerCase()=="a"&&arrStr[i+4].toLowerCase()=="n")||(arrStr[i+1].toLowerCase()=="/"&&arrStr[i+2].toLowerCase()=="s"&&arrStr[i+3].toLowerCase()=="p"&&arrStr[i+4].toLowerCase()=="a"&&arrStr[i+5].toLowerCase()=="n"))){inHTML=true}}catch(e){}
out+=ch8r;if(j==pos&&!inHTML){out+=add}
if(!inHTML){j++;}
if(ch8r==">"&&inHTML){inHTML=false;}}
return out;},toCase:function($$str,$$C,$$bcapitalize){switch($$C){case 2:$$str=$$str.toUpperCase();break;case 1:$$str=$$str.substr(0,1).toUpperCase()+$$str.substr(1);break;}
if($$bcapitalize){$$str=$$str.substr(0,1).toUpperCase()+$$str.substr(1);}
return $$str;},tokenize:function(strdoc){var pattern=(/((\&lt\;[\/\?]?[a-zA-Z][^\&]*\&gt;)|(\<[\/\?]?[a-z][^\>]*\>)|(\&lt\;[\/\?]?[a-z][.]*\&gt;)|(\&amp\;[a-zA-Z0-9]{1,6}\;)|(\&[a-zA-Z0-9]{1,6}\;)|([a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})|(<[\/\?]?\w+[^>]*>)|([a-zA-Z]{2,5}:\/\/[^\s]*)|(www\.[^\s]+[\.][a-zA-Z-]{2,4})|([^\s\<\>]+[\.][a-zA-Z-]{2,4}[\s\n])|([\w\x81-\xFF][\w'`\x81-\xFF]*[\w\x81-\xFF])|([\w]+))/gi);var arrdocobj=strdoc.replace(pattern,this.chr(1)+"$1"+this.chr(1)).replace(/\x01\x01/g,this.chr(1)).split(this.chr(1));var arrdoc=[];for(var i=0;i<arrdocobj.length;i++){arrdoc[i]=arrdocobj[i];}
if(arrdoc[0]===""){arrdoc.shift();}
if(arrdoc[arrdoc.length-1]===""){arrdoc.pop();}
return arrdoc;},chr:function(AsciiNum){return String.fromCharCode(AsciiNum);},toCaps:function(str){return str.substr(0,1).toUpperCase()+str.substr(1);},rtrim:function(s){return s.replace(/\s*$$/,"");},base64decode:function(input){var _keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=_keyStr.indexOf(input.charAt(i++));enc2=_keyStr.indexOf(input.charAt(i++));enc3=_keyStr.indexOf(input.charAt(i++));enc4=_keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=this.utf8_decode(output);return output;},utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}},userDict:{forget:function(){var current_cookie=livespell.cookie.get("SPELL_DICT_USER");if(!current_cookie.length){return;}
var arrPersonalWords=current_cookie.split(livespell.str.chr(1));for(var i=0;i<arrPersonalWords.length;i++){if(livespell.cache.ignore[arrPersonalWords[i].toLowerCase()]){delete livespell.cache.ignore[arrPersonalWords[i].toLowerCase()]}}},load:function(){var current_cookie=livespell.cookie.get("SPELL_DICT_USER");if(!current_cookie.length){return;}
var arrPersonalWords=current_cookie.split(livespell.str.chr(1));for(var i=0;i<arrPersonalWords.length;i++){livespell.cache.ignore[arrPersonalWords[i].toLowerCase()]=true;}},add:function(word){livespell.cache.ignore[word.toLowerCase()]=true;var current_cookie=livespell.cookie.get("SPELL_DICT_USER");if(current_cookie){current_cookie=livespell.str.chr(1)+current_cookie;}
current_cookie=word+current_cookie;livespell.cookie.setLocal("SPELL_DICT_USER",current_cookie);}},cookie:{erase:function(name,path,domain){this.setLocal(name,"");},get:function(check_name){var a_all_cookies=document.cookie.split(';');var a_temp_cookie='';var cookie_name='';var cookie_value='';var b_cookie_found=false;for(var i=0;i<a_all_cookies.length;i++){a_temp_cookie=a_all_cookies[i].split('=');cookie_name=a_temp_cookie[0].replace(/^\s+|\s+$$/g,'');if(cookie_name===check_name){b_cookie_found=true;if(a_temp_cookie.length>1){cookie_value=unescape(a_temp_cookie[1].replace(/^\s+|\s+$$/g,''));}
if(!cookie_value){return"";}
return cookie_value;}
a_temp_cookie=null;cookie_name='';}
if(!b_cookie_found){return"";}},set:function(name,value,expires,path,domain,secure){var today=new Date();today.setTime(today.getTime());if(expires){expires=expires*1000*60*60*24;}
var expires_date;if(value==""){expires_date=new Date(today.getTime());}else{expires_date=new Date(today.getTime()+(expires));}
var strcookie=name+"="+escape(value);if(expires){strcookie+=";expires="+expires_date.toGMTString();}
document.cookie=strcookie;},setLocal:function(name,value){this.set(name,value,999,"",document.domain,false);}},events:{add:function(obj,event,callback,capture){if(obj.addEventListener){try{obj.addEventListener(event,callback,false);}catch(e){}}else if(obj.attachEvent){obj.detachEvent("on"+event,callback);obj.attachEvent("on"+event,callback);}}},array:{safepush:function(arr,value){for(var i=0;i<arr.length;i++){if(arr[i]===value){return arr;}}
arr.push(value);return arr;},remove:function(array,subject){var r=new Array();for(var i=0,n=array.length;i<n;i++){if(!(array[i]==subject)){r[r.length]=array[i];}}
return r;}}};if(!Array.push){Array.prototype.push=function(){var n=this.length>>>0;for(var i=0;i<arguments.length;i++){this[n]=arguments[i];n=n+1>>>0;}
this.length=n;return n;};}
if(!Array.pop){Array.prototype.pop=function(){var n=this.length>>>0,value;if(n){value=this[--n];delete this[n];}
this.length=n;return value;};}
if(!Array.shift){Array.prototype.shift=function(){firstElement=this[0];this.reverse();this.length=Math.max(this.length-1,0);this.reverse();return firstElement;}}
E$=function(id){return document.getElementById(id);}
livespell.insitu={settings:{Delay:888},provider:function(id){return livespell.spellingProviders[id];},initiated:false,_FIELDSUFFIX:"___livespell_proxy",_CONTEXTMENU:"livespell___contextmenu",updateBase:function(id){var thevalue=livespell.str.HTMLDecAndStripFormatting(livespell.insitu.getProxy(id));var theproxy=livespell.insitu.proxyDOM(id);if(thevalue==" "){thevalue=""}
E$(id).value=thevalue;if(theproxy){if(typeof(theproxy.value)=="undefined"||theproxy.livespell_value_setter){theproxy.livespell_value_setter=true;theproxy.value=thevalue;}}},proxyDOM:function(id){return E$(id+this._FIELDSUFFIX);},tabber:"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",initer:"<span style='width:1px;height:1em;'> </span>",getProxy:function(id){var doc=livespell.insitu.proxyDOM(id).innerHTML;if(livespell.test.IE()&&!livespell.test.IE9()){while(doc.indexOf(this.tabber)>-1){doc=doc.replace(this.tabber,"\t")}
while(doc.indexOf(this.initer)>-1){doc=doc.replace(this.initer,"")}}
doc=livespell.str.stripNonSpaceTags(doc,livespell.insitu.proxyDOM(id))
return doc;},setProxy:function(id,val){if(livespell.test.IE()){val=val.replace(/\t/gi,this.tabber)
if(!livespell.test.IE7()){val=val.replace(/\x0A/g,"<br>");}
val=val.replace(/\x0E/g,"");}
if(val===""){val=this.initer}
if(livespell.insitu.proxyDOM(id).innerHTML===val){return}
livespell.insitu.proxyDOM(id).innerHTML=val;if(!(window.getComputedStyle)){livespell.insitu.proxyDOM(id).innerHTML=livespell.insitu.proxyDOM(id).innerHTML;}
livespell.context.validate(id)},hasChanged:function(id,providerId){var val=livespell.str.HTMLDecAndStripFormatting(this.getProxy(id));if(val===E$(id).value){return false;}
var x,TA,TB;x=val
TA=TB=0;for(i=0;i<x.length;i++){v=x.charCodeAt(i);if(v>32&&v<123){TA+=v}}
x=E$(id).value;for(i=0;i<x.length;i++){v=x.charCodeAt(i);if(v>32&&v<123){TB+=v}}
var res=(TA!=TB);return res;},safeUpdateProxy:function(id,providerId){if(!livespell.insitu.proxyDOM(id)){return false}
if(!livespell.insitu.proxyDOM(id).hasFocus){if(livespell.insitu.hasChanged(id,providerId)){this.setProxy(id,E$(id).value);this.checkNow(id,providerId)}}},updateProxy:function(id){this.setProxy(id,E$(id).value);},setProxyAndMaintainCaret:function(id,val){var e;if(livespell.insitu.proxyDOM(id).innerHTML===val){return}
var dmilit='\uFEFF';liveField=livespell.insitu.proxyDOM(id);try{if(window.getSelection){range=window.getSelection().getRangeAt(0);range.insertNode(tNode=document.createTextNode(dmilit));}else{range=document.selection.createRange();range.pasteHTML(dmilit);}}catch(e){}
text=liveField.innerHTML;text=livespell.str.stripSpans(text);pos=text.indexOf(dmilit)-1;caretNode=document.getElementById("livespell_cursor_hack__"+id)
if(caretNode&&caretNode.parentNode){caretNode.parentNode.removeChild(caretNode);}
caretNode=document.createElement("span");caretNode.id="livespell_cursor_hack__"+id;plainNode=document.createElement("span");plainNode.appendChild(caretNode);caretNodeHTML=plainNode.innerHTML;plainNode.removeChild(caretNode);delete plainNode;delete caretNode;if(window.getSelection){window.getSelection().removeAllRanges();}
text=livespell.str.spliceSpans(val,pos,caretNodeHTML);liveField.innerHTML=text;if(!(window.getComputedStyle)){liveField.innerHTML=liveField.innerHTML;}
if(livespell.test.IE9()){selection=window.getSelection();selection.removeAllRanges();caretNode=document.getElementById("livespell_cursor_hack__"+id);if(caretNode){range.selectNode(caretNode);range.deleteContents();selection.addRange(range)}}
else if(window.getSelection){selection=window.getSelection();selection.removeAllRanges();range=document.createRange();caretNode=document.getElementById("livespell_cursor_hack__"+id);if(caretNode){range.selectNode(caretNode);selection.addRange(range);range.collapse(false);liveField.focus();caretNode.parentNode.removeChild(caretNode);}}else{range=document.selection.createRange();caretNode=document.getElementById("livespell_cursor_hack__"+id)
try{range.moveToElementText(caretNode);range.select();}catch(e){}
try{caretNode.parentNode.removeChild(caretNode);}catch(e){}}
livespell.context.validate(id)},findLiveChildrenInDOMElement:function(element){var uid;var LiveOffspring=[];if(element.id){uid=element.id
if(document.getElementById(uid+"_designEditor")){var oFTA=(document.getElementById(uid+"_designEditor"));if(oFTA.nodeName.toLowerCase()=="iframe"){LiveOffspring.push(oFTA.id)
return LiveOffspring;}}}else{uid="xx"}
InnerFrames=element.getElementsByTagName("iframe");for(var i=0;i<InnerFrames.length;i++){var ittInnerFrame=InnerFrames[i];if(livespell.getIframeDocument(ittInnerFrame)){if(!ittInnerFrame.id){ittInnerFrame.id="livespell__IframeChildof_"+uid+"_"+i}
LiveOffspring.push(ittInnerFrame.id)}}
return LiveOffspring;},checkNow:function(fieldList,providerID){var txt='';if(window.getSelection){txt=window.getSelection();}
else if(document.getSelection){txt=document.getSelection();}
else if(document.selection){try{txt=document.selection.createRange().text;}catch(e){}}
if(txt!=""){return;}
if(!livespell.cache.spell[this.provider(providerID).Language]){livespell.cache.spell[this.provider(providerID).Language]=[];livespell.cache.reason[this.provider(providerID).Language]=[];}
livespell.cache.wordlist[providerID]=[];if(!fieldList.join){fieldList=fieldList.split(",")}
var mem_words=[];for(var f=0;f<fieldList.length;f++){var id=fieldList[f];if(E$(id).nodeName.toLowerCase()=="textarea"){livespell.insitu.createProxy(id);var tokens_isword=[];var strDoc=this.getProxy(id);var tokens=livespell.str.tokenize(strDoc);var lng=this.provider(providerID).Language
var memsize=0;var memmax=livespell.maxURI-128;for(var i=0;i<tokens.length&&memsize<memmax;i++){if(mem_words["_"+tokens[i]]!==true&&livespell.test.isword(tokens[i])===true){var cachelookup=livespell.cache.spell[lng][tokens[i]];if(cachelookup!==true&&cachelookup!==false){mem_words["_"+tokens[i]]=true;memsize+=tokens[i].toString().length;livespell.cache.wordlist[providerID]=livespell.array.safepush(livespell.cache.wordlist[providerID],tokens[i].toString());}}}}}
if(!livespell.cache.wordlist[providerID].length){return this.renderProxy(id,providerID);}
delete mem_words;livespell.ajax.send("CTXSPELL",livespell.cache.wordlist[providerID].join(livespell.str.chr(1)),this.provider(providerID).Language,"",providerID);},resetProxy:function(id){this.createProxy(id);var n=document.getElementById(id+this._FIELDSUFFIX);if(!n){return};try{livespell.insitu.cloneClientEvents(document.getElementById(id),n)}catch(e){}
livespell.events.add(n,"mouseup",function(){livespell.insitu.updateBase(id);},false);livespell.events.add(n,"keyup",function(){livespell.insitu.updateBase(id);},false);livespell.events.add(n,"keydown",livespell.insitu.keyhandler,false);livespell.events.add(n,"keypress",livespell.insitu.keypresshandler,true);livespell.events.add(n,"paste",livespell.insitu.pastehandler,false);livespell.events.add(n,"blur",livespell.insitu.blurhandler,false);n.unChanged=true;var t=document.getElementById(id);t.focus=function(){try{n.focus();}catch(e){}}},destroyProxy:function(id){if(!document.getElementById(id+this._FIELDSUFFIX)){return}
o=livespell.insitu.proxyDOM(id);n=document.getElementById(id);o.parentNode.removeChild(o);n.style.display=livespell.inlineblock();n.style.visibility="visible";livespell.array.remove(livespell.liveProxys,id)
n.hasLiveSpellProxy=false;},createProxy:function(id){if(!livespell.test.browserValid()){return}
var e=document.getElementById(id);if(!e){return}
if(e.disabled){return}
if(e.nodeName.toLowerCase()!=="textarea"){return};livespell.insitu.init();if(document.getElementById(id+this._FIELDSUFFIX)){return livespell.insitu.proxyDOM(id);};var attr,stylesToCopy,i,styleval;var n=document.createElement("div");n.setAttribute("id",id+this._FIELDSUFFIX);var t=E$(id);try{if(t.getAttribute('maxlength')){n.maxLength=t.getAttribute('maxlength');}
else if(t.maxLength&&t.maxLength>0){n.maxLength=t.maxLength;}}catch(e){}
try{n.setAttribute("class","livespell_textarea "+t.className);}catch(e){}
try{n.setAttribute("style",t.getAttribute("style"));}catch(e){}
n.style.display="none";stylesToCopy=["font-size","line-height","font-family","width","height","padding-left","padding-top","margin-left","margin-top","padding-right","padding-bottom","margin-right","margin-bottom","font-weight","font-style","color","text-transform","text-decoration","line-height","text-align","vertical-align","direction","background-color","background-image","background-repeat","background-position","background-attachment"];stylesToSet=["fontSize","lineHeight","fontFamily","width","height","paddingLeft","paddingTop","marginLeft","marginTop","paddingRight","paddingBottom","marginRight","marginBottom","fontWeight","fontStyle","color","textTransform","textDecoration","lineHeight","textAlign","verticalAlign","direction","backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","backgroundAttachment"];if(window.getComputedStyle){var compStyle=window.getComputedStyle(t,null);for(i=0;i<stylesToCopy.length;i++){attr=stylesToCopy[i];attr2=stylesToSet[i];styleval=compStyle.getPropertyValue(attr);if(attr=="height"&&styleval.indexOf("px")){styleval=(Number(styleval.split("px")[0])+1)+"px";}
if(attr=="width"&&styleval.indexOf("px")){if(livespell.test.IE9()){styleval=(Number(styleval.split("px")[0])+6)+"px";}else{styleval=(Number(styleval.split("px")[0])-1)+"px";}}
if(attr=="width"){if(t.attributes["width"]&&t.attributes["width"].value.indexOf('%')>-1){styleval=t.attributes["width"].value;}
if(t.style.width&&t.style.width.indexOf('%')>-1){styleval=t.style.width;}}
if(attr=="height"){if(t.attributes["height"]&&t.attributes["height"].value.indexOf('%')>-1){styleval=t.attributes["height"].value;}
if(t.style.height&&t.style.height.indexOf('%')>-1){styleval=t.style.height;}}
if(attr=="margin-left"&&styleval.indexOf("px")){styleval=(Number(styleval.split("px")[0])+1)+"px";}
if(styleval){n.style[attr2]=styleval;}}}else if(t.currentStyle){n.style.overflowY="scroll";for(i=0;i<stylesToCopy.length;i++){attr=stylesToSet[i];styleval=t.currentStyle[attr];if(styleval){try{if(attr=="width"){try{if(t.offsetWidth){n.style.width=t.offsetWidth;}}catch(e){}
if(t.attributes["width"]&&t.attributes["width"].value.indexOf('%')>-1){styleval=t.attributes["width"].value;}
if(t.style.width&&t.style.width.indexOf('%')>-1){styleval=t.style.width;}}
if(attr=="height"){try{if(t.offsetHeight){n.style.height=t.offsetHeight;}}catch(e){}
if(t.attributes["height"]&&t.attributes["height"].value.indexOf('%')>-1){styleval=t.attributes["height"].value;}
if(t.style.height&&t.style.height.indexOf('%')>-1){styleval=t.style.height;}}
styleval=styleval+"";if(!styleval.toUpperCase){}else if(styleval.toUpperCase()!="AUTO"&&styleval.toUpperCase()!="INHERIT"){n.style[attr]=styleval;}}catch(e){}}}
stylesToCopy=["cursor","font-size","line-height","font-family","font-weight","font-style","color","text-transform","text-decoration","line-height","text-align","vertical-align","direction"];stylesToSet=["cursor","fontSize","lineHeight","fontFamily","fontWeight","fontStyle","color","textTransform","textDecoration","lineHeight","textAlign","verticalAlign","direction"];mycss="";csstext="#"+n.id+" p , #+"+n.id+" span {";for(i=0;i<stylesToCopy.length;i++){try{csstext+=stylesToCopy[i]+" : "+t.currentStyle[stylesToSet[i]]+"; ";}catch(e){}}
csstext+="margin: 0; ";csstext+="padding: 0; ";csstext+="border: 0; ";csstext+="} ";this.addCss(csstext);}
t.style.visibility="hidden";n.isLiveSpellProxy=true;n.className="livespell_textarea";n.setAttribute("hasFocus",false)
n.style.display=livespell.inlineblock()
if(livespell.test.IE()){n.style.cursor="text";}
t.style.display="none";t.style.visibility="hidden";try{n.tabIndex=t.tabIndex;n.setAttribute("tabIndex",t.getAttribute("tabIndex"))}catch(e){}
t.hasLiveSpellProxy=true;if(!t.readOnly){n.contentEditable='true';n.designMode='on';}
if(!livespell.test.browserNoAYT()){try{document.body.setAttribute=("spellCheck","false");}catch(e){}
try{document.body.spellcheck=false}catch(e){}}
if(t.style.height=="auto"){n.style.height="auto";}
n.spellcheck=true;livespell.insitu.cloneClientEvents(t,n);if(t.title){n.title=t.title;}
if(n.maxLength){livespell.events.add(n,"keyup",function(){livespell.insitu.maxCharsHandler;},false);livespell.events.add(n,"keypress",livespell.insitu.maxCharsHandler,true);livespell.events.add(n,"keydown",livespell.insitu.maxCharsHandler,false);livespell.events.add(n,"paste",livespell.insitu.maxCharsHandler,false);}
livespell.events.add(n,"mouseup",function(){livespell.insitu.updateBase(id);},false);livespell.events.add(n,"keyup",function(){livespell.insitu.updateBase(id);},false);livespell.events.add(n,"keypress",livespell.insitu.keypresshandler,true);livespell.events.add(n,"keydown",livespell.insitu.keyhandler,false);livespell.events.add(n,"paste",livespell.insitu.pastehandler,false);livespell.events.add(n,"blur",livespell.insitu.blurhandler,false);n.unChanged=true;if(livespell.test.IE()){n.onpaste=function(){try{var value=window.clipboardData.getData("Text",value);window.clipboardData.setData("Text",value);}catch(e){}}}
t.setValue=function(val){t.value=val;try{livespell.insitu.updateProxy(t.id,val);}catch(e){}}
t.getValue=function(){try{livespell.insitu.updateBase(t.id);}catch(e){}
return t.value;}
n.setValue=function(val){t.value=val;try{livespell.insitu.setProxyAndMaintainCaret(t.id,val);}catch(e){}}
n.getValue=function(){try{livespell.insitu.setProxyAndMaintainCaret(t.id);}catch(e){}
return t.value;}
t.focus=function(){try{n.focus();}catch(e){}}
var trueparent=t.parentNode
var truesib=t;if(livespell.test.IE()){while(trueparent.nodeName=="P"||trueparent.nodeName=="H1"||trueparent.nodeName=="H2"||trueparent.nodeName=="H3"||trueparent.nodeName=="H4"||trueparent.nodeName=="H5"||trueparent.nodeName=="H6"){truesib=trueparent;trueparent=trueparent.parentNode}}
if(trueparent.hasChildNodes){trueparent.insertBefore(n,truesib)}else{trueparent.appendChild(n)}
var o=livespell.insitu.proxyDOM(id);o.hasFocus=false;livespell.events.add(o,"focus",function(){o.hasFocus=true},false);livespell.events.add(o,"blur",function(){o.hasFocus=false},false);livespell.liveProxys=livespell.array.safepush(livespell.liveProxys,id)
this.setProxy(id,livespell.str.HTMLEnc(E$(id).value));return o;},cloneClientEvents:function(from,to){var clientevents=["onblur","onfocus","onscroll","onclick","ondblclick","ondragstart","onkeydown","onkeypress","onkeyup","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup"]
for(var k=0;k<clientevents.length;k++){if(from[clientevents[k]]){to[clientevents[k]]=from[clientevents[k]];}}},addCss:function(cssCode){var styleElement=document.createElement("style");styleElement.type="text/css";if(styleElement.styleSheet){styleElement.styleSheet.cssText=cssCode;}else{styleElement.appendChild(document.createTextNode(cssCode));}
document.getElementsByTagName("head")[0].appendChild(styleElement);},renderProxy:function(fieldList,providerID){if(!fieldList){return}
if(!fieldList.join){fieldList=fieldList.split(",")}
for(var j=0;j<fieldList.length;j++){var id=fieldList[j];if(!livespell.insitu.proxyDOM(id)){}else{var strDoc=this.getProxy(id);var token;var tokens=livespell.str.tokenize(strDoc);var tokens_startsentence=[];var tokens_isword=[];var show_error;for(var i=0;i<tokens.length;i++){token=tokens[i];tokens_isword[i]=livespell.test.isword(token);tokens_startsentence[i]=(tokens_isword&&(i===0||(livespell.test.eos(tokens[i-1]))));show_error=false;var reason=livespell.cache.reason[this.provider(providerID).Language][token]?livespell.cache.reason[this.provider(providerID).Language][token]:"";if(tokens_isword[i]){if(typeof(livespell.test.spelling(token,this.provider(providerID).Language))=="undefined"){var fxs=this.provider(providerID);setTimeout(function(){fxs.CheckInSitu()},1+Math.round(Math.random()*10));return;}
if(livespell.test.spelling(token,this.provider(providerID).Language)!=true){show_error=true;}
if(show_error){if(this.provider(providerID).IgnoreAllCaps&&token===token.toUpperCase()&&reason!=="B"&&reason!=="E"){show_error=false;}
if(this.provider(providerID).IgnoreNumeric&&(livespell.test.num(token))&&reason!=="B"&&reason!=="E"){show_error=false;}
if(!this.provider(providerID).CaseSensitive&&reason=="C"){show_error=false;}}
if(!tokens_startsentence[i]&&i>1&&token.toUpperCase()===tokens[i-2].toUpperCase()&&token.toUpperCase()!=token.toLowerCase()){show_error=true;reason="R";}
if(this.provider(providerID).CaseSensitive&&this.provider(providerID).CheckGrammar&&tokens_startsentence[i]&&livespell.test.lcFirst(token)){if(strDoc.indexOf(".")>0||strDoc.indexOf("!")>0||strDoc.indexOf("?")>0||strDoc.length>50){show_error=true;reason="G";}}}
if(show_error){var wiggleClass="livespell_redwiggle";if(reason==="R"||reason==="G"){wiggleClass="livespell_greenwiggle";}
tokens[i]="<span class='"+wiggleClass+"' oncontextmenu ='return false' onmousedown='return livespell.insitu.disableclick(event,\""+providerID+"\");' onmouseup=';return livespell.insitu.typoclick(event,\""+id+"\",this,\""+reason+"\",\""+providerID+"\")' >"+(token)+"</span>";}else{tokens[i]=(token);}}
text=tokens.join('');if(livespell.insitu.proxyDOM(id).hasFocus||livespell.context.isOpen()){this.setProxyAndMaintainCaret(id,text);}else{this.setProxy(id,text)}}}},init:function(){if(livespell.insitu.initiated)return;livespell.insitu.initiated=true;livespell.context.renderShell()
livespell.context.renderCss();livespell.events.add(window.document,"mousedown",livespell.context.hideIfNotinUse,false);livespell.events.add(window.document,"keydown",livespell.context.hide,false);livespell.userDict.load();livespell.context.hide();},allTextAreas:function(){var AF=[];oTAreas=document.getElementsByTagName("textarea")
for(var i=0;i<oTAreas.length;i++){var Area=oTAreas[i];var ok=true;if(Area.style.display=="none"){ok=false;}
if(Area.style.visibility=="hidden"){ok=false;}
if(!ok&&Area.hasLiveSpellProxy){ok=true;}
if(Area.disabled){ok=false;}
if(ok){if(!Area.id){Area.id="livespell__textarea__"+i}
AF.push(Area.id);}}
return AF},allTextInputs:function(){var AF=[];oTInputs=document.getElementsByTagName("input")
for(var i=0;i<oTInputs.length;i++){var Area=oTInputs[i];if(Area.hasSpellProxy==true){AF.push(Area.id)}
else if(Area.type.toLowerCase()==="text"&&!Area.disabled&&Area.style.display!=="none"&&Area.style.visibility!=="hidden"){if(!Area.id){Area.id="livespell__input__"+i}
AF.push(Area.id);Area.hasSpellProxy=true}}
return AF},allEditors:function(){var AF=[];oIFrmaes=document.getElementsByTagName("iframe");for(var i=0;i<oIFrmaes.length;i++){var myFrame=oIFrmaes[i];oDoc=livespell.getIframeDocument(myFrame);if(oDoc){if(!myFrame.id){myFrame.id="livespell_rich_editor_id_"+i}
AF.push(myFrame.id);}}
var NE=livespell.getElementsByClass("nicEdit-main");for(i=0;i<NE.length;i++){var oFieldByClass=NE[i];if(!oFieldByClass.id){oFieldByClass.id="livespell_NICEDIT_id_"+i}
AF.push(oFieldByClass.id);}
return AF;},blurhandler:function(e){var me=e.srcElement?e.srcElement:this;if(!me.unChanged){me.unChanged=true;var base_field_id=me.id.split(livespell.insitu._FIELDSUFFIX)[0];var oBase=E$(base_field_id);if(oBase["onchange"]){var event="change";var element=oBase;try{if(document.createEventObject){var evt=document.createEventObject();element.fireEvent('on'+event,evt)}
else{var evt=document.createEvent("HTMLEvents");evt.initEvent(event,true,true);element.dispatchEvent(evt);}}catch(e){}}}},pastehandler:function(e){var me=e.srcElement?e.srcElement:this;if(me.autocheck){me.unChanged=false;var base_field_id=me.id.split(livespell.insitu._FIELDSUFFIX)[0];var ProviderId=Number(me.autocheckProvider);if(!livespell.test.IE()||me.innerHTML.indexOf("<!-")>-1){var a=me.innerHTML
a=a.replace(/(<br>)/ig,"1Br88y8h")
a=a.replace(/(<br\/>)/ig,"1Br88y8h")
a=a.replace(/(<([^>]+)>)/ig,"")
a=a.replace(/1Br88y8h/g,"<br>")
livespell.insitu.setProxyAndMaintainCaret(base_field_id,a);}
setTimeout(function(){livespell.insitu.updateBase(base_field_id)},1)
setTimeout(function(){livespell.insitu.updateBase(base_field_id);livespell.insitu.checkNow(base_field_id,ProviderId)},10)}},keypresshandler:function(e){try{if(!e){e=window.event;}}catch(e){}
e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation();}},maxCharsHandlerTimeOutId:null,maxCharsHandler:function(event){var obj=event.srcElement?event.srcElement:this;var maxChars=obj.maxLength;if(!maxChars){return true;}
var o=obj;clearTimeout(livespell.insitu.maxCharsHandlerTimeOutId);livespell.insitu.maxCharsHandlerTimeOutId=setTimeout(function(){livespell.insitu.strictMaxChars(o)},33)
var numChars=obj.value.length;if(obj.value.length>=maxChars){try{if(!event){event=window.event;}}catch(e){}
var ch8r=event.keyCode;if(ch8r==8||((ch8r>15&&ch8r<32)||(ch8r>32&&ch8r<41))&&(ch8r!=127)){}else{try{if(!event){event=window.event;}}catch(e){}
if(event.preventDefault){event.preventDefault();}
event.returnValue=false;return false}}
event.returnValue=true;return true},strictMaxChars:function(obj){if(obj.value.length>obj.maxLength){obj.setValue(obj.value.substring(0,obj.maxLength))}},keyhandler:function(event){var returnfalse=false;try{if(!event){event=window.event;}}catch(e){}
var ch8r=event.keyCode;if(((ch8r>15&&ch8r<32)||(ch8r>32&&ch8r<41))&&(ch8r!=127)){return;}
livespell.insitu.ignoreAtCursor();var me=event.srcElement?event.srcElement:this;me.unChanged=false;me.hasFocus=true;if(me.autocheck){var base_field_id=me.id.split(livespell.insitu._FIELDSUFFIX)[0];livespell.context.validate(base_field_id)
var ProviderId=Number(me.autocheckProvider);var oProvider=livespell.spellingProviders[ProviderId];clearTimeout(livespell.cache.checkTimeout)
livespell.cache.checkTimeout=setTimeout(function(){livespell.insitu.checkNow(base_field_id,ProviderId)},oProvider.Delay)}
if(returnfalse){return false};},ignoreAtCursor:function(){var target
try{if(window.getSelection){target=window.getSelection().focusNode.parentNode;}else if(document.selection){target=document.selection.createRange().parentElement();}}catch(e){}
if(target&&target.nodeName.toUpperCase()==="SPAN"){target.className="";target.onmousedown=null;}},disableclick:function(event,providerID){var prov=livespell.spellingProviders[providerID];if(prov&&prov.RightClickOnly&&event.button!=2){return true;}
if(event.preventDefault){event.preventDefault();}
else{event.returnValue=false;}
return false},MacCommandKeyDown:false,typoclick:function(event,oparent,ospan,reason,providerID){var prov=livespell.spellingProviders[providerID];if(prov&&prov.RightClickOnly&&(event.button!=2)){return true;}
if(event.preventDefault){event.preventDefault();}
else{event.returnValue=false;}
livespell.context.caller=ospan;livespell.context.callerParent=oparent;var parent;var p_walker=ospan;while(!parent){if(p_walker.nodeName.toUpperCase()==="DIV"){parent=p_walker;}else{p_walker=p_walker.parentNode;}}
var id=parent.id.split(this._FIELDSUFFIX)[0];if(!id.length){return false;}
var token=livespell.str.stripTags(ospan.innerHTML);var posx=0;var posy=0;if(!event){event=window.event;}
if(event.pageX||event.pageY){posx=event.pageX;posy=event.pageY;}else if(event.clientX||event.clientY){posx=event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;posy=event.clientY+document.body.scrollTop+document.documentElement.scrollTop;}
posx+=2;posy+=2;if(livespell.test.IE()){posx+=3;posy+=3;}
livespell.context.DOM().className="livespell_contextmenu"
livespell.context.DOM().style.position="absolute";livespell.context.DOM().style.top=posy+"px";livespell.context.DOM().style.left=posx+"px";livespell.context.providerID=providerID;livespell.context.suggest(id,token,reason,ospan);return false;}}
livespell.context={mouseoverme:false,caller:null,callerParent:null,keysTrapped:false,providerID:null,mackeydown:function(event){try{if(!event){event=window.event;}}catch(e){}
if(event.keyCode&&event.keyCode==224){livespell.insitu.MacCommandKeyDown=true;}
return false;},mackeyup:function(){if(livespell.context.MacCommandKeyDown){livespell.insitu.MacCommandKeyDown=false};return false;},validate:function(base_field_id){var oF=document.getElementById(base_field_id);if(!oF||!oF.MessageHolder){return};var proxy=livespell.insitu.proxyDOM(base_field_id);if(!proxy){return}
var wiggles=proxy.getElementsByTagName('SPAN');var isValid=true;if(proxy.innerHTML.indexOf("livespell_")>-1)
for(var i=0;i<wiggles.length;i++){var wig=wiggles[i];if(wig&&wig.className&&(wig.className=="livespell_redwiggle"||wig.className=="livespell_greenwiggle")){if(wig.innerHTML.length>0){isValid=false;}}}
$Spelling.LiveValidateMech4Proxy(oF,isValid)},currentWord:function(){return livespell.context.caller.innerHTML;},provider:function(){return livespell.spellingProviders[this.providerID]},isOpen:function(){if(E$(livespell.insitu._CONTEXTMENU)&&E$(livespell.insitu._CONTEXTMENU).style.display!="none"){return true}
return false;},DOM:function(){return E$(livespell.insitu._CONTEXTMENU);},langInSelection:false,hideIfNotinUse:function(){if(livespell.context.DOM().style.display!="none"){if(!livespell.context.mouseoverme&!livespell.context.langInSelection){livespell.context.hide();}}},hide:function(){if(livespell.context.DOM().style.display!="none"){livespell.context.DOM().style.display="none"}},change:function(word){this.provider().onChangeWord(this.currentWord(),word);var b=this.base_field_id();try{basefield.insertBefore(document.createTextNode(word),livespell.context.caller);basefield.removeChild(livespell.context.caller);}catch(e){livespell.context.caller.innerHTML=word;livespell.context.caller.onMouseUp=function(){};livespell.context.caller.onMouseDown=function(){};livespell.context.caller.className=" ";}
this.hide();livespell.context.validate(b)
livespell.insitu.updateBase(b);try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}},ignore:function(){this.provider().onIgnore(this.currentWord());var p=livespell.context.caller;var b=this.base_field_id();var basefield=livespell.context.caller.parentNode?livespell.context.caller.parentNode:document.getElementById(b)+livespell.insitu._FIELDSUFFIX;livespell.cache.ignore[this.currentWord().toLowerCase()]=true;try{basefield.insertBefore(document.createTextNode(this.currentWord()),livespell.context.caller);basefield.removeChild(livespell.context.caller);}catch(e){livespell.context.caller.onMouseUp=function(){};livespell.context.caller.onMouseDown=function(){};livespell.context.caller.className=" ";}
livespell.context.validate(b)
this.hide();try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}},del:function(){var b=this.base_field_id();var p=livespell.context.caller;var pp=p.parentNode;pp.removeChild(p);this.hide();livespell.insitu.updateBase(b);livespell.context.validate(b)
try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}},ignoreAll:function(){var b=this.base_field_id();this.provider().onIgnoreAll(this.currentWord());livespell.cache.ignore[this.currentWord().toLowerCase()]=true;try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}
livespell.insitu.renderProxy(this.base_field_id(),this.providerID);try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}
livespell.context.validate(b)
this.hide();},addPersonal:function(){var b=this.base_field_id();if(this.provider().AddWordsToDictionary=="SERVER"){livespell.ajax.send("SAVEWORD",this.currentWord(),0,0,this.providerID);}
this.provider().onLearnWord(this.currentWord());word=this.currentWord().toLowerCase();livespell.userDict.add(word)
try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}
livespell.insitu.renderProxy(this.base_field_id(),this.providerID);try{E$(b+livespell.insitu._FIELDSUFFIX).focus()}catch(e){}
livespell.context.validate(b)
this.hide();},changeLanguage:function(strLang){if(this.provider().Language==strLang){return}
if(window.getSelection){var sel=window.getSelection()
try{sel.collapseToEnd();}catch(e){}}
this.provider().Language=strLang;this.provider().onChangeLanguage(strLang);var tProv=this.provider();var fn=function(){tProv.CheckInSitu();}
setTimeout(fn,100)
this.hide();},showMultiLang:function(){E$('livepell__multilanguage').style.display="block";var livelangs=livespell.insitu.provider(this.providerID).Language.split(",");for(var i=0;i<livespell.cache.langs.length;i++){E$('livepell__multilanguage_'+livespell.cache.langs[i]).checked=false;for(var j=0;j<livelangs.length;j++){if((livespell.cache.langs[i]===livelangs[j].replace(/^\s\s*/,'').replace(/\s\s*$/,''))){E$('livepell__multilanguage_'+livespell.cache.langs[i]).checked=true;}}}},hideMultiLang:function(){E$('livepell__multilanguage').style.display="none";},base_field_id:function(){if(livespell.context.callerParent){return livespell.context.callerParent.split(livespell.insitu._FIELDSUFFIX)[0]}
var parent=null;var p_walker=livespell.context.caller;while(!parent){if(p_walker.nodeName&&p_walker.nodeName.toUpperCase()==="DIV"){parent=p_walker;}else{p_walker=p_walker.parentNode;}}
return parent.id.split(livespell.insitu._FIELDSUFFIX)[0];},showMenu:function(id,word,reason,providerID){this.providerID=providerID;this.DOM().style.display="block";var j;var action="REPLACE";var suggs=livespell.cache.suggestions[livespell.spellingProviders[providerID].Language][word];switch(reason){case"B":suggs=[];suggs[0]=livespell.lang.fetch(providerID,"MENU_DELETEBANNED");action="DELETE";break;case"R":suggs=[];suggs[0]=livespell.lang.fetch(providerID,"MENU_DELETEREPEATED");action="DELETE";break;case"G":if(!suggs.length){suggs[0]=word;}
for(j=0;j<suggs.length;j++){suggs[j]=livespell.str.toCaps(suggs[j]);}
break;default:var oCase=livespell.str.getCase(word);if(oCase===2){for(j=0;j<suggs.length;j++){suggs[j]=suggs[j].toUpperCase();}}else if(oCase===1){for(j=0;j<suggs.length;j++){suggs[j]=livespell.str.toCaps(suggs[j]);}}}
if(!suggs.length||suggs[0].length===0){suggs=[];suggs[0]=livespell.lang.fetch(providerID,"MENU_NOSUGGESTIONS");action="IGNORE";}
if(reason==="X"){action="REG"
if(livespell.spellingProviders[providerID].isUniPacked){suggs=new Array("JavaScriptSpellCheck","**Trial**","Please register online","javascriptspellcheck.com");}}
var dsuggs=[];for(j=0;j<suggs.length;j++){dsuggs=livespell.array.safepush(dsuggs,suggs[j]);}
this.render(dsuggs,action,providerID);},setMultiLang:function(){var langboxes=document.getElementById("livepell__multilanguage").getElementsByTagName("input");var checked=[];for(var i=0;i<langboxes.length;i++){var box=langboxes[i];if(box.checked){checked.push(box.value);}}
if(!checked.length){return;}
this.provider().Language=(checked.join(","));this.provider().onChangeLanguage(this.provider().Language);livespell.insitu.checkNow(this.base_field_id(),this.providerID);this.hide();},renderShell:function(){if(E$(livespell.context.DOM())){return;}
var n=document.createElement("div");n.setAttribute("id",livespell.insitu._CONTEXTMENU);document.body.appendChild(n);n.onmouseover=function(){livespell.context.mouseoverme=true;};n.onmouseout=function(){livespell.context.mouseoverme=false;};if(!this.keysTrapped&&livespell.test.IE()){livespell.events.add(document.body,"keydown",this.menukey,false)
this.keysTrapped=true;}},menukey:function(){if(livespell.context.isOpen()){if(event.preventDefault)
{event.preventDefault();}
else
{event.returnValue=false;}
return false;}
return true;},renderCss:function(strTheme){var idname="__livespell__stylesheet";strTheme=strTheme?strTheme:"classic";var fileref=E$(idname)
if(fileref){fileref.setAttribute("href",livespell.installPath+"themes/"+strTheme+"/context-menu.css");}else{fileref=document.createElement("link");fileref.setAttribute("id",idname);fileref.id=idname;fileref.setAttribute("rel","stylesheet");fileref.setAttribute("type","text/css");fileref.setAttribute("href",livespell.installPath+"themes/"+strTheme+"/context-menu.css");document.getElementsByTagName("head")[0].appendChild(fileref);if(livespell.test.IE()){fileref=document.createElement("link");fileref.setAttribute("id",idname);fileref.id=idname;fileref.setAttribute("rel","stylesheet");fileref.setAttribute("type","text/css");fileref.setAttribute("href",livespell.installPath+"themes/"+strTheme+"/ieonly.css");document.getElementsByTagName("head")[0].appendChild(fileref);}}},buttonIsHidden:function(strId,providerID){var oProvider=livespell.spellingProviders[providerID];var arrHideButtons=(oProvider.HiddenButtons.split(","))
for(var i=0;i<arrHideButtons.length;i++){strBtn=arrHideButtons[i];if(strBtn.toLowerCase()===strId.toLowerCase()){return true}}
return false;},render:function(suggs,action,providerID){var menuHTML='<div id="context__back"><div id="context__front">';menuHTML+='<ul>';var i;for(var j=0;j<suggs.length;j++){switch(action){case"REPLACE":menuHTML+='<li class="ls_sug"><a href="#" onclick="livespell.context.change(this.innerHTML); return false" >'+suggs[j]+'</a></li>';break;case"IGNORE":menuHTML+='<li class="ls_sug"><a href="#" onclick="livespell.context.ignore(); ; return false" >'+suggs[j]+'</a></li>';break;case"REG":if(livespell.spellingProviders[providerID].isUniPacked){menuHTML+='<li class="ls_sug" ><a href="#" onclick="window.open(\'http://www.javascriptspellcheck.com/Purchase\');return false;" >'+suggs[j]+'</a></li>';}
else if(livespell.spellingProviders[providerID].ServerModel.toLowerCase()=="asp.net"||livespell.spellingProviders[providerID].ServerModel.toLowerCase()=="aspx"){menuHTML+='<li class="ls_sug" ><a href="#" onclick="window.open(\'http://www.aspnetspell.com/Purchase\');return false;" >'+"ASPNetSpell Trial"+'</a></li>';suggs=[""];}
else if(livespell.spellingProviders[providerID].ServerModel.toLowerCase()=="asp"){menuHTML+='<li class="ls_sug" ><a href="#" onclick="window.open(\'http://www.aspspellcheck.com/purchase\');return false;" >'+"ASPSpellCheck Trial"+'</a></li>';suggs=[""];}
else{menuHTML+='<li class="ls_sug" ><a href="#" onclick="window.open(\'http://www.phpspellcheck.com/Purchase\');return false;" >'+"PHPSpellCheck Trial"+'</a></li>';suggs=[""];}
break;case"DELETE":menuHTML+='<li class="ls_sug" ><a href="#" onclick="livespell.context.del(); return false" >'+suggs[j]+'</a></li>';break;}}
menuHTML+='<li class="ls_hr" ><hr /></li>';if(!this.buttonIsHidden("menuIgnore",providerID)){menuHTML+='<li><a href="#" onclick="livespell.context.ignore(); return false">'+livespell.lang.fetch(providerID,"MENU_IGNORE")+'</a></li>';}
if(!this.buttonIsHidden("menuIgnoreAll",providerID)){menuHTML+='<li><a href="#" onclick="livespell.context.ignoreAll(); return false">'+livespell.lang.fetch(providerID,"MENU_IGNOREALL")+'</a></li>';}
if((!this.buttonIsHidden("menuAddToDict",providerID))&&livespell.spellingProviders[providerID].AddWordsToDictionary!="NONE"){menuHTML+='<li><a href="#" onclick="livespell.context.addPersonal(); return false">'+livespell.lang.fetch(providerID,"MENU_LEARN")+'</a></li>';}
if(livespell.spellingProviders[providerID].ShowLangInContextMenu){menuHTML+='<li class="ls_hr" ><hr /></li>';var doMultipleDict=false
if(livespell.MultipleDictionaries==true&&livespell.MultipleDictionaries){doMultipleDict=true}
if(livespell.spellingProviders[providerID].Language.indexOf(",")>0){doMultipleDict=true}
if(!doMultipleDict){menuHTML+='<li class="li_lang">';if(true){menuHTML+='<select onblur="livespell.context.langInSelection=false;" onfocus="livespell.context.langInSelection=true" onchange="livespell.context.langInSelection=false;livespell.context.changeLanguage(this.options[this.selectedIndex].value);" >';}
for(i=0;i<livespell.cache.langs.length;i++){var strselection=(livespell.cache.langs[i]===livespell.spellingProviders[providerID].Language)?" selected = selected ":"";menuHTML+='<option '+strselection+' value="'+livespell.cache.langs[i]+'" >'+livespell.cache.langs[i]+'</option>';}
menuHTML+='</select>';}else{menuHTML+="<li><a href='javascript:livespell.context.showMultiLang()' >"+livespell.lang.fetch(providerID,"MENU_LANGUAGES")+"</a></li>";menuHTML+='<li id="livepell__multilanguage" style="display:none">';if(livespell.cache.langs.length>5){menuHTML+='<div class="livespell_contextmenu_multilang_container_scroll" >';}else{menuHTML+='<div class="livespell_contextmenu_multilang_container_noscroll" >';}
for(i=0;i<livespell.cache.langs.length;i++){menuHTML+='<label>';menuHTML+='<input type="checkbox" id="livepell__multilanguage_'+livespell.cache.langs[i]+'" value="'+livespell.cache.langs[i]+'" />';menuHTML+=livespell.cache.langs[i];menuHTML+='</label>';menuHTML+='<br/>';}
menuHTML+='</div>';menuHTML+='<input type="button" value="'+livespell.lang.fetch(providerID,"MENU_CANCEL")+'" onclick="livespell.context.hideMultiLang()" /> ';menuHTML+='<input type="button" value="'+livespell.lang.fetch(providerID,"MENU_APPLY")+'" onclick="livespell.context.setMultiLang()" /> ';menuHTML+='</li>';}}
menuHTML+='</ul></div></div>';this.DOM().innerHTML=menuHTML;try{this.boundMenuToScreen();}catch(e){}},boundMenuToScreen:function(){var oscreen=this.DimViewport();var ws=oscreen.width;var hs=oscreen.height;var px=parseInt(this.DOM().style.left.toString().replace("px",""));var py=parseInt(this.DOM().style.top.toString().replace("px",""));scrollx=document.body.scrollLeft+document.documentElement.scrollLeft;scrolly=document.body.scrollTop+document.documentElement.scrollTop;var dmenu=this.DimMenu();var wm=dmenu.width;var hm=dmenu.height;if((hm+py-scrolly)>hs){var gy=hs-hm+scrolly-3;if(gy<0){gy=0}
this.DOM().style.top=gy+"px";}
if((wm+px-scrollx)>ws){var gx=ws-wm+scrollx-3;if(gx<0){gx=0}
this.DOM().style.left=gx+"px";}},DimViewport:function(){var w=0
var h=0;if(typeof(window.innerWidth)=='number'){w=window.innerWidth;h=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){w=document.documentElement.clientWidth;h=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){w=document.body.clientWidth;h=document.body.clientHeight;}
var o=[];o.width=w;o.height=h;return o;},DimMenu:function(){var o=this.DOM()
var w=0
var h=0;if(typeof(o.innerWidth)=='number'){w=o.innerWidth;h=o.innerHeight;}else if(o.clientWidth||o.clientHeight){w=o.clientWidth;h=o.clientHeight;}
var o=[];o.width=w;o.height=h;return o;},suggest:function(id,word,reason,caller){var Lang=[livespell.spellingProviders[this.providerID].Language]
livespell.cache.suggestionrequest={};if(livespell.cache.suggestions[Lang]&&livespell.cache.suggestions[Lang][word]){return livespell.context.showMenu(id,word,reason,this.providerID);}
livespell.cache.suggestionrequest.id=id;livespell.cache.suggestionrequest.word=word;livespell.cache.suggestionrequest.reason=reason;livespell.cache.suggestionrequest.providerID=this.providerID;livespell.ajax.send("CTXSUGGEST",word,Lang,livespell.cache.langs.length?"":"ADDLANGS",this.providerID);}}
function setup___livespell(){var tags=document.getElementsByTagName('script');var foundTag=null;for(var i=tags.length-1;i>=0&&!foundTag;i--){var thisTag=tags[i];try{if(thisTag.getAttribute("src").toLowerCase().indexOf("include.js")>-1&&(thisTag.getAttribute("src").toLowerCase().indexOf("aspnetspell")>-1||thisTag.getAttribute("src").toLowerCase().indexOf("spellcheck/")>-1)){foundTag=thisTag;}}catch(e){}}
for(var i=tags.length-1;i>=0&&!foundTag;i--){var thisTag=tags[i];try{if(thisTag.getAttribute("src").toLowerCase().indexOf("include.js")>-1){foundTag=thisTag;}}catch(e){}}
if(!foundTag){foundTag=tags[tags.length-1];;}
if(typeof(window['livespell___installPath'])!="undefined"){path=livespell___installPath}else{try{var path=foundTag.getAttribute("src").replace(/[\/]?include\.js/ig,"")+"/";}catch(e){alert("SpellCheck include.js file not found:\n\n Try setting livespell___installPath = '/MySpellCheckIncludePath/'; in your documet header.")};}
path=path.split("?")[0]
if(path.substring(path.length-1)!=="/"){path+="/";}
if(path=="/"){path=""}
if(path!="/"&&path!=""&&path&&!livespell.installPath){livespell.installPath=path;livespell.lang.load("en");}else{livespell.lang.load("en");}
var inJS=(livespell.installPath.toLowerCase().indexOf("javascriptspellcheck")>-1||(document.location.href+"").toLowerCase().indexOf("javascriptspellcheck")>-1)
if(inJS){var fn=function(){livespell.addJs(livespell.installPath+"themes/"+$Spelling.Theme+"/theme.js");livespell.context.renderCss($Spelling.Theme);}
livespell.events.add(window,"load",fn,false);}
setInterval(livespell.heartbeat,200)
if(!window.getComputedStyle){document.write("<scr"+'ipt type="text/vbscript">\nsub document_oncontextmenu() \n on error resume next \ndim Oelement \n Set Oelement = window.event.srcElement \n IF( (Oelement.className="livespell_redwiggle" OR Oelement.className="livespell_greenwiggle")) THEN \n window.event.returnValue = false \n window.event.cancelBubble = true\n END IF \n end sub\n </scr'+"ipt>");}
if(livespell.test.MAC()){livespell.events.add(document,"keydown",livespell.context.mackeydown,false)
livespell.events.add(document,"keyup",livespell.context.mackeyup,false)}}
function livespell___FF__clickmanager(e){if(e.which&&e.which==3){var t=(e.originalTarget);if(t&&t.className&&(t.className=="livespell_redwiggle"||t.className=="livespell_greenwiggle")){e.preventDefault();}
t=(e.target);if(t&&t.className&&(t.className=="livespell_redwiggle"||t.className=="livespell_greenwiggle")){e.preventDefault();}}}
if(document.addEventListener&&navigator&&navigator.userAgent.toUpperCase().indexOf("WINDOWS")>0){if(document.addEventListener){document.addEventListener('click',livespell___FF__clickmanager,true);}}
if(!Array.push){Array.prototype.push=function(){var n=this.length>>>0;for(var i=0;i<arguments.length;i++){this[n]=arguments[i];n=n+1>>>0;}
this.length=n;return n;};}
if(!Array.pop){Array.prototype.pop=function(){var n=this.length>>>0,value;if(n){value=this[--n];delete this[n];}
this.length=n;return value;};}
setup___livespell();}
if(typeof(jQuery)!="undefined"){(function($){$.fn.binSpellCheckFields=function(options){var options=$.extend(livespell$defaults,options);livespell$set(options);var fields=[]
this.each(function(){fields[fields.length]=this;});return $Spelling.BinSpellCheckFields(fields);};$.fn.spellAsYouType=function(options){var options=$.extend(livespell$defaults,options);livespell$set(options);var fields=[]
this.each(function(){fields[fields.length]=this;});return $Spelling.SpellCheckAsYouType(fields);};$.fn.spellCheckInDialog=function(options){var options=$.extend(livespell$defaults,options);livespell$set(options);var fields=[]
this.each(function(){fields[fields.length]=this;});return $Spelling.SpellCheckInWindow(fields);};var livespell$set=function(options){var map=livespell$defaults_map;var alt=livespell$defaults_alt;for(var i=0;i<map.length;i++){$Spelling[map[i]]=options[alt[i]]}}
var livespell$defaults={defaultDictionary:"English (International), Deutsch",userInterfaceTranslation:"de",showStatisticsScreen:true,submitFormById:"",theme:"modern",caseSensitive:true,checkGrammar:true,ignoreAllCaps:true,ignoreNumbers:true,showThesaurus:true,showLanguagesInContextMenu:true,serverModel:"auto",popUpStyle:"modal"};var livespell$defaults_map=["DefaultDictionary","UserInterfaceTranslation","ShowStatisticsScreen","SubmitFormById","Theme","CaseSensitive","CheckGrammar","IgnoreAllCaps","IgnoreNumbers","ShowThesaurus","ShowLanguagesInContextMenu","ServerModel","PopUpStyle"]
var livespell$defaults_alt=["defaultDictionary","userInterfaceTranslation","showStatisticsScreen","submitFormById","theme","caseSensitive","checkGrammar","ignoreAllCaps","ignoreNumbers","showThesaurus","showLanguagesInContextMenu","serverModel","popUpStyle"]})(jQuery);}
+32
View File
@@ -0,0 +1,32 @@
JAVASCRIPTSPELLCHECK.COM hereby grants you a non-exclusive license to the JAVASCRIPTSPELLCHECK Software Component (the Software).
By downloading or using the Software, the Licensee agrees not to utilize the software in a manner which is disparaging to JAVASCRIPTSPELLCHECK.COM, and not to rent, lease or otherwise transfer rights to the Software. The Licensee agrees that no attempt will be made by the Licensee or associated parties to translate, reverse engineer, modify, de-compile, disassemble or distribute the Software.
LICENSE TERMS
License terms are offered on the following terms, as purchased. If no purchase or insufficient purchase has been made then the Free Trial License terms apply.
1)Free Trial License - Allows the use of the TRIAL VERSION of the software for private evaluation purposes only. The Software should not be used for public or commercial use of any kind.
2)Single Website License - Grants the use of the Software on any number of web / intranet pages belonging to a single domain and hosted on hosted on a single server. This license does not cover 'cloud' hosting environments.
3)Single Server License - Grants the usage of the Software on any number of web / intranet pages for any number of domains located on a single server. This license does not cover 'cloud' hosting environments.
4)Enterprise License - Grants the usage of the Software on any number of web / intranet pages for any number of domains located on any number of servers belonging to one company or organization.
5)Developer License: Grants the usage of the Software by one developer on an unlimited number of distinct applications which are not packaged commercial products. The Software may be installed on any number of computers but may only be used by ONE developer. JavaScriptSpellCheck.com shall at all times retain ownership of the Software and all subsequent copies.
6)Team License: Grants the usage of the software by up to 10 developers on an unlimited number of distinct applications which are not packaged commercial products. The software may be installed on any number of computers but may only be used by TEN developers. JavaScriptSpellCheck.com shall at all times retain ownership of the Software and all subsequent copies.
7)Redistribution License - Grants the right to distribute the Software (without royalty) as part of ONE distinct packaged commercial product, provided that your application is not a software development system or tool, nor a spell-checking product in its self. JavaScriptSpellCheck.com shall at all times retain ownership of the Software and all subsequent copies.
COPYRIGHT
Title, ownership rights, and intellectual property rights in and to the Software shall remain with JAVASCRIPTSPELLCHECK.COM. The Software is protected by the international copyright laws. Title, ownership rights, and intellectual property rights in and to the content accessed through the Software is the property of the applicable content owner and may be protected by applicable copyright or other law. This License gives you no rights to such content.
LIMITATION OF LIABILITY.
THIS SOFTWARE IS PROVIDED "AS IS," WITHOUT A WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. JAVASCRIPTSPELLCHECK.COM AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL JAVASCRIPTSPELLCHECK.COM OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF JAVASCRIPTSPELLCHECK.COM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
MISCELLANEOUS
This software is not designed or intended for use in on-line control of aircraft, air traffic, aircraft navigation or aircraft communications; or in the design, construction, operation or maintenance of any nuclear facility. Licensee represents and warrants that it will not use or redistribute the Software for such purposes. New York law and controlling U.S. Federal law will govern any action related to this License. No choice of law rules of any jurisdiction will apply. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License represents the complete agreement concerning subject matter hereof.
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

@@ -0,0 +1,136 @@
.livespell_redwiggle {
background-color:#FF0;
cursor:pointer;
}
.livespell_greenwiggle {
background-color:#0F0;
cursor:pointer;
}
.livespell_textarea {
border:1px solid #999;
background-color:#FFF;
width:173px;
height:100px;
font-size:13px;
padding:3px;
margin:0px;
overflow:auto;
font-family: monospace;
display:inline-block;
line-height:13.5px;
overflow:auto;
white-space: pre-wrap;
overflow-y: auto;
overflow-x: auto;
word-wrap:break-word;
display:inline-block;
zoom:1; *display: inline; _height: 30px;
clear:both;
}
.livespell_textarea p
{
margin-top:0;
margin-bottom:0;
}
#livespell___contextmenu {
margin: 0;
padding: 0;
position: absolute;
z-index:2000;
overflow:visible;
text-align:left;
}
#livespell___contextmenu ul {
width:155px;
-moz-border-radius-topleft:6px;
-moz-border-radius-topright:6px;
-moz-border-radius-bottomleft:6px;
-moz-border-radius-bottomright:6px;
-moz-border-radius-bottomright: 6px;
-webkit-border-bottom-right-radius: 6px;
-webkit-border-top-right-radius: 6px;
-webkit-border-bottom-left-radius: 6px;
-webkit-border-top-left-radius: 6px;
-moz-box-shadow:0px 5px 20px #ccc;
cursor:default;
border:1px solid #999;
margin: 0;
padding: 5px;
padding-right: 10px;
padding-bottom: 7px;
list-style-type: none;
font-size:smaller;
background-color:#fff;
color:#111;
font-family:"Lucida Grande","Tahoma", Arial, sans-serif;
}
#livespell___contextmenu hr {
border: 0;
margin: 0;
border-bottom: 1px solid #999;
margin: 3px 0px 3px 0px;
padding:0;
}
#livespell___contextmenu a {
padding-left: 5px;
padding-right: 5px;
cursor:default;
display:block;
width:100%;
color:#000;
text-decoration:none;
padding-left:1px;
font-size:13px;
}
#livespell___contextmenu a:hover {
background-color:#3d60f5;
color:#FFF;
}
#livespell___contextmenu select {
border:none;
color:#333;
font-size:12px;
width:98%;
}
#livespell___contextmenu input {
border:none;
color:#333;
font-size:smaller;
}
#livespell___contextmenu label {
font-size:smaller;
margin:0;
padding:0;
height:15px;
border-collapse:collapse;
border:none;
color:#333;
background-color:#fff;
}
#livespell_contextmenu_multilang_container_noscroll {
width:140px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_contextmenu_multilang_container_scroll {
width:140px;
overflow:auto;
height:115px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_invisible {
filter:alpha(opacity=0);
-moz-opacity:0;
-khtml-opacity: 0;
opacity: 0;
}
@@ -0,0 +1,398 @@
#LivespellDialogBody {
color: #333333;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
background-color: #FFFFFF;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
#ajaxLoader{
background-image:url(ajax-loader.gif);
background-repeat:no-repeat;
width:50px;
height:20px;
}
#multiLangForm{
display:none;
}
#multiLangForm{
display:none;
}
#fldTextInput{
width:330px;
height:81px;
position:absolute;
top:20px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
border-style:inset;
border-width:1px;
}
#TextShow{
cursor:text;
padding:2px;
width:330px;
height:81px;
position:absolute;
top:20px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
z-index:2;
overflow:auto;
background-color:#FFFFFF;
border-style:inset;
border-width:1px;
}
#lMeaning{
display:none;
position:absolute;
top:112px;
left:252px;
}
#multiLangForm{
display:none;
position:absolute;
top:15px;
left:15px;
}
#fldLanguageMultiple{
width:438px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#lMeaning a{
color:#009;
}
#lMeaning a:active{
color:#009;
}
#fldSuggestions{
width:336px;
height:84px;
position:absolute;
top:127px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#fldLanguage{
width:211px;
position:absolute;
top:216px;
left:129px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#highlight{
font-weight:bold;
background-color:#FF0;
}
#highlightGrammar{
font-weight:bold;
background-color:#0F0;
}
#fldTextInputLab{
position:absolute;
top:5px;
left:6px;
z-index:1;
}
#SuggestionsLab{
position:absolute;
top:112px;
left:6px;
z-index:1;
}
#fldLanguageLab{
position:absolute;
top:218px;
left:7px;
z-index:1;
}
#CheckGrammarLab{
position:absolute;
top:234px;
left:4px;
z-index:1;
}
#optSentence{
margin-right:1px;
}
#btnIgnore{
position:absolute;
top:20px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndoManualEdit{
position:absolute;
top:20px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
display:none;
}
#btnIgnoreAll{
position:absolute;
top:54px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAddToDict{
position:absolute;
top:85px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChange{
position:absolute;
top:127px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChangeAll{
position:absolute;
top:159px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAutoCorrect{
position:absolute;
top:190px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnCancel{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndo{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#awayMessage
{
display:none;
color: #999999;
position:absolute;
text-align: center;
top:40%;
left:0%;
width:100%;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:12px;
font-weight:bold;
}
#btnShowOptions{
position:absolute;
top:256px;
left:128px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#MainForm{
display:block;
}
#doneForm{
display:none;
}
#optForm{
display:none;
}
#tOpt{
position:absolute;
top:15px;
left:12px;
z-index:1;
}
#tOla{
position:absolute;
top:170px;
left:12px;
z-index:1;
}
#btnOptionsOK{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnOptionsCancel{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnLangOK{
position:absolute;
top:241px;
left:337px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnLangCancel{
position:absolute;
top:241px;
left:226px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnResetDict
#btnResetDict{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetAutoCorrect{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetDictLab{
position:absolute;
top:115px;
left:100px;
z-index:1;
}
#btnResetAutoCorrectLab{
position:absolute;
top:140px;
left:100px;
z-index:1;
}
#optCaseSensitiveLab{
position:absolute;
top:15px;
left:95px;
z-index:1;
}
#optAllCapsLab{
position:absolute;
top:35px;
left:95px;
z-index:1;
}
#optNumericLab{
position:absolute;
top:55px;
left:95px;
z-index:1;
}
#optSentenceLab{
position:absolute;
top:75px;
left:95px;
z-index:1;
}
#optLanguages{
width:211px;
height:82px;
position:absolute;
top:170px;
left:95px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#tSum{
position:absolute;
top:15px;
left:15px;
}
#sdivider{
width:100%;
position:absolute;
top:35px;
}
#tWrd{
position:absolute;
top:75px;
left:15px;
}
#tDoc{
position:absolute;
top:55px;
left:15px;
}
#tEdi{
position:absolute;
top:95px;
left:15px;
}
#btnAllDone{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
@@ -0,0 +1,41 @@
#livespell___contextmenu ul {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
color:#333;
font-size:8px;
background-color: #eee;
}
#livespell___contextmenu a {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
}
#livespell___contextmenu ul select {
background-color: #e8e8e8;
}
#context__back{
background-color:#8e8e8e;
}
#context__front{
position:relative;
background-color:#e8e8e8;
top :-2px;
left:-2px;
}
#livespell___contextmenu select {
height:18px;
}
#livespell___contextmenu hr {
border-bottom: 1px solid #666;
}
#livespell___contextmenu a:hover {
background-color:#3258f6;
}
#livespell___contextmenu select {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
border:none;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

@@ -0,0 +1,143 @@
.livespell_redwiggle {
background-image:url(wiggle.png);
background-repeat:repeat-x;
background-position:bottom;
cursor: default;
}
.livespell_greenwiggle {
background-image:url(gwiggle.png);
background-repeat:repeat-x;
background-position:bottom;
cursor: default;
}
.livespell_textarea {
border:1px solid #999;
background-color:#FFF;
width:173px;
height:100px;
font-size:13px;
padding:3px;
margin:0px;
overflow:auto;
font-family: monospace;
line-height:13.5px;
overflow:auto;
white-space: pre-wrap;
overflow-y: auto;
overflow-x: auto;
word-wrap:break-word;
display:inline-block;
zoom:1; *display: inline; _height: 30px;
clear:both;
}
.livespell_textarea p
{
margin-top:0;
margin-bottom:0;
}
#livespell___contextmenu {
text-align:left;
margin: 0;
padding: 0;
position: absolute;
z-index:2000;
overflow:visible;
}
#livespell___contextmenu ul {
width:155px;
-moz-border-radius-topleft:6px;
-moz-border-radius-topright:6px;
-moz-border-radius-bottomleft:6px;
-moz-border-radius-bottomright:6px;
-webkit-border-bottom-right-radius: 6px;
-webkit-border-top-right-radius: 6px;
-webkit-border-bottom-left-radius: 6px;
-webkit-border-top-left-radius: 6px;
-moz-box-shadow:0px 5px 20px #ccc;
cursor:default;
border:1px solid #999;
margin: 0;
padding: 5px !important; /* Major browsers other than IE 6 and below respect the importance immediately */
padding: 2px;
padding-right: 11px;
padding-bottom: 7px;
list-style-type: none;
font-size:smaller;
background-color:#fff;
color:#111;
font-family:"Lucida Grande","Tahoma", Arial, sans-serif;
}
#livespell___contextmenu hr {
border: 0;
margin: 0;
border-top: 0;
border-bottom: 1px dotted #999;
margin: 3px 0px 3px 0px;
padding:0;
}
#livespell___contextmenu a {
padding: 2px;
cursor:default;
display:block;
width:100%;
color:#000;
text-decoration:none;
padding-left:1px;
font-size:13px;
}
#livespell___contextmenu a:hover {
background-color:#3d60f5;
color:#FFF;
}
#livespell___contextmenu select {
border:none;
color:#333;
font-size:12px;
width:98%;
}
#livespell___contextmenu input {
border:none;
color:#333;
font-size:smaller;
}
#livespell___contextmenu label {
font-size:smaller;
margin:0;
padding:0;
height:15px;
border-collapse:collapse;
border:none;
color:#333;
background-color:#fff;
}
#livespell_contextmenu_multilang_container_noscroll {
width:140px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_contextmenu_multilang_container_scroll {
width:140px;
overflow:auto;
height:115px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_invisible {
filter:alpha(opacity=0);
-moz-opacity:0;
-khtml-opacity: 0;
opacity: 0;
}
@@ -0,0 +1,397 @@
#LivespellDialogBody {
color: #333333;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
background-color: #E0DFE3;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
#ajaxLoader{
background-image:url(ajax-loader.gif);
background-repeat:no-repeat;
width:50px;
height:20px;
}
#multiLangForm{
display:none;
}
#multiLangForm{
display:none;
}
#fldTextInput{
width:330px;
height:81px;
position:absolute;
top:20px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
border-style:inset;
border-width:1px;
}
#TextShow{
cursor:text;
padding:2px;
width:330px;
height:81px;
position:absolute;
top:20px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
z-index:2;
overflow:auto;
background-color:#FFFFFF;
border-style:inset;
border-width:1px;
}
#lMeaning{
display:none;
position:absolute;
top:112px;
left:252px;
}
#multiLangForm{
display:none;
position:absolute;
top:15px;
left:15px;
}
#fldLanguageMultiple{
width:438px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#lMeaning a{
color:#009;
}
#lMeaning a:active{
color:#009;
}
#fldSuggestions{
width:336px;
height:84px;
position:absolute;
top:127px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#fldLanguage{
width:211px;
position:absolute;
top:216px;
left:129px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#highlight{
font-weight:bold;
color:#FF0000;
}
#highlightGrammar{
font-weight:bold;
color:#008000;
}
#fldTextInputLab{
position:absolute;
top:5px;
left:6px;
z-index:1;
}
#SuggestionsLab{
position:absolute;
top:112px;
left:6px;
z-index:1;
}
#fldLanguageLab{
position:absolute;
top:218px;
left:7px;
z-index:1;
}
#CheckGrammarLab{
position:absolute;
top:234px;
left:4px;
z-index:1;
}
#optSentence{
margin-right:1px;
}
#btnIgnore{
position:absolute;
top:20px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndoManualEdit{
position:absolute;
top:20px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
display:none;
}
#btnIgnoreAll{
position:absolute;
top:54px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAddToDict{
position:absolute;
top:85px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChange{
position:absolute;
top:127px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChangeAll{
position:absolute;
top:159px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAutoCorrect{
position:absolute;
top:190px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnCancel{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndo{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#awayMessage
{
display:none;
color: #999999;
position:absolute;
text-align: center;
top:40%;
left:0%;
width:100%;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:12px;
font-weight:bold;
}
#btnShowOptions{
position:absolute;
top:256px;
left:128px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#MainForm{
display:block;
}
#doneForm{
display:none;
}
#optForm{
display:none;
}
#tOpt{
position:absolute;
top:15px;
left:12px;
z-index:1;
}
#tOla{
position:absolute;
top:170px;
left:12px;
z-index:1;
}
#btnOptionsOK{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnOptionsCancel{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnLangOK{
position:absolute;
top:241px;
left:337px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnLangCancel{
position:absolute;
top:241px;
left:226px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnResetDict{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetAutoCorrect{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetDictLab{
position:absolute;
top:115px;
left:100px;
z-index:1;
}
#btnResetAutoCorrectLab{
position:absolute;
top:140px;
left:100px;
z-index:1;
}
#optCaseSensitiveLab{
position:absolute;
top:15px;
left:95px;
z-index:1;
}
#optAllCapsLab{
position:absolute;
top:35px;
left:95px;
z-index:1;
}
#optNumericLab{
position:absolute;
top:55px;
left:95px;
z-index:1;
}
#optSentenceLab{
position:absolute;
top:75px;
left:95px;
z-index:1;
}
#optLanguages{
width:211px;
height:82px;
position:absolute;
top:170px;
left:95px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#tSum{
position:absolute;
top:15px;
left:15px;
}
#sdivider{
width:100%;
position:absolute;
top:35px;
}
#tWrd{
position:absolute;
top:75px;
left:15px;
}
#tDoc{
position:absolute;
top:55px;
left:15px;
}
#tEdi{
position:absolute;
top:95px;
left:15px;
}
#btnAllDone{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

@@ -0,0 +1,41 @@
#livespell___contextmenu ul {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
color:#333;
font-size:8px;
background-color: #eee;
}
#livespell___contextmenu a {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
}
#livespell___contextmenu ul select {
background-color: #e8e8e8;
}
#context__back{
background-color:#8e8e8e;
}
#context__front{
position:relative;
background-color:#e8e8e8;
top :-2px;
left:-2px;
}
#livespell___contextmenu select {
height:18px;
}
#livespell___contextmenu hr {
border-bottom: 1px solid #666;
}
#livespell___contextmenu a:hover {
background-color:#3258f6;
}
#livespell___contextmenu select {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
border:none;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

@@ -0,0 +1,143 @@
.livespell_redwiggle {
background-image:url(wiggle.png);
background-repeat:repeat-x;
background-position:bottom;
cursor: default;
}
.livespell_greenwiggle {
background-image:url(gwiggle.png);
background-repeat:repeat-x;
background-position:bottom;
cursor: default;
}
.livespell_textarea {
border:1px solid #999;
background-color:#FFF;
width:173px;
height:100px;
font-size:13px;
padding:3px;
margin:0px;
overflow:auto;
font-family: monospace;
line-height:13.5px;
overflow:auto;
white-space: pre-wrap;
overflow-y: auto;
overflow-x: auto;
word-wrap:break-word;
display:inline-block;
zoom:1; *display: inline; _height: 30px;
clear:both;
}
.livespell_textarea p
{
margin-top:0;
margin-bottom:0;
}
#livespell___contextmenu {
text-align:left;
margin: 0;
padding: 0;
position: absolute;
z-index:2000;
overflow:visible;
}
#livespell___contextmenu ul {
width:155px;
-moz-border-radius-topleft:6px;
-moz-border-radius-topright:6px;
-moz-border-radius-bottomleft:6px;
-moz-border-radius-bottomright:6px;
-webkit-border-bottom-right-radius: 6px;
-webkit-border-top-right-radius: 6px;
-webkit-border-bottom-left-radius: 6px;
-webkit-border-top-left-radius: 6px;
-moz-box-shadow:0px 5px 20px #ccc;
cursor:default;
border:1px solid #999;
margin: 0;
padding: 5px !important; /* Major browsers other than IE 6 and below respect the importance immediately */
padding: 2px;
padding-right: 11px;
padding-bottom: 7px;
list-style-type: none;
font-size:smaller;
background-color:#fff;
color:#111;
font-family:"Lucida Grande","Tahoma", Arial, sans-serif;
}
#livespell___contextmenu hr {
border: 0;
margin: 0;
border-top: 0;
border-bottom: 1px dotted #999;
margin: 3px 0px 3px 0px;
padding:0;
}
#livespell___contextmenu a {
padding: 2px;
cursor:default;
display:block;
width:100%;
color:#000;
text-decoration:none;
padding-left:1px;
font-size:13px;
}
#livespell___contextmenu a:hover {
background-color:#3d60f5;
color:#FFF;
}
#livespell___contextmenu select {
border:none;
color:#333;
font-size:12px;
width:98%;
}
#livespell___contextmenu input {
border:none;
color:#333;
font-size:smaller;
}
#livespell___contextmenu label {
font-size:smaller;
margin:0;
padding:0;
height:15px;
border-collapse:collapse;
border:none;
color:#333;
background-color:#fff;
}
#livespell_contextmenu_multilang_container_noscroll {
width:140px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_contextmenu_multilang_container_scroll {
width:140px;
overflow:auto;
height:115px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_invisible {
filter:alpha(opacity=0);
-moz-opacity:0;
-khtml-opacity: 0;
opacity: 0;
}
@@ -0,0 +1,397 @@
#LivespellDialogBody {
color: #333333;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
background-color: #FFF;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
#ajaxLoader{
background-image:url(ajax-loader.gif);
background-repeat:no-repeat;
width:50px;
height:20px;
}
#multiLangForm{
display:none;
}
#multiLangForm{
display:none;
}
#fldTextInput{
width:330px;
height:81px;
position:absolute;
top:20px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
border-style:inset;
border-width:1px;
}
#TextShow{
cursor:text;
padding:2px;
width:330px;
height:81px;
position:absolute;
top:20px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
z-index:2;
overflow:auto;
background-color:#FFFFFF;
border-style:inset;
border-width:1px;
}
#lMeaning{
display:none;
position:absolute;
top:112px;
left:252px;
}
#multiLangForm{
display:none;
position:absolute;
top:15px;
left:15px;
}
#fldLanguageMultiple{
width:438px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#lMeaning a{
color:#009;
}
#lMeaning a:active{
color:#009;
}
#fldSuggestions{
width:336px;
height:84px;
position:absolute;
top:127px;
left:5px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#fldLanguage{
width:211px;
position:absolute;
top:216px;
left:129px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#highlight{
font-weight:bold;
color:#FF0000;
}
#highlightGrammar{
font-weight:bold;
color:#008000;
}
#fldTextInputLab{
position:absolute;
top:5px;
left:6px;
z-index:1;
}
#SuggestionsLab{
position:absolute;
top:112px;
left:6px;
z-index:1;
}
#fldLanguageLab{
position:absolute;
top:218px;
left:7px;
z-index:1;
}
#CheckGrammarLab{
position:absolute;
top:234px;
left:4px;
z-index:1;
}
#optSentence{
margin-right:1px;
}
#btnIgnore{
position:absolute;
top:20px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndoManualEdit{
position:absolute;
top:20px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
display:none;
}
#btnIgnoreAll{
position:absolute;
top:54px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAddToDict{
position:absolute;
top:85px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChange{
position:absolute;
top:127px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChangeAll{
position:absolute;
top:159px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAutoCorrect{
position:absolute;
top:190px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnCancel{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndo{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#awayMessage
{
display:none;
color: #999999;
position:absolute;
text-align: center;
top:40%;
left:0%;
width:100%;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:12px;
font-weight:bold;
}
#btnShowOptions{
position:absolute;
top:256px;
left:128px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#MainForm{
display:block;
}
#doneForm{
display:none;
}
#optForm{
display:none;
}
#tOpt{
position:absolute;
top:15px;
left:12px;
z-index:1;
}
#tOla{
position:absolute;
top:170px;
left:12px;
z-index:1;
}
#btnOptionsOK{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnOptionsCancel{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnLangOK{
position:absolute;
top:241px;
left:337px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnLangCancel{
position:absolute;
top:241px;
left:226px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnResetDict{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetAutoCorrect{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetDictLab{
position:absolute;
top:115px;
left:100px;
z-index:1;
}
#btnResetAutoCorrectLab{
position:absolute;
top:140px;
left:100px;
z-index:1;
}
#optCaseSensitiveLab{
position:absolute;
top:15px;
left:95px;
z-index:1;
}
#optAllCapsLab{
position:absolute;
top:35px;
left:95px;
z-index:1;
}
#optNumericLab{
position:absolute;
top:55px;
left:95px;
z-index:1;
}
#optSentenceLab{
position:absolute;
top:75px;
left:95px;
z-index:1;
}
#optLanguages{
width:211px;
height:82px;
position:absolute;
top:170px;
left:95px;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
#tSum{
position:absolute;
top:15px;
left:15px;
}
#sdivider{
width:100%;
position:absolute;
top:35px;
}
#tWrd{
position:absolute;
top:75px;
left:15px;
}
#tDoc{
position:absolute;
top:55px;
left:15px;
}
#tEdi{
position:absolute;
top:95px;
left:15px;
}
#btnAllDone{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

@@ -0,0 +1,42 @@
#livespell___contextmenu ul {
text-align:left;
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
color:#333;
font-size:8px;
background-color: #eee;
}
#livespell___contextmenu a {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
}
#livespell___contextmenu ul select {
background-color: #e8e8e8;
}
#context__back{
background-color:#8e8e8e;
}
#context__front{
position:relative;
background-color:#e8e8e8;
top :-2px;
left:-2px;
}
#livespell___contextmenu select {
height:18px;
}
#livespell___contextmenu hr {
border-bottom: 1px solid #666;
}
#livespell___contextmenu a:hover {
background-color:#3258f6;
}
#livespell___contextmenu select {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
border:none;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

@@ -0,0 +1,164 @@
@import url("okonet-modalbox/modalbox.css") ;
.livespell_redwiggle {
background-image:url(wiggle.png);
background-repeat:repeat-x;
background-position:bottom;
cursor: default;
}
h2.spellnofify{
font: bold 100% "Lucida Grande",Arial,sans-serif;
margin: 0;
padding: 0.5em 2em 0.5em 0.75em;
text-align: left;
text-shadow: 0 1px 0 #FFFFFF;
}
.livespell_greenwiggle {
background-image:url(gwiggle.png);
background-repeat:repeat-x;
background-position:bottom;
cursor: default;
}
.livespell_textarea {
border:1px solid #999;
background-color:#FFF;
width:173px;
height:100px;
font-size:13px;
padding:3px;
margin:0px;
overflow:auto;
font-family: monospace;
line-height:13.5px;
overflow:auto;
white-space: pre-wrap;
overflow-y: auto;
overflow-x: auto;
word-wrap:break-word;
display:inline-block;
zoom:1; *display: inline; _height: 30px;
cursor:text;
clear:both;
}
.livespell_textarea p
{
margin-top:0;
margin-bottom:0;
}
#livespell___contextmenu {
margin: 0;
padding: 0;
position: absolute;
z-index:2000;
overflow:visible;
opacity:.95;
}
#livespell___contextmenu li.ls_sug{
font-size:10px;
font-weight:bold;
}
#livespell___contextmenu ul {
width:170px;
-moz-border-radius-topleft:4px;
-moz-border-radius-topright:4px;
-moz-border-radius-bottomleft:4px;
-moz-border-radius-bottomright:4px;
-webkit-border-bottom-right-radius: 4px;
-webkit-border-top-right-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-webkit-border-top-left-radius: 4px;
-moz-box-shadow:0px 3px 5px #bbb;
cursor:default;
border:1px solid #000;
margin: 0;
padding: 5px !important; /* Major browsers other than IE 6 and below respect the importance immediately */
padding: 2px;
padding-right: 10px;
padding-bottom: 7px;
list-style-type: none;
font-size:10px;
background-color:#fff;
color:#111;
font-family: "Trebuchet", Arial, sans-serif;
}
#livespell___contextmenu hr {
border: 0;
margin: 0;
border: 0;
border-bottom: 1px dotted #666;
padding:0;
}
#livespell___contextmenu li.ls_hr{
padding:none;
margin:none;
height:5px;
}
#livespell___contextmenu a {
padding: 2px;
cursor:default;
display:block;
width:100%;
color:#000;
text-decoration:none;
padding-left:1px;
font-size:13px;
}
#livespell___contextmenu a:hover {
background-color:#3d60f5;
color:#FFF;
}
#livespell___contextmenu select {
border:none;
color:#333;
font-size:12px;
width:98%;
}
#livespell___contextmenu input {
border:none;
color:#333;
font-size:smaller;
}
#livespell___contextmenu label {
font-size:smaller;
margin:0;
padding:0;
height:15px;
border-collapse:collapse;
border:none;
color:#333;
background-color:#fff;
}
#livespell_contextmenu_multilang_container_noscroll {
width:140px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_contextmenu_multilang_container_scroll {
width:140px;
overflow:auto;
height:115px;
border: 1px dotted #ccc;
margin-top:5px;
}
.livespell_invisible {
filter:alpha(opacity=0);
-moz-opacity:0;
-khtml-opacity: 0;
opacity: 0;
}
@@ -0,0 +1,406 @@
#LivespellDialogBody {
color: #333333;
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
font-size:11px;
background-color: #EFEFEF;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
#ajaxLoader{
}
#multiLangForm{
display:none;
}
#multiLangForm{
display:none;
}
#fldTextInput{
width:330px;
height:45px;
position:absolute;
top:5px;
left:5px;
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
font-size:12px;
border:1px solid #ccc;
}
#TextShow{
cursor:text;
padding:2px;
width:330px;
height:45px;
position:absolute;
top:5px;
left:5px;
/*font-family:Verdana, Arial, Helvetica, sans-serif;*/
font-size:12px;
z-index:2;
overflow:auto;
background-color:#FFFFFF;
border:1px solid #ccc;
}
#lMeaning{
display:none;
position:absolute;
top:213px;
right:121px;
text-align:right;
}
#multiLangForm{
display:none;
position:absolute;
top:15px;
left:15px;
}
#fldLanguageMultiple{
width:438px;
/*font-family:Verdana, Arial, Helvetica, sans-serif;*/
font-size:11px;
}
#lMeaning a{
color:#009;
}
#lMeaning a:active{
color:#009;
}
#fldSuggestions{
width:336px;
height:92px;
position:absolute;
top:117px;
left:5px;
/*font-family:Verdana, Arial, Helvetica, sans-serif;*/
font-size:11px;
}
#fldLanguage{
width:211px;
position:absolute;
top:215px;
left:6px;
/*font-family:Verdana, Arial, Helvetica, sans-serif;*/
font-size:11px;
}
#highlight{
font-weight:bold;
color:#880000;
}
#highlightGrammar{
font-weight:bold;
color:#008800;
}
#fldTextInputLab{
position:absolute;
top:56px;
left:6px;
z-index:1;
}
#SuggestionsLab{
position:absolute;
top:97px;
left:6px;
z-index:1;
}
#fldLanguageLab{
position:absolute;
top:231px;
left:10px;
z-index:1;
display:none;
}
#CheckGrammarLab{
position:absolute;
top:257px;
left:122px;
z-index:1;
}
#optSentence{
margin-right:1px;
}
#btnIgnore{
position:absolute;
top:33px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndoManualEdit{
position:absolute;
top:33px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
display:none;
}
#btnIgnoreAll{
position:absolute;
top:143px;
left:352px;
width:100px;
;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAddToDict{
position:absolute;
top:168px;
left:352px;
width:100px;
;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChange{
position:absolute;
top:5px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnChangeAll{
position:absolute;
top:116px;
left:352px;
width:100px;
;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnAutoCorrect{
position:absolute;
top:194px;
left:352px;
width:100px;
;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnCancel{
display:none;lMeaning
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnUndo{
position:absolute;
top:220px;
left:353px;
width:100px;
;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#awayMessage
{
display:none;
color: #999999;
position:absolute;
text-align: center;
top:40%;
left:0%;
width:100%;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:12px;
font-weight:bold;
}
#btnShowOptions{
position:absolute;
top:256px;
left:9px;
width:100px;
;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#MainForm{
display:block;
}
#doneForm{
display:none;
}
#optForm{
display:none;
}
#tOpt{
position:absolute;
top:15px;
left:12px;
z-index:1;
}
#tOla{
position:absolute;
top:170px;
left:12px;
z-index:1;
}
#btnOptionsOK{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnOptionsCancel{
position:absolute;
top:256px;
left:242px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnLangOK{
position:absolute;
top:241px;
left:337px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
z-index:2;
}
#btnLangCancel{
position:absolute;
top:241px;
left:226px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
#btnResetDict{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetAutoCorrect{
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
width:80px;
}
#btnResetDictLab{
position:absolute;
top:115px;
left:100px;
z-index:1;
}
#btnResetAutoCorrectLab{
position:absolute;
top:140px;
left:100px;
z-index:1;
}
#optCaseSensitiveLab{
position:absolute;
top:15px;
left:95px;
z-index:1;
}
#optAllCapsLab{
position:absolute;
top:35px;
left:95px;
z-index:1;
}
#optNumericLab{
position:absolute;
top:55px;
left:95px;
z-index:1;
}
#optSentenceLab{
position:absolute;
top:75px;
left:95px;
z-index:1;
}
#optLanguages{
width:211px;
height:82px;
position:absolute;
top:170px;
left:95px;
/*font-family:Verdana, Arial, Helvetica, sans-serif;*/
font-size:11px;
}
#tSum{
position:absolute;
top:15px;
left:15px;
}
#sdivider{
width:100%;
position:absolute;
top:35px;
}
#tWrd{
position:absolute;
top:75px;
left:15px;
}
#tDoc{
position:absolute;
top:55px;
left:15px;
}
#tEdi{
position:absolute;
top:95px;
left:15px;
}
#btnAllDone{
position:absolute;
top:256px;
left:352px;
width:100px;;
font-family:Tahoma, Arial, Helvetica, sans-serif;
font-size:11px;
height:22px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

@@ -0,0 +1,105 @@
#livespell___contextmenu ul {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
color:#333;
background: url("xp.gif") repeat-y scroll left top #F9F8F7;
border: 1px solid #666666;
padding: 1px;
width:175px;
}
#livespell___contextmenu hr {
border: 0;
margin: 0;
border-top: 0;
border-bottom: 1px solid #99F;
margin: 3px 0px 3px 0px;
padding:0;
border-bottom: 1px solid white;
border-top: 1px solid #808080;
font-size: 0;
margin: 4px 2px;
}
#livespell___contextmenu li{
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
color: black;
cursor: pointer;
font-family: arial;
font-size: 11px;
text-align: left;
padding-left:22px;
padding-right:5px;
}
#livespell___contextmenu li.ls_sug{
font-weight:bold;
}
#livespell___contextmenu li.li_lang{
min-width:140px;
}
#livespell___contextmenu li a {
background: none no-repeat scroll 2px center transparent;
border: 1px solid #F9F8F7;
padding: 0;
margin-bottom:5px;
}
#livespell___contextmenu li a:hover {
background: none no-repeat scroll 2px center #3399ff;
border: 1px solid #0A246A;
}
#livespell___contextmenu li.ls_hr{
padding:none;
margin:none;
display:none;
}
#context__back{
background-color:#999;
}
#context__front{
position:relative;
background-color:#999;
top :-3px;
left:-3px;
}
#livespell___contextmenu select {
height:22px;
}
#livespell___contextmenu hr {
padding:0;
margin:0;
border:0;
border-top: 1px dotted #666;
}
#livespell___contextmenu a:hover {
background-color:#3258f6;
}
#livespell___contextmenu select {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
background-color:#F9F8F7;
border:none;
scrollbar-face-color:#EBF5FF;
scrollbar-base-color:#EBF5FF;
scrollbar-arrow-color:black;
scrollbar-track-color:#F3F3F3;
scrollbar-shadow-color:#EBF5FF;
scrollbar-highlight-color:#EBF5FF;
scrollbar-3dlight-color:#78AAFF;
scrollbar-darkshadow-Color:#78AAFF;
}
#livespell___contextmenu select option {
font-family:"Tahoma MS","Tahoma", Arial, sans-serif;
font-size:11px;
background-color:#F9F8F7;
border:none;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

@@ -0,0 +1 @@
livespell.lang.af = ['Hier','Auto Correct','Die styl','Verander','Al verander','Herroep wysig','Sluit','Ignoreer','Ignoreer','OK','Opsies','Reset','Ongedaan te maak','Wysigings:','Gebiede','Spel-afgewerkte seker die volgende:','Woorde te vervang:','Woordeboek taal:','Voorstelle:','Meer as een...','Kliek Taal (druk Ctrl-sleutel vir meer as een):','Betekenis...','Van toepassing','Die styl','Verwyder','Herhaalde verwyder','Ignoreer','Ignoreer','Taal','Hier','Geen kommentaar...','Sensitiewe geval.','Items','Ignoreer Hoofletters','Ignoreer Nommers.','My Auto Correct','My woordeboek','Gaan Grammatika','Nie toegelaat:','Verkeerde Case:','Moet verander:','Grammatika:','Herhaal:','Fout:','Herhaalde verwyder...','Geen kommentaar...','Speltoets','Speltoets'];
@@ -0,0 +1 @@
livespell.lang.ar = ['تعلم','التصحيح التلقائي','إلغاء','تغيير','تغيير جميع','التراجع عن تحرير','أغلق','تجاهل الكل','تجاهل','موافق','خيارات','إعادة تعيين','تراجع','التحرير :','الحقول','توضيح المرجعية النهائية :','الكلمات :','قاموس اللغة :','الاقتراحات :','أكثر من واحد...','اختيار اللغات (عقد زر السيطرة) :','معنى...','تطبق','إلغاء','حذف','حذف المتكرر','تجاهل','تجاهل الكل','لغة','تعلم','أي اقتراحات...','القضية الحساسة.','البنود','تجاهل الأحرف الكبيرة','تجاهل أرقام.','بلدي التصحيح التلقائي','قاموس بلادي','الاختيار نحوي','غير مسموح بها :','القضية غير صحيحة :','ولا بد من تغيير :','النحوي :','أكرر :','خطأ :','وكرر حذف...','أي اقتراحات...','التدقيق الإملائي','التدقيق الإملائي'];
@@ -0,0 +1 @@
livespell.lang.ar = ['تعلم','التصحيح التلقائي','إلغاء','تغيير','تغيير جميع','التراجع عن تحرير','أغلق','تجاهل الكل','تجاهل','موافق','خيارات','إعادة تعيين','تراجع','التحرير :','الحقول','توضيح المرجعية النهائية :','الكلمات :','قاموس اللغة :','الاقتراحات :','أكثر من واحد...','اختيار اللغات (عقد زر السيطرة) :','معنى...','تطبق','إلغاء','حذف','حذف المتكرر','تجاهل','تجاهل الكل','لغة','تعلم','أي اقتراحات...','القضية الحساسة.','البنود','تجاهل الأحرف الكبيرة','تجاهل أرقام.','بلدي التصحيح التلقائي','قاموس بلادي','الاختيار نحوي','غير مسموح بها :','القضية غير صحيحة :','ولا بد من تغيير :','النحوي :','أكرر :','خطأ :','وكرر حذف...','أي اقتراحات...','التدقيق الإملائي','التدقيق الإملائي'];
@@ -0,0 +1 @@
livespell.lang.bg = ['Уча','Автокоригиране','Задрасквам','Промяна','Промяна на всички','Отмяна Редактиране','Близо','Игнорирай всички','Игнорирам','Добре','Опции','Проучване','Премахвам','Редакции:','Сфера','За проверка на правописа Завършен:','Текст:','Речник на езика:','Предложения:','Повече от едно...','Изберете езици (задръжте CTRL бутон):','Значение...','Кандидатствайте','Задрасквам','Изтривам','Изтриване Повтарящата','Игнорирам','Игнорирай всички','Език','Уча','Няма предложения...','Главни букви.','Точки','Игнориране на Главните','Игнориране на числата.','Моят автокоригиране','Моят речник','Проверете Граматика','Не е позволено:','Неправилно случай:','Трябва да се променят:','Граматика:','Повтарям:','Грешка:','Изтриване Многократното...','Няма предложения...','Проверка на правописа','Проверка на правописа'];
@@ -0,0 +1 @@
livespell.lang.bg = ['Уча','Автокоригиране','Задрасквам','Промяна','Промяна на всички','Отмяна Редактиране','Близо','Игнорирай всички','Игнорирам','Добре','Опции','Проучване','Премахвам','Редакции:','Сфера','За проверка на правописа Завършен:','Текст:','Речник на езика:','Предложения:','Повече от едно...','Изберете езици (задръжте CTRL бутон):','Значение...','Кандидатствайте','Задрасквам','Изтривам','Изтриване Повтарящата','Игнорирам','Игнорирай всички','Език','Уча','Няма предложения...','Главни букви.','Точки','Игнориране на Главните','Игнориране на числата.','Моят автокоригиране','Моят речник','Проверете Граматика','Не е позволено:','Неправилно случай:','Трябва да се променят:','Граматика:','Повтарям:','Грешка:','Изтриване Многократното...','Няма предложения...','Проверка на правописа','Проверка на правописа'];
@@ -0,0 +1 @@
livespell.lang.cn = ["学习","自动更正","取消","改变","改变一切","撤消编辑","关闭","全部忽略","忽视","行","选项","复位","复原","编辑:","菲尔兹","拼写检查完成:","词:","词典的语言:","建议:","超过1...","选择语言(按住Ctrl键):","意义...","申请","取消","删除","删除重复","忽视","全部忽略","语","学习","不建议...","区分大小写。","项目","忽略大写","忽略数。","我的自动更正","我的词典","检查语法","不允许使用:","不正确案例:","必须改变:","语法:","重复:","误区:","删除重复...","不建议...","拼写检查","拼写检查"];

Some files were not shown because too many files have changed in this diff Show More