/*
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/

CKEDITOR.dialog.add('specialchar',function(a){var b,c=function(i){var j,k;if(i.data)j=i.data.getTarget();else j=new CKEDITOR.dom.element(i);if(j.getName()=='a'&&(k=j.getChild(0).getHtml())){j.removeClass('cke_light_background');b.hide();a.insertHtml(k);}},d=CKEDITOR.tools.addFunction(c),e,f=function(i,j){var k;j=j||i.data.getTarget();if(j.getName()=='span')j=j.getParent();if(j.getName()=='a'&&(k=j.getChild(0).getHtml())){if(e)g(null,e);var l=b.getContentElement('info','htmlPreview').getElement();b.getContentElement('info','charPreview').getElement().setHtml(k);l.setHtml(CKEDITOR.tools.htmlEncode(k));j.getParent().addClass('cke_light_background');e=j;}},g=function(i,j){j=j||i.data.getTarget();if(j.getName()=='span')j=j.getParent();if(j.getName()=='a'){b.getContentElement('info','charPreview').getElement().setHtml('&nbsp;');b.getContentElement('info','htmlPreview').getElement().setHtml('&nbsp;');j.getParent().removeClass('cke_light_background');e=undefined;}},h=CKEDITOR.tools.addFunction(function(i){i=new CKEDITOR.dom.event(i);var j=i.getTarget(),k,l,m=i.getKeystroke();switch(m){case 39:if(k=j.getParent().getNext()){l=k.getChild(0);if(l.type==1){l.focus();g(null,j);f(null,l);}}i.preventDefault();break;case 37:if(k=j.getParent().getPrevious()){l=k.getChild(0);l.focus();g(null,j);f(null,l);}i.preventDefault();break;case 38:if(k=j.getParent().getParent().getPrevious()){l=k.getChild([j.getParent().getIndex(),0]);l.focus();g(null,j);f(null,l);}i.preventDefault();break;case 40:if(k=j.getParent().getParent().getNext()){l=k.getChild([j.getParent().getIndex(),0]);if(l&&l.type==1){l.focus();g(null,j);f(null,l);}}i.preventDefault();break;case 32:c({data:i});i.preventDefault();break;case 9:if(k=j.getParent().getNext()){l=k.getChild(0);if(l.type==1){l.focus();g(null,j);f(null,l);i.preventDefault(true);}else g(null,j);}else if(k=j.getParent().getParent().getNext()){l=k.getChild([0,0]);if(l&&l.type==1){l.focus();g(null,j);f(null,l);i.preventDefault(true);}else g(null,j);}break;case CKEDITOR.SHIFT+9:if(k=j.getParent().getPrevious()){l=k.getChild(0);l.focus();g(null,j);f(null,l);i.preventDefault(true);}else if(k=j.getParent().getParent().getPrevious()){l=k.getLast().getChild(0);l.focus();g(null,j);f(null,l);i.preventDefault(true);}else g(null,j);break;default:return;}});return{title:a.lang.specialChar.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,chars:['!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','&lt;','=','&gt;','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','&euro;','&lsquo;','&rsquo;','&rsquo;','&ldquo;','&rdquo;','&ndash;','&mdash;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;','&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&uuml;','&yacute;','&thorn;','&yuml;','&OElig;','&oelig;','&#372;','&#374','&#373','&#375;','&sbquo;','&#8219;','&bdquo;','&hellip;','&trade;','&#9658;','&bull;','&rarr;','&rArr;','&hArr;','&diams;','&asymp;'],onLoad:function(){var i=this.definition.charColumns,j=this.definition.chars,k=['<table style="width: 320px; height: 100%; border-collapse: separate;" align="center" cellspacing="2" cellpadding="2" border="0">'],l=0;
while(l<j.length){k.push('<tr>');for(var m=0;m<i;m++,l++){if(j[l])k.push('<td class="cke_dark_background" style="cursor: default"><a href="javascript: void(0);" style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="',j[l].replace(/&/g,'&amp;'),'" onkeydown="CKEDITOR.tools.callFunction( '+h+', event, this )"'+' onclick="CKEDITOR.tools.callFunction('+d+', this); return false;"'+' tabindex="-1">'+'<span style="margin: 0 auto;cursor: inherit">'+j[l]+'</span></a>');else k.push('<td class="cke_dark_background">&nbsp;');k.push('</td>');}k.push('</tr>');}k.push('</tbody></table>');this.getContentElement('info','charContainer').getElement().setHtml(k.join(''));},contents:[{id:'info',label:a.lang.common.generalTab,title:a.lang.common.generalTab,padding:0,align:'top',elements:[{type:'hbox',align:'top',widths:['320px','90px'],children:[{type:'html',id:'charContainer',html:'',onMouseover:f,onMouseout:g,focus:function(){var i=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){i.focus();f(null,i);});},onShow:function(){var i=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){i.focus();f(null,i);});},onLoad:function(i){b=i.sender;}},{type:'hbox',align:'top',widths:['100%'],children:[{type:'vbox',align:'top',children:[{type:'html',html:'<div></div>'},{type:'html',id:'charPreview',style:"border:1px solid #eeeeee;background-color:#EAEAD1;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div>&nbsp;</div>'},{type:'html',id:'htmlPreview',style:"border:1px solid #eeeeee;background-color:#EAEAD1;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div>&nbsp;</div>'}]}]}]}]}]};});
