text: ﻿/*
   Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
   For licensing, see LICENSE.html or http://ckeditor.com/license
   */
  
  (function() {
    var a = CKEDITOR.document;
    CKEDITOR.dialog.add('templates', function(b) {
      function c(k, l) {
        k.setHtml('');
        for (var m = 0,n = l.length; m < n; m++) {
          var o = CKEDITOR.getTemplates(l[m]),p = o.imagesPath,q = o.templates,r = q.length;
          for (var s = 0; s < r; s++) {
            var t = q[s],u = d(t, p);
            u.setAttribute('aria-posinset', s + 1);
            u.setAttribute('aria-setsize', r);
            k.append(u);
          }
        }
      }
  
      ;
      function d(k, l) {
        var m = CKEDITOR.dom.element.createFromHtml('<a href="javascript:void(0)" tabIndex="-1" role="option" ><div class="cke_tpl_item"></div></a>'),n = '<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';
        if (k.image && l)n += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl(l + k.image) + '"' + (CKEDITOR.env.ie6Compat ? ' onload="this.width=this.width"' : '') + ' alt="" title=""></td>';
        n += '<td style="white-space:normal;"><span class="cke_tpl_title">' + k.title + '</span><br/>';
        if (k.description)n += '<span>' + k.description + '</span>';
        n += '</td></tr></table>';
        m.getFirst().setHtml(n);
        m.on('click', function() {
          e(k.html);
        });
        return m;
      }
  
      ;
      function e(k) {
        var l = CKEDITOR.dialog.getCurrent(),m = l.getValueOf('selectTpl', 'chkInsertOpt');
        if (m) {
          b.on('contentDom', function(n) {
            n.removeListener();
            l.hide();
            var o = new CKEDITOR.dom.range(b.document);
            o.moveToElementEditStart(b.document.getBody());
            o.select(1);
            setTimeout(function() {
              b.fire('saveSnapshot');
            }, 0);
          });
          b.fire('saveSnapshot');
          b.setData(k);
        } else {
          b.insertHtml(k);
          l.hide();
        }
      }
  
      ;
      function f(k) {
        var l = k.data.getTarget(),m = g.equals(l);
        if (m || g.contains(l)) {
          var n = k.data.getKeystroke(),o = g.getElementsByTag('a'),p;
          if (o) {
            if (m)p = o.getItem(0); else switch (n) {
              case 40:
                p = l.getNext();
                break;
              case 38:
                p = l.getPrevious();
                break;
              case 13:
              case 32:
                l.fire('click');
            }
            if (p) {
              p.focus();
              k.data.preventDefault();
            }
          }
        }
      }
  
      ;
      CKEDITOR.skins.load(b, 'templates');
      var g,h = 'cke_tpl_list_label_' + CKEDITOR.tools.getNextNumber(),i = b.lang.templates,j = b.config;
      return{title:b.lang.templates.title,minWidth:CKEDITOR.env.ie ? 440 : 400,minHeight:340,contents:[
        {id:'selectTpl',label:i.title,elements:[
          {type:'vbox',padding:5,children:[
            {id:'selectTplText',type:'html',html:'<span>' + i.selectPromptMsg + '</span>'},
            {id:'templatesList',type:'html',focus:true,html:'<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + h + '">' + '<div class="cke_tpl_loading"><span></span></div>' + '</div>' + '<span class="cke_voice_label" id="' + h + '">' + i.options + '</span>'},
            {id:'chkInsertOpt',type:'checkbox',label:i.insertOption,'default':j.templates_replaceContent}
          ]}
        ]}
      ],buttons:[CKEDITOR.dialog.cancelButton],onShow:function() {
        var k = this.getContentElement('selectTpl', 'templatesList');
        g = k.getElement();
        CKEDITOR.loadTemplates(j.templates_files, function() {
          var l = (j.templates || 'default').split(',');
          if (l.length) {
            c(g, l);
            k.focus();
          } else g.setHtml('<div class="cke_tpl_empty"><span>' + i.emptyListMsg + '</span>' + '</div>');
        });
        this._.element.on('keydown', f);
      },onHide:function() {
        this._.element.removeListener('keydown', f);
      }};
    });
  })();
  