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

(function(){function a(f){if(!f||f.type!=CKEDITOR.NODE_ELEMENT||f.getName()!='form')return[];var g=[],h=['style','className'];for(var i=0;i<h.length;i++){var j=h[i],k=f.$.elements.namedItem(j);if(k){var l=new CKEDITOR.dom.element(k);g.push([l,l.nextSibling]);l.remove();}}return g;};function b(f,g){if(!f||f.type!=CKEDITOR.NODE_ELEMENT||f.getName()!='form')return;if(g.length>0)for(var h=g.length-1;h>=0;h--){var i=g[h][0],j=g[h][1];if(j)i.insertBefore(j);else i.appendTo(f);}};function c(f,g){var h=a(f),i={},j=f.$;if(!g){i['class']=j.className||'';j.className='';}i.inline=j.style.cssText||'';if(!g)j.style.cssText='position: static; overflow: visible';b(h);return i;};function d(f,g){var h=a(f),i=f.$;if('class' in g)i.className=g['class'];if('inline' in g)i.style.cssText=g.inline;b(h);};function e(f,g){return function(){var h=f.getViewPaneSize();g.resize(h.width,h.height,null,true);};};CKEDITOR.plugins.add('maximize',{init:function(f){var g=f.lang,h=CKEDITOR.document,i=h.getWindow(),j,k,l,m=e(i,f),n=CKEDITOR.TRISTATE_OFF;f.addCommand('maximize',{modes:{wysiwyg:1,source:1},editorFocus:false,exec:function(){var B=this;var o=f.container.getChild([0,0]),p=f.getThemeSpace('contents');if(f.mode=='wysiwyg'){var q=f.getSelection();j=q&&q.getRanges();k=i.getScrollPosition();}else{var r=f.textarea.$;j=!CKEDITOR.env.ie&&[r.selectionStart,r.selectionEnd];k=[r.scrollLeft,r.scrollTop];}if(B.state==CKEDITOR.TRISTATE_OFF){i.on('resize',m);l=i.getScrollPosition();var s=f.container;while(s=s.getParent()){s.setCustomData('maximize_saved_styles',c(s));s.setStyle('z-index',f.config.baseFloatZIndex-1);}p.setCustomData('maximize_saved_styles',c(p,true));o.setCustomData('maximize_saved_styles',c(o,true));if(CKEDITOR.env.ie)h.$.documentElement.style.overflow=h.getBody().$.style.overflow='hidden';else h.getBody().setStyles({overflow:'hidden',width:'0px',height:'0px'});i.$.scrollTo(0,0);var t=i.getViewPaneSize();o.setStyle('position','absolute');o.$.offsetLeft;o.setStyles({'z-index':f.config.baseFloatZIndex-1,left:'0px',top:'0px'});f.resize(t.width,t.height,null,true);var u=o.getDocumentPosition();o.setStyles({left:-1*u.x+'px',top:-1*u.y+'px'});o.addClass('cke_maximized');}else if(B.state==CKEDITOR.TRISTATE_ON){i.removeListener('resize',m);var v=[p,o];for(var w=0;w<v.length;w++){d(v[w],v[w].getCustomData('maximize_saved_styles'));v[w].removeCustomData('maximize_saved_styles');}s=f.container;while(s=s.getParent()){d(s,s.getCustomData('maximize_saved_styles'));s.removeCustomData('maximize_saved_styles');
}i.$.scrollTo(l.x,l.y);o.removeClass('cke_maximized');f.fire('resize');}B.toggleState();var x=B.uiItems[0],y=B.state==CKEDITOR.TRISTATE_OFF?g.maximize:g.minimize,z=f.element.getDocument().getById(x._.id);z.getChild(1).setHtml(y);z.setAttribute('title',y);z.setAttribute('href','javascript:void("'+y+'");');if(f.mode=='wysiwyg'){if(j){f.getSelection().selectRanges(j);var A=f.getSelection().getStartElement();A&&A.scrollIntoView(true);}else i.$.scrollTo(k.x,k.y);}else{if(j){r.selectionStart=j[0];r.selectionEnd=j[1];}r.scrollLeft=k[0];r.scrollTop=k[1];}j=k=null;n=B.state;},canUndo:false});f.ui.addButton('Maximize',{label:g.maximize,command:'maximize'});f.on('mode',function(){f.getCommand('maximize').setState(n);},null,null,100);}});})();
