<?xml version="1.0"?>
<ZopeData>
  <record id="1" aka="AAAAAAAAAAE=">
    <pickle>
      <tuple>
        <global name="File" module="OFS.Image"/>
        <tuple/>
      </tuple>
    </pickle>
    <pickle>
      <dictionary>
        <item>
            <key> <string>_Cacheable__manager_id</string> </key>
            <value> <string>http_cache</string> </value>
        </item>
        <item>
            <key> <string>_EtagSupport__etag</string> </key>
            <value> <string>ts60537124.1</string> </value>
        </item>
        <item>
            <key> <string>__name__</string> </key>
            <value> <string>fck_scayt.html</string> </value>
        </item>
        <item>
            <key> <string>content_type</string> </key>
            <value> <string>text/html</string> </value>
        </item>
        <item>
            <key> <string>data</string> </key>
            <value> <string encoding="cdata"><![CDATA[

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >\r\n
<!--\r\n
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r\n
 * Copyright (C) 2003-2009 Frederico Caldeira Knabben\r\n
 *\r\n
 * == BEGIN LICENSE ==\r\n
 *\r\n
 * Licensed under the terms of any of the following licenses at your\r\n
 * choice:\r\n
 *\r\n
 *  - GNU General Public License Version 2 or later (the "GPL")\r\n
 *    http://www.gnu.org/licenses/gpl.html\r\n
 *\r\n
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r\n
 *    http://www.gnu.org/licenses/lgpl.html\r\n
 *\r\n
 *  - Mozilla Public License Version 1.1 or later (the "MPL")\r\n
 *    http://www.mozilla.org/MPL/MPL-1.1.html\r\n
 *\r\n
 * == END LICENSE ==\r\n
-->\r\n
<html>\r\n
\t<head>\r\n
\t\t<title>SCAYT Properties</title>\r\n
\t\t<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n
\t\t<meta content="noindex, nofollow" name="robots">\r\n
\t\t<script src="common/fck_dialog_common.js" type="text/javascript"></script>\r\n
\t\t<link type="text/css" href="fck_scayt/scayt_dialog.css" rel="stylesheet" />\r\n
\t\t<script type="text/javascript">\r\n
\r\n
\t\t\tvar dialog\t= window.parent ;\r\n
\t\t\tvar oEditor\t= dialog.InnerDialogLoaded() ;\r\n
\t\t\tvar FCKLang = oEditor.FCKLang;\r\n
\t\t\tvar scayt = oEditor.scayt;\r\n
\t\t\tvar scayt_control = oEditor.scayt_control;\r\n
\t\t\tvar lang_list = {};\r\n
            var\tsLang;\r\n
\t\t\tvar\tfckLang;\r\n
            var chosed_lang;\r\n
\t\t\tvar options;\r\n
\t\t\tvar\ttabs = scayt_control.uiTags || [1,1,0,1];\r\n
\t\t\tvar\tuserDicActive = tabs[2] == 1;\r\n
\t\t\tvar\tcaptions;\r\n
\t\t\tvar dic_buttons = [\r\n
\t\t\t\t// [0] contains buttons for creating\r\n
\t\t\t\t"dic_create,dic_restore",\r\n
\t\t\t\t// [1] contains buton for manipulation\r\n
\t\t\t\t"dic_rename,dic_delete"\r\n
\t\t\t];\r\n
\r\n
\t\t\tvar get =\r\n
\t\t\t\tnew function(){\r\n
\r\n
\t\t\t\t\tvar mergeObjs = function(obj1, obj2)\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\tfor (var k in obj1)\r\n
\t\t\t\t\t\t\tobj2[k] = obj1[k];\r\n
\r\n
\t\t\t\t\t\treturn obj2;\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tvar removeWhitespaces = function( s )\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\ts = s.replace( new RegExp("^ +| +$"), \'\' ) ;\r\n
\t\t\t\t\t\treturn s ;\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tvar addEvent = function( el ,sEventName, fTodo )\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\tif (el.addEventListener) {\r\n
\t\t\t\t\t\t\tel.addEventListener (sEventName,fTodo,false);\r\n
\r\n
\t\t\t\t\t\t} else if (el.attachEvent) {\r\n
\t\t\t\t\t\t\tel.attachEvent ("on"+sEventName,fTodo);\r\n
\r\n
\t\t\t\t\t\t} else {\r\n
\t\t\t\t\t\t\tel["on"+sEventName] = fTodo;\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tvar getElementsByClassName = function (node,classname ,strTag) {\r\n
\t\t\t\t\t\tstrTag = strTag || "*";\r\n
\t\t\t\t\t  \tnode = node || document;\r\n
\t\t\t\t\t\tif (node.getElementsByClassName)\r\n
\t\t\t\t\t\t\treturn node.getElementsByClassName(classname);\r\n
\t\t\t\t\t\telse {\r\n
\t\t\t\t\t\t\tvar objColl = node.getElementsByTagName(strTag);\r\n
\t\t\t\t\t\t\tif (!objColl.length &&  strTag == "*" &&  node.all) objColl = node.all;\r\n
\t\t\t\t\t\t\tvar arr = new Array();\r\n
\t\t\t\t\t\t\tvar delim = classname.indexOf(\'|\') != -1  ? \'|\' : \' \';\r\n
\t\t\t\t\t\t\tvar arrClass = classname.split(delim);\r\n
\t\t\t\t\t\t\tfor (var i = 0, j = objColl.length; i < j; i++) {\r\n
\t\t\t\t\t\t\t\tvar arrObjClass = objColl[i].className.split(\' \');\r\n
\t\t\t\t\t\t\t\tif (delim == \' \' && arrClass.length > arrObjClass.length) continue;\r\n
\t\t\t\t\t\t\t\tvar c = 0;\r\n
\t\t\t\t\t\t\t\tcomparisonLoop:\r\n
\t\t\t\t\t\t\t\t\tfor ( var k = 0, l = arrObjClass.length ; k < l ; k++ )\r\n
\t\t\t\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t\t\t\tfor ( var m = 0, n = arrClass.length ; m < n ; m++ )\r\n
\t\t\t\t\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t\t\t\t\tif ( arrClass[m] == arrObjClass[k] )\r\n
\t\t\t\t\t\t\t\t\t\t\t\tc++ ;\r\n
\r\n
\t\t\t\t\t\t\t\t\t\t\tif ( ( delim == \'|\' && c == 1 ) || ( delim == \' \' && c == arrClass.length ) )\r\n
\t\t\t\t\t\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t\t\t\t\t\tarr.push( objColl[i] ) ;\r\n
\t\t\t\t\t\t\t\t\t\t\t\tbreak comparisonLoop ;\r\n
\t\t\t\t\t\t\t\t\t\t\t}\r\n
\t\t\t\t\t\t\t\t\t\t}\r\n
\t\t\t\t\t\t\t\t\t}\r\n
\t\t\t\t\t\t\t}\r\n
\t\t\t\t\t\t\treturn arr;\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tvar hasClassName = function ( sClassName, elem ) {\r\n
\t\t\t\t\t\t//.split(/\\s+/);\r\n
\t\t\t\t\t\tvar aCnames = elem.className.split(/\\s+/) || [];\r\n
\t\t\t\t\t\tfor (var i=0, l=aCnames.length; i<l ; i++){\r\n
\t\t\t\t\t\t\tif (sClassName == aCnames[i])\r\n
\t\t\t\t\t\t\t\treturn true;\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t\treturn false;\r\n
\t\t\t\t\t}\r\n
\r\n
\t\t\t\t\tvar single = {\r\n
\t\t\t\t\t\taddClass \t: function ( sClassName ) {\r\n
\t\t\t\t\t\t\t//console.info( sClassName, this.className, );\r\n
\t\t\t\t\t\t\tif ( hasClassName(sClassName , this) )\r\n
\t\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t\tvar s = removeWhitespaces(this.className + " " +sClassName);\r\n
\t\t\t\t\t\t\tthis.className = s;\r\n
\t\t\t\t\t\t\treturn this;\r\n
\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tremoveClass : function ( sClassName ) {\r\n
\t\t\t\t\t\t\tvar s = removeWhitespaces(this.className.replace(sClassName,""));\r\n
\t\t\t\t\t\t\tthis.className = s;\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tsetStyle : function( oStyles )\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\tfor ( var style in oStyles )\r\n
\t\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t\tthis.style[style] = oStyles[style] ;\r\n
\t\t\t\t\t\t\t}\r\n
\t\t\t\t\t\t\treturn this ;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tbindOnclick\t\t: function ( handler ) {\r\n
\t\t\t\t\t\t\t//addEvent( this, "click" , handler);\r\n
\t\t\t\t\t\t\tthis.onclick = handler;\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tbindOnchange\t: function ( handler ) {\r\n
\t\t\t\t\t\t\t//addEvent( this, "change" , handler);\r\n
\t\t\t\t\t\t\tthis.onchange = handler;\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tgetAttr : function ( sAttrName )\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\tif ( !sAttrName )\r\n
\t\t\t\t\t\t\t\treturn null;\r\n
\r\n
\t\t\t\t\t\t\treturn this[sAttrName];\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tsetAttr : function ( sAttrName , attrVal )\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\tif ( !sAttrName || !attrVal )\r\n
\t\t\t\t\t\t\t\treturn null;\r\n
\r\n
\t\t\t\t\t\t\tthis[sAttrName] = attrVal;\r\n
\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tremAttr : function ( sAttrName )\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\tif ( !sAttrName )\r\n
\t\t\t\t\t\t\t\treturn null;\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tvar singleCaller = function ( sMethod,args ) {\r\n
\t\t\t\t\t\tfor ( var i=0, l=this.length; i<l ; i++ ){\r\n
\t\t\t\t\t\t\tvar oItem = mergeObjs( single, this[i] );\r\n
\t\t\t\t\t\t\toItem[sMethod].apply(this[i],args);\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t};\r\n
\r\n
\r\n
\t\t\t\t\tvar collection = {\r\n
\r\n
\t\t\t\t\t\taddClass \t: function ( sClassName ){\r\n
\t\t\t\t\t\t\tsingleCaller.call(this, "addClass", [sClassName])\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tremoveClass \t: function ( sClassName ) {\r\n
\t\t\t\t\t\t\tsingleCaller.call(this, "removeClass", [sClassName])\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tsetStyle\t\t: function ( oStyles ) {\r\n
\t\t\t\t\t\t\tsingleCaller.call(this, "setStyle", [oStyles])\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tbindOnclick\t\t: function ( f ) {\r\n
\t\t\t\t\t\t\tsingleCaller.call(this, "bindOnclick", [f])\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\t\tbindOnchange\t: function ( f ) {\r\n
\t\t\t\t\t\t\tsingleCaller.call(this, "bindOnchange", [f])\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t},\r\n
\r\n
\t\t\t\t\t\tforEach : function ( fTodo ) {\r\n
\t\t\t\t\t\t\t//el,i\r\n
\t\t\t\t\t\t\tfor (var i=0, l=this.length; i<l ; i++){\r\n
\t\t\t\t\t\t\t\tfTodo.apply(this[i], [this[i],i ]);\r\n
\t\t\t\t\t\t\t}\r\n
\t\t\t\t\t\t\treturn this;\r\n
\t\t\t\t\t\t}\r\n
\r\n
\t\t\t\t\t};\r\n
\r\n
\r\n
\r\n
\t\t\t\t\tthis.byClass = function( sClassName ){\r\n
\t\t\t\t\t\tvar o = getElementsByClassName(document, sClassName );\r\n
\t\t\t\t\t\treturn o ? mergeObjs( collection, o ) : o;\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tthis.byId = function( sId ){\r\n
\t\t\t\t\t\tvar o = document.getElementById( sId );\r\n
\t\t\t\t\t\treturn o ? mergeObjs( single, o ) : o;\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t\tthis.gup = function ( name ){\r\n
\t\t\t\t        name = name.replace( /[\\[]/, \'\\\\\\[\' ).replace( /[\\]]/, \'\\\\\\]\' ) ;\r\n
\t\t\t\t        var regexS = \'[\\\\?&]\' + name + \'=([^&#]*)\' ;\r\n
\t\t\t\t        var regex = new RegExp( regexS ) ;\r\n
\t\t\t\t        var results = regex.exec( window.location.href ) ;\r\n
\r\n
\t\t\t\t        if( results == null )\r\n
\t\t\t\t            return \'\' ;\r\n
\t\t\t\t        else\r\n
\t\t\t\t            return results[ 1 ] ;\r\n
\t\t\t\t\t};\r\n
\t\t\t\t\tthis.wrap = function ( o ) {\r\n
\t\t\t\t\t\treturn o ? mergeObjs( single, o ) : o;\r\n
\t\t\t\t\t};\r\n
\t\t\t\t\tthis.forEach = function ( oScope, fTodo ){\r\n
\t\t\t\t\t\tcollection.forEach.apply( oScope,[fTodo] );\r\n
\t\t\t\t\t};\r\n
\r\n
\t\t\t\t };\r\n
\r\n
\r\n
\r\n
\t\t\t// Add the dialog tabs.\r\n
\t\t\ttabs[0] == 1 && dialog.AddTab( \'options\', \'Options\' ) ;\r\n
\t\t\ttabs[1] == 1 && dialog.AddTab( \'langs\', \'Languages\' ) ;\r\n
\t\t\ttabs[2] == 1 && dialog.AddTab( \'dictionary\', \'Dictionary\' ) ;\r\n
\t\t\ttabs[3] == 1 && dialog.AddTab( \'about\', \'About\' ) ;\r\n
\r\n
\t\t\t// Function called when a dialog tab is selected.\r\n
\t\t\tfunction OnDialogTabChange( tabCode )\r\n
\t\t\t{\r\n
\t\t\t\tShowE(\'inner_options\'\t, ( tabCode == \'options\' ) ) ;\r\n
\t\t\t\tShowE(\'inner_langs\'\t, ( tabCode == \'langs\' ) ) ;\r\n
\t\t\t\tShowE(\'inner_dictionary\'\t\t, ( tabCode == \'dictionary\' ) ) ;\r\n
\t\t\t\tShowE(\'inner_about\'\t, ( tabCode == \'about\' ) ) ;\r\n
\t\t\t}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\t\t\twindow.onload = function()\r\n
\t\t\t{\r\n
\t\t\t\t// Things to do when the page is loaded.\r\n
\r\n
\t\t\t\tif ( document.location.search.length )\r\n
\t\t\t\t\tdialog.SetSelectedTab( document.location.search.substr(1) ) ;\r\n
\r\n
\t\t\t\tdialog.SetOkButton( true ) ;\r\n
\r\n
\r\n
\t                if (!scayt) throw "SCAYT is undefined";\r\n
\t                if (!scayt_control) throw "SCAYT_CONTROL is undefined";\r\n
\r\n
\t\t\t\t\t// show alowed tabs\r\n
\t\t\t\t\ttabs = scayt_control.uiTags || [1,1,1,0];\r\n
\r\n
\r\n
\t\t\t\t\tsLang = scayt_control.getLang();\r\n
\t                fckLang = "en";\r\n
\t\t\t\t\toptions = scayt_control.option();\r\n
\t\t\t\t\t// apply captions\r\n
\t\t\t\t\tscayt.getCaption( fckLang, function( caps )\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\t//console.info( "scayt.getCaption runned" )\r\n
\t\t\t\t\t\tcaptions = caps;\r\n
\t\t\t\t\t\tapllyCaptions();\r\n
\t\t\t\t\t\t//lang_list = scayt.getLangList();\r\n
\t\t                lang_list = scayt.getLangList() ;//|| {ltr: {"en_US" : "English","en_GB" : "British English","pt_BR" : "Brazilian Portuguese","da_DK" : "Danish","nl_NL" : "Dutch","en_CA" : "English Canadian","fi_FI" : "Finnish","fr_FR" : "French","fr_CA" : "French Canadian","de_DE" : "German","el_GR" : "Greek","hu_HU" : "Hungarian","it_IT" : "Italian","nb_NO" : "Norwegian","pl_PL" : "Polish","pt_PT" : "Portuguese","ru_RU" : "Russian","es_ES" : "Spanish","sv_SE" : "Swedish","tr_TR" : "Turkish","uk_UA" : "Ukrainian","cy_GB" : "Welsh"},rtl: {"ar_EG" : "Arabic"}};\r\n
\r\n
\r\n
\r\n
\r\n
\t\t                // ** animate options\r\n
\t\t                get.byClass("_scayt_option").forEach(function(el,i){\r\n
\r\n
\t\t\t\t\t\t\tif (\'undefined\' != typeof(options[el.name])) {\r\n
\t\t                        // *** set default values\r\n
\r\n
\t\t                        if ( 1 == options[ el.name ] ){\r\n
\t\t                           //el.setAttribute("checked","true");\r\n
\t\t\t\t\t\t\t\t   get.wrap(el).setAttr("checked" ,true)\r\n
\t\t\t\t\t\t\t\t   //document.all_options[el.name].checked = "true";\r\n
\t\t\t\t\t\t\t\t   //el.checked = true;\r\n
\t\t\t\t\t\t\t\t   //alert( options[ dojo.attr(el ,\'name\') ] + " el " )\r\n
\t\t                        }\r\n
\t\t\t\t\t\t\t\t//console.info(options)\r\n
\t\t                        // *** bind events\r\n
\t\t                        get.wrap(el).bindOnclick( function(ev){\r\n
\r\n
\t\t\t\t\t\t\t\t\tvar that = get.wrap(this);\r\n
\t\t\t\t\t\t\t\t\tvar isCheck = that.getAttr("checked");\r\n
\t\t\t\t\t\t\t\t\t//console.info(isCheck)\r\n
\t\t                            if ( isCheck == false ) {\r\n
\r\n
\t\t\t\t\t\t\t\t\t\t//that.setAttr("checked",false);\r\n
\t\t\t\t\t\t\t\t\t\toptions[ this.name ] = 0;\r\n
\t\t                            }else{\r\n
\t\t                                //that.setAttr("checked",true);\r\n
\t\t\t\t\t\t\t\t\t\toptions[ this.name ] = 1;\r\n
\t\t                            }\r\n
\t\t\t\t\t\t\t\t\t//console.info(options)\r\n
\t\t                        });\r\n
\t\t                    }\r\n
\t\t                });\r\n
\r\n
\r\n
\t\t                // * Create languages tab\r\n
\t\t                // ** convert langs obj to array\r\n
\t\t                var lang_arr = [];\r\n
\r\n
\t\t                for (var k in lang_list.rtl){\r\n
\t\t                    // find curent lang\r\n
\t\t                    if ( k == sLang)\r\n
\t\t                        chosed_lang = lang_list.rtl[k] + "::" + k;\r\n
\t\t                    lang_arr[lang_arr.length] = lang_list.rtl[k] + "::" + k;\r\n
\r\n
\t\t                }\r\n
\t\t                for (var k in lang_list.ltr){\r\n
\t\t                     // find curent lang\r\n
\t\t                     if ( k == sLang)\r\n
\t\t                        chosed_lang = lang_list.ltr[k] + "::" + k;\r\n
\t\t                    lang_arr[lang_arr.length] = lang_list.ltr[k] + "::" + k;\r\n
\t\t                }\r\n
\t\t                lang_arr.sort();\r\n
\r\n
\t\t                // ** find lang containers\r\n
\r\n
\t\t                var lcol = get.byId("lcolid");\r\n
\t\t                var rcol = get.byId("rcolid");\r\n
\t\t                // ** place langs in DOM\r\n
\r\n
\t\t                get.forEach(lang_arr , function( l , i ){\r\n
\r\n
\t\t\t\t\t\t\t//console.info( l,i );\r\n
\r\n
\t\t\t\t\t\t\tvar l_arr = l.split(\'::\');\r\n
\t\t                    var l_name = l_arr[0];\r\n
\t\t                    var l_code = l_arr[1];\r\n
\t\t                    var row = document.createElement(\'div\');\r\n
\t\t                    row.id = l_code;\r\n
\t\t                    row.className = "li";\r\n
\t\t                    // split langs on half\r\n
\t\t                    var col = ( i < lang_arr.length/2 ) ? lcol:rcol ;\r\n
\r\n
\t\t                    // append row\r\n
\t\t                    //console.dir( col )\r\n
\t\t                    col.appendChild(row);\r\n
\t\t                    var row_dom = get.byId( l_code )\r\n
\t\t                    row_dom.innerHTML = l_name;\r\n
\r\n
\t\t                    var checkActiveLang = function( id ){\r\n
\t\t                        return chosed_lang.split("::")[1] == id;\r\n
\t\t                    };\r\n
\t\t                    // bind click\r\n
\t\t                    row_dom.bindOnclick(function(ev){\r\n
\r\n
\t\t                        if ( checkActiveLang(this.id) ) return false;\r\n
\t\t                        var elId = this.id;\r\n
\t\t\t\t\t\t\t\tget.byId(this.id)\r\n
\t                            \t.addClass("Button")\r\n
\t                            \t.removeClass("DarkBackground");\r\n
\r\n
\t\t                        window.setTimeout( function (){ get.byId(elId).setStyle({opacity:"0.5",cursor:"no-drop"});  } ,300 );\r\n
\r\n
\t\t                        get.byId(chosed_lang.split("::")[1])\r\n
\t\t                            .addClass("DarkBackground")\r\n
\t\t                            .removeClass("Button")\r\n
\t\t                            .setStyle({opacity:"1",cursor:"pointer"});\r\n
\r\n
\t\t                        chosed_lang = this.innerHTML + "::" + this.id;\r\n
\t\t                        return true;\r\n
\t\t                    })\r\n
\t\t\t\t\t\t\t.setStyle({\r\n
\t\t                        cursor:"pointer"\r\n
\t\t                    });\r\n
\t\t                    // select current lang\r\n
\t\t                    if (l == chosed_lang)\r\n
\t\t                        row_dom.addClass("Button").setStyle({opacity:"0.5",cursor:"no-drop"});\r\n
\t\t                    else\r\n
\t\t                        row_dom.addClass("DarkBackground").setStyle({opacity:"1"});\r\n
\r\n
\t\t                });\r\n
\t\t\t\t\t\t// * user dictionary\r\n
\t\t\t\t\t\tif ( userDicActive ){\r\n
\t\t\t\t\t\t\tinitUserDictionary()\r\n
\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t});\r\n
\r\n
\r\n
\r\n
\t\t\t}\r\n
\r\n
\r\n
\r\n
\r\n
\t\t\tvar buttons = [ \'dic_create\',\'dic_delete\',\'dic_rename\',\'dic_restore\' ];\r\n
\t\t\tvar labels  = [ \'mixedCase\',\'mixedWithDigits\',\'allCaps\',\'ignoreDomainNames\' ];\r\n
\r\n
\r\n
\t\t\tfunction apllyCaptions ( )\r\n
\t\t\t{\r\n
\r\n
\t\t\t\t// fill tabs headers\r\n
\t\t\t\t// add missing captions\r\n
\r\n
\t\t\t\tget.byClass("PopupTab").forEach(function(el,i){\r\n
\r\n
\t\t\t\t\tif ( tabs[i] == 1 ){\r\n
\t\t\t\t\t\tel.style.display = "block";\r\n
\t\t\t\t\t}\r\n
\t\t\t\t\tel.innerHTML = captions[\'tab_\'+el.id];\r\n
\r\n
\t\t\t\t});\r\n
\r\n
\t\t\t\t// Fill options labels.\r\n
\t\t\t\tfor ( i in labels )\r\n
\t\t\t\t{\r\n
\t\t\t\t\tvar label = \'label_\' + labels[ i ],\r\n
\t\t\t\t\t\tlabelElement = document.getElementById( label );\r\n
\r\n
\t\t\t\t\tif (  \'undefined\' != typeof labelElement\r\n
\t\t\t\t\t   && \'undefined\' != typeof captions[ label ] && captions[ label ] !== ""\r\n
\t\t\t\t\t   && \'undefined\' != typeof options[labels[ i ]] )\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\tlabelElement.innerHTML = captions[ label ];\r\n
\t\t\t\t\t\tvar labelParent = labelElement.parentNode;\r\n
\t\t\t\t\t\tlabelParent.style.display = "block";\r\n
\t\t\t\t\t}\r\n
\t\t\t\t}\r\n
\t\t\t\t// fill dictionary section\r\n
\t\t\t\tfor ( var i in buttons )\r\n
\t\t\t\t{\r\n
\t\t\t\t\tvar button = buttons[ i ];\r\n
\t\t\t\t\tget.byId( button ).innerHTML = \'<span>\' + captions[ \'button_\' + button]  +\'</span>\' ;\r\n
\t\t\t\t}\r\n
\t\t\t\tget.byId("dname").innerHTML = captions[\'label_dname\'];\r\n
\t\t\t\tget.byId( \'dic_info\' ).innerHTML = captions[ \'dic_info\' ];\r\n
\r\n
\t\t\t\t// fill about tab\r\n
\t\t\t\tvar about = \'<p>\' + captions[ \'about_throwt_image\' ] + \'</p>\'+\r\n
\t\t\t\t\t\'<p>\' + captions[ \'version\' ]  + scayt.version.toString() + \'</p>\' +\r\n
\t\t\t\t\t\'<p>\' + captions[ \'about_throwt_copy\' ] + \'</p>\';\r\n
\r\n
\t\t\t\tget.byId( \'scayt_about\' ).innerHTML = about;\r\n
\r\n
\t\t\t}\r\n
\r\n
\r\n
\t\t\tfunction initUserDictionary () {\r\n
\r\n
\t\t\t\tscayt.getNameUserDictionary(\r\n
\t\t\t\t\tfunction( o )\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\tvar dic_name = o.dname;\r\n
\t\t\t\t\t\tif ( dic_name )\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\tget.byId( \'dic_name\' ).value = dic_name;\r\n
\t\t\t\t\t\t\tdisplay_dic_buttons( dic_buttons[1] );\r\n
\t\t\t\t\t\t}\r\n
\t\t\t\t\t\telse\r\n
\t\t\t\t\t\t\tdisplay_dic_buttons( dic_buttons[0] );\r\n
\r\n
\t\t\t\t\t},\r\n
\t\t\t\t\tfunction ()\r\n
\t\t\t\t\t{\r\n
\t\t\t\t\t\tget.byId( \'dic_name\' ).value("");\r\n
\t\t\t\t\t\tdic_error_message(captions["err_dic_enable"] || "Used dictionary are unaveilable now.")\r\n
\t\t\t\t\t}\r\n
\t\t\t\t);\r\n
\r\n
\t\t\t\tdic_success_message("");\r\n
\r\n
\t\t\t\t // ** bind event listeners\r\n
                get.byClass("button").bindOnclick(function( ){\r\n
\r\n
\t\t\t\t\t// get dic name\r\n
\t\t\t\t\tvar dic_name = get.byId(\'dic_name\').value ;\r\n
\t\t\t\t\t// check common dictionary rules\r\n
\t\t\t\t\tif (!dic_name) {\r\n
\t\t\t\t\t\tdic_error_message(" Dictionary name should not be empty. ");\r\n
\t\t\t\t\t\treturn false;\r\n
\t\t\t\t\t}\r\n
\t\t\t\t\t//apply handler\r\n
\t\t\t\t\twindow[this.id].apply( window, [this, dic_name, dic_buttons ] );\r\n
\r\n
\t\t\t\t\t//console.info( typeof window[this.id], window[this.id].calle )\r\n
\t\t\t\t\treturn false;\r\n
\t\t\t\t});\r\n
\r\n
\t\t\t}\r\n
\r\n
\t\t\tdic_create = function( el, dic_name , dic_buttons )\r\n
\t\t\t{\r\n
\t\t\t\t// comma separated button\'s ids include repeats if exists\r\n
\t\t\t\tvar all_buttons = dic_buttons[0] + \',\' + dic_buttons[1];\r\n
\r\n
\t\t\t\tvar err_massage = captions["err_dic_create"];\r\n
\t\t\t\tvar suc_massage = captions["succ_dic_create"];\r\n
\t\t\t\t//console.info("--plugin ");\r\n
\r\n
\t\t\t\tscayt.createUserDictionary(dic_name,\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( "dic_create callback called with args" , arg );\r\n
\t\t\t\t\t\t\thide_dic_buttons ( all_buttons );\r\n
\t\t\t\t\t\t\tdisplay_dic_buttons ( dic_buttons[1] );\r\n
\t\t\t\t\t\t\tsuc_massage = suc_massage.replace("%s" , arg.dname );\r\n
\t\t\t\t\t\t\tdic_success_message (suc_massage);\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( "dic_create errorback called with args" , arg )\r\n
\t\t\t\t\t\t\terr_massage = err_massage.replace("%s" ,arg.dname );\r\n
\t\t\t\t\t\t\tdic_error_message ( err_massage + "( "+ (arg.message || "") +")");\r\n
\t\t\t\t\t\t});\r\n
\r\n
\t\t\t};\r\n
\r\n
\t\t\tdic_rename = function( el, dic_name , dic_buttons )\r\n
\t\t\t{\r\n
\t\t\t\t//\r\n
\t\t\t\t// try to rename dictionary\r\n
\t\t\t\t// @TODO: rename dict\r\n
\t\t\t\t//console.info ( captions["err_dic_rename"] )\r\n
\t\t\t\tvar err_massage = captions["err_dic_rename"] || "";\r\n
\t\t\t\tvar suc_massage = captions["succ_dic_rename"] || "";\r\n
\t\t\t\tscayt.renameUserDictionary(dic_name,\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( "dic_rename callback called with args" , arg );\r\n
\t\t\t\t\t\t\tsuc_massage = suc_massage.replace("%s" , arg.dname );\r\n
\t\t\t\t\t\t\tset_dic_name( dic_name );\r\n
\t\t\t\t\t\t\tdic_success_message ( suc_massage );\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( "dic_rename errorback called with args" , arg )\r\n
\t\t\t\t\t\t\terr_massage = err_massage.replace("%s" , arg.dname  );\r\n
\t\t\t\t\t\t\tset_dic_name( dic_name );\r\n
\t\t\t\t\t\t\tdic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );\r\n
\t\t\t\t\t\t});\r\n
\t\t\t};\r\n
\r\n
\t\t\tdic_delete = function ( el, dic_name , dic_buttons )\r\n
\t\t\t{\r\n
\t\t\t\tvar all_buttons = dic_buttons[0] + \',\' + dic_buttons[1];\r\n
\t\t\t\tvar err_massage = captions["err_dic_delete"];\r\n
\t\t\t\tvar suc_massage = captions["succ_dic_delete"];\r\n
\r\n
\t\t\t\t// try to delete dictionary\r\n
\t\t\t\t// @TODO: delete dict\r\n
\t\t\t\tscayt.deleteUserDictionary(\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( "dic_delete callback " , dic_name ,arg );\r\n
\t\t\t\t\t\t\tsuc_massage = suc_massage.replace("%s" , arg.dname );\r\n
\t\t\t\t\t\t\thide_dic_buttons ( all_buttons );\r\n
\t\t\t\t\t\t\tdisplay_dic_buttons ( dic_buttons[0] );\r\n
\t\t\t\t\t\t\tset_dic_name( "" ); // empty input field\r\n
\t\t\t\t\t\t\tdic_success_message( suc_massage );\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( " dic_delete errorback called with args" , arg )\r\n
\t\t\t\t\t\t\terr_massage = err_massage.replace("%s" , arg.dname );\r\n
\t\t\t\t\t\t\tdic_error_message(err_massage);\r\n
\t\t\t\t\t\t});\r\n
\t\t\t};\r\n
\r\n
\t\t\tdic_restore = dialog.dic_restore || function ( el, dic_name , dic_buttons )\r\n
\t\t\t{\r\n
\t\t\t\t// try to restore existing dictionary\r\n
\t\t\t\tvar all_buttons = dic_buttons[0] + \',\' + dic_buttons[1];\r\n
\t\t\t\tvar err_massage = captions["err_dic_restore"];\r\n
\t\t\t\tvar suc_massage = captions["succ_dic_restore"];\r\n
\r\n
\t\t\t\tscayt.restoreUserDictionary(dic_name,\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( "dic_restore callback called with args" , arg );\r\n
\t\t\t\t\t\t\tsuc_massage = suc_massage.replace("%s" , arg.dname );\r\n
\t\t\t\t\t\t\thide_dic_buttons ( all_buttons );\r\n
\t\t\t\t\t\t\tdisplay_dic_buttons(dic_buttons[1]);\r\n
\t\t\t\t\t\t\tdic_success_message( suc_massage );\r\n
\t\t\t\t\t\t},\r\n
\t\t\t\t\tfunction(arg)\r\n
\t\t\t\t\t\t{\r\n
\t\t\t\t\t\t\t//console.info( " dic_restore errorback called with args" , arg )\r\n
\t\t\t\t\t\t\terr_massage = err_massage.replace("%s" , arg.dname );\r\n
\t\t\t\t\t\t\tdic_error_message( err_massage );\r\n
\t\t\t\t\t\t});\r\n
\t\t\t};\r\n
\r\n
\t\t\tfunction dic_error_message( m )\r\n
\t\t\t{\r\n
\t\t\t\tif ( !m )\r\n
\t\t\t\t\treturn ;\r\n
\r\n
\t\t\t\tget.byId(\'dic_message\').innerHTML =  \'<span class="error">\' + m + \'</span>\' ;\r\n
\t\t\t}\r\n
\r\n
            function dic_success_message( m )\r\n
            {\r\n
\t\t\t\tif ( !m )\r\n
\t\t\t\t\treturn ;\r\n
\r\n
\t\t\t\tget.byId(\'dic_message\').innerHTML = \'<span class="success">\' + m + \'</span>\' ;\r\n
\t\t\t}\r\n
\r\n
\t\t\tfunction display_dic_buttons ( sIds ){\r\n
\t\t\t\tsIds = new String( sIds );\r\n
\t\t\t\tget.forEach( sIds.split(\',\'), function ( id,i) {\r\n
\t\t\t\t\tget.byId(id).setStyle({display:"inline"});\r\n
\t\t\t\t});\r\n
\t\t\t}\r\n
\t\t\tfunction hide_dic_buttons ( sIds ){\r\n
\t\t\t\tsIds = new String( sIds );\r\n
\t\t\t\tget.forEach( sIds.split(\',\'), function ( id,i) {\r\n
\t\t\t\t\tget.byId(id).setStyle({display:"none"});\r\n
\t\t\t\t});\r\n
\t\t\t}\r\n
\t\t\tfunction set_dic_name ( dic_name ) {\r\n
\t\t\t\tget.byId(\'dic_name\').value = dic_name;\r\n
\t\t\t}\r\n
\t\t\tfunction display_dic_tab () {\r\n
\t\t\t\tget.byId("dic_tab").style.display = "block";\r\n
\t\t\t}\r\n
\r\n
\t\t\tfunction Ok()\r\n
\t\t\t{\r\n
\t\t\t\t// Things to do when the Ok button is clicked.\r\n
\t\t\t\tvar c = 0;\r\n
\t\t\t    // set upp options if any was set\r\n
\t\t\t    var o = scayt_control.option();\r\n
\t\t\t\t//console.info(options)\r\n
\t\t\t    for ( var oN in options ) {\r\n
\r\n
\t\t\t        if ( o[oN] != options[oN] && c == 0){\r\n
\t\t\t\t\t\t//console.info( "set option " )\r\n
\t\t\t            scayt_control.option( options );\r\n
\t\t\t            c++;\r\n
\t\t\t        }\r\n
\t\t\t    }\r\n
\t\t\t    //setup languge if it was change\r\n
\t\t\t    var csLang = chosed_lang.split("::")[1];\r\n
\t\t\t    if ( csLang && sLang != csLang ){\r\n
\t\t\t        scayt_control.setLang( csLang );\r\n
\t\t\t\t\t//console.info(sLang+" -> "+csLang , scayt_control)\r\n
\t\t\t        c++;\r\n
\t\t\t    }\r\n
\r\n
\t\t\t    if ( c > 0 )  scayt_control.refresh();\r\n
\r\n
\t\t\t    return dialog.Cancel();\r\n
\r\n
\t\t\t}\r\n
\r\n
\t\t</script>\r\n
\t</head>\r\n
\t<body style="OVERFLOW: hidden" scroll="no">\r\n
\t\t<div class="tab_container" id="inner_options">\r\n
\r\n
           <ul id="scayt_options">\r\n
               <li class="_scayt_options">\r\n
                   <input class="_scayt_option" type="checkbox" value="0" name="allCaps" />\r\n
                   <label for="allCaps" id="label_allCaps"></label>\r\n
               </li>\r\n
               <li>\r\n
                   <input class="_scayt_option" type="checkbox" value="0" name="ignoreDomainNames" />\r\n
                   <label for="ignoreDomainNames" id="label_ignoreDomainNames"></label>\r\n
               </li>\r\n
               <li>\r\n
                   <input class="_scayt_option" type="checkbox" value="0" name="mixedCase" />\r\n
                   <label for="mixedCase" id="label_mixedCase"></label>\r\n
               </li>\r\n
               <li>\r\n
                   <input class="_scayt_option" type="checkbox" value="0" name="mixedWithDigits" />\r\n
                   <label for="mixedWithDigits" id="label_mixedWithDigits"></label>\r\n
               </li>\r\n
           </ul>\r\n
\t\t</div>\r\n
\t\t<div class="tab_container" id="inner_langs">\r\n
\r\n
\t\t   <div class="lcol" id="lcolid"></div>\r\n
           <div class="rcol" id="rcolid"></div>\r\n
\t\t</div>\r\n
\t\t<div class="tab_container" id="inner_dictionary">\r\n
\r\n
\t\t   <div id="dic_message"></div>\r\n
\t\t\t<div id="_off_dic_tab" class="dictionary" >\r\n
\t\t\t\t<div style="padding-left:10px;">\r\n
\t\t\t\t\t\t\t<label id="dname" for="dname"></label>\r\n
\t\t\t\t\t\t\t<input type="text" size="14" maxlength="15" value="" id="dic_name" name="dic_name"/>\r\n
\t\t\t\t\t\t</div>\r\n
\t\t\t\t\t\t<div class="dic_buttons">\r\n
\t\t\t\t\t\t\t<a href="#" id="dic_create" class="button">  </a>\r\n
\t\t\t\t\t\t\t<a href="#" id="dic_delete" class="button">  </a>\r\n
\t\t\t\t\t\t\t<a href="#" id="dic_rename" class="button">  </a>\r\n
\t\t\t\t\t\t\t<a href="#" id="dic_restore" class="button">  </a>\r\n
\t\t\t\t\t\t</div>\r\n
\r\n
\t\t\t\t\t\t<div id="dic_info"></div>\r\n
\r\n
\t\t\t</div>\r\n
\t\t</div>\r\n
\t\t<div id="inner_about" class="tab_container">\r\n
\t\t   <div id="scayt_about"></div>\r\n
\t\t</div>\r\n
\t</body>\r\n
</html>\r\n


]]></string> </value>
        </item>
        <item>
            <key> <string>precondition</string> </key>
            <value> <string></string> </value>
        </item>
        <item>
            <key> <string>size</string> </key>
            <value> <int>23819</int> </value>
        </item>
        <item>
            <key> <string>title</string> </key>
            <value> <string></string> </value>
        </item>
      </dictionary>
    </pickle>
  </record>
</ZopeData>
