| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/awebpaca/lessarmoudes/components/com_jce/editor/tiny_mce/plugins/imgmanager_ext/js/ |
Upload File : |
/* Image Manager Extended - 2.0.26 | 19 July 2014 | http://www.joomlacontenteditor.net | Copyright (C) 2006 - 2014 Ryan Demmer. All rights reserved | GNU/GPL Version 2 - http://www.gnu.org/licenses/gpl-2.0.html */
(function($){var $tmp=document.createElement('div'),prefixes=['-ms-','-moz-','-webkit-','-o-',''];$.support.Blob=!!window.Blob;$.support.filter=(function(){if(document.documentMode||window.opera){return false;}
$tmp.style.cssText=prefixes.join('filter:grayscale(1); ');return!!$tmp.style.length;})();$.fn.cssFilter=function(o){var prefixes=['','-moz-','-webkit-',''],matrix=[],filter=o.filter||'',amount=o.amount||1;if(!filter){return this;}
switch(filter){case'saturate':amount=(100+amount)/100;matrix[0]=0.213+0.787*amount;matrix[1]=0.715-0.715*amount;matrix[2]=1-(matrix[0]+matrix[1]);matrix[3]=matrix[4]=0;matrix[5]=0.213-0.213*amount;matrix[6]=0.715+0.285*amount;matrix[7]=1-(matrix[5]+matrix[6]);matrix[8]=matrix[9]=0;matrix[10]=0.213-0.213*amount;matrix[11]=0.715-0.715*amount;matrix[12]=1-(matrix[10]+matrix[11]);matrix[13]=matrix[14]=0;matrix[15]=matrix[16]=matrix[17]=matrix[19]=0;matrix[18]=1;break;case'brightness':amount=(amount/100)*0.66;break;case'blur':amount=amount/10+'px';break;}
$(this).attr('style',prefixes.join('filter'+':'+filter+'('+amount+'); '));if(!$(this).get(0).style.cssText){switch(filter){case'saturate':if(amount<1){filter='desaturate';}
break;case'brightness':amount=1+amount/0.66;if(amount<1){filter='darkness';}
break;}
$(this).css('filter','url(#'+filter+')');if(matrix.length){$('#'+filter+' feColorMatrix').attr('values',matrix.join(' '));}
if(filter=='brightness'||filter=='darkness'){$('feFuncR, feFuncG, feFuncB','#'+filter).attr('slope',amount);}}
return this;};$.fn.cssTransform=function(transform,amount){var keys=['transform','msTransform','Transform','WebkitTransform','OTransform'];this.each(function(){var n=$(this).get(0),transforms=[];switch(transform){case'flip':transform=(amount=='horizontal')?'scaleX':'scaleY';amount=-1;break;case'rotate':amount=amount+'deg';break;}
$.each(keys,function(o,s){var transforms=n.style[s]||[];if(transforms.length){transforms=transforms.split(' ');}
transforms.push(transform+'('+amount+')');n.style[s]=transforms.join(' ');});});return this;};function getRatio(o){function gcd(a,b){return(b==0)?a:gcd(b,a%b);}
var r=gcd(o.width,o.height);return(o.width/r)/(o.height/r);}
var EditorDialog={stack:[],settings:{resize_quality:80,save:$.noop},_setLoader:function(){var $loader=$('<div class="loading" />').appendTo('#editor-image');var $canvas=$('canvas','#editor-image');$('div.slider','#editor_effects').slider('disable');this.working=true;},_removeLoader:function(){$('div.loading','#editor-image').remove();$('div.slider','#editor_effects').slider('enable');this.working=false;},init:function(){var self=this;$.Plugin.init();$('#editor').removeClass('offleft');$(window).bind('resize',function(){self._resizeWin();});this.src=$.String.path(tinyMCEPopup.getWindowArg('base'),tinyMCEPopup.getWindowArg('src'));if(!this._validatePath(this.src)){$.Dialog.alert('Invalid image file');return false;}
$.extend(this.settings,{width:tinyMCEPopup.getWindowArg('width'),height:tinyMCEPopup.getWindowArg('height'),save:tinyMCEPopup.getWindowArg('save'),canvasResize:true});$('#editor-image').css({height:$('body').height()-$('#transform-tools').outerHeight(true)-40,width:Math.min(Math.max(640,Math.min(this.settings.width,1024)),$('body').width()-335)});$('div.ui-tabs-panel','#tabs').height($('#editor-image').outerHeight()-$('ul.ui-tabs-nav','#tabs').outerHeight()-50);this._setLoader();var img='<img />';if(window.ActiveXObject){img=new Image();}
var src=$.String.path($.Plugin.getURI(),this.src);$(img).attr('src',this._loadImage(src)).one('load',function(){var n=this;$(n).data('width',n.width).data('height',n.height).appendTo('#editor-image');$(n).canvas({width:n.width,height:n.height,onfilterprogress:function(e,n){if(n==1){self._removeLoader();}}});var canvas=$(n).canvas('getCanvas');$(canvas).insertAfter(n);self.position();self._createToolBox();self._createFX();self._removeLoader();}).hide();$('#transform_tab').accordion({collapsible:true,active:false,autoHeight:false,autoHeight:true,beforeActivate:function(e,ui){var action=$(ui.newHeader).data('action');self.reset(true);if(action){self._initTransform(action);}}});$('#tabs').tabs({'select':function(){self.reset(true);$('#transform_tab').accordion('activate',false);self._resetFX();}});$('button.save','#editor').button({disabled:true,icons:{primary:"ui-icon-circle-check"}}).click(function(e){self.save();e.preventDefault();});$('button.revert','#editor').button({disabled:true,icons:{primary:"ui-icon-circle-arrow-w"}}).click(function(e){self.revert(e);e.preventDefault();});$('button.undo','#editor').button({disabled:true,icons:{primary:"ui-icon-arrowreturnthick-1-w"}}).click(function(e){self.undo(e);e.preventDefault();});$('button.apply','#editor').button({icons:{primary:"ui-icon-check"}}).click(function(e){self.apply($(this).data('function'));e.preventDefault();});$('button.reset','#editor').button({disabled:true,icons:{primary:"ui-icon-closethick"}}).click(function(e){self._resetTransform($(this).data('function'));e.preventDefault();});},_createImageSlider:function(){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas');var cw=$(canvas).width();var ch=$(canvas).height();var iw=$img.data('width');var ih=$img.data('height');if(iw==cw&&ih==ch){$('div.ui-tabs-panel','#tabs').height($('div.ui-tabs-panel','#tabs').height()+30);return;}
var wd=(iw-cw)/100;var hd=(ih-ch)/100;var pw=$('#editor-image').width(),ph=$('#editor-image').height();$('#editor_image_slider').show().slider({min:1,max:100,step:1,start:function(){self.reset();$(canvas).css('position','static');},slide:function(event,ui){var nw=cw+ui.value*wd;var nh=ch+ui.value*hd;$(canvas).css({'width':nw,'height':nh,'top':(ph-nh)/2,'left':(pw-nw)/2});if(ui.value===0){$(canvas).css('position','relative');}}});},_createToolBox:function(){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas');var iw=canvas.width;var ih=canvas.height;var sw=$(canvas).width();var sh=$(canvas).height();$('#crop_presets option, #resize_presets option').each(function(){var v=$(this).val();if(v&&/[0-9]+x[0-9]+/.test(v)){v=v.split('x');var w=parseFloat(v[0]),h=parseFloat(v[1]);if(w>=$img.data('width')&&h>=$img.data('height')){$(this).remove();}}});$('#resize_presets').change(function(){var v=$(this).val();if(v){v=v.split('x');var w=parseFloat($.trim(v[0])),h=parseFloat($.trim(v[1]));$('#resize_width').val(w).data('tmp',w);$('#resize_height').val(h).data('tmp',h);var ratio=$('span.checkbox','#resize_constrain').is('.checked')?w/h:false;$(canvas).resize('setRatio',ratio);$(canvas).resize('setSize',w,h);}});$('#resize_presets').prepend('<option value="'+iw+'x'+ih+'" selected="selected">'+iw+' x '+ih+' ('+tinyMCEPopup.getLang('imgmanager_ext_dlg.original','Original')+')</option>');if(iw>sw&&ih>sh){$('#resize_presets').prepend('<option value="'+sw+'x'+sh+'" selected="selected">'+sw+' x '+sh+' ('+tinyMCEPopup.getLang('imgmanager_ext_dlg.display','Display')+')</option>');}
$('#resize_width').val(sw).data('tmp',sw).change(function(){var w=$(this).val(),$height=$('#resize_height');if($('span.checkbox','#resize_constrain').hasClass('checked')){var tw=$(this).data('tmp'),h=$height.val();var temp=((h/tw)*w).toFixed(0);$height.val(temp).data('tmp',temp);}
$(this).data('tmp',w);var ratio=$('span.checkbox','#resize_constrain').is('.checked')?w/$height.val():false;$(canvas).resize('setRatio',ratio);$(canvas).resize('setSize',w,$height.val());});$('#resize_height').val(sh).data('tmp',sh).change(function(){var h=$(this).val(),$width=$('#resize_width');if($('span.checkbox','#resize_constrain').hasClass('checked')){var th=$(this).data('tmp'),w=$width.val();var temp=((w/th)*h).toFixed(0);$width.val(temp).data('tmp',temp);}
$(this).data('tmp',h);var ratio=$('span.checkbox','#resize_constrain').is('.checked')?$width.val()/h:false;$(canvas).resize('setRatio',ratio);$(canvas).resize('setSize',$width.val(),h);});$('span.checkbox','#resize_constrain').click(function(){$(this).toggleClass('checked');var ratio=$(this).hasClass('checked')?({width:$('#resize_width').val(),height:$('#resize_height').val()}):false;$(canvas).resize('setConstrain',ratio);});$('#crop_width').val(sw).data('tmp',sw).change(function(){var w=$(this).val(),h=$('#crop_height').val(),x=$('#crop_x').val(),y=$('#crop_y').val()
var s={'width':w,'height':h,'x':x,'y':y};var ratio=s.width/s.height;if($('#crop_constrain').is(':checked')){$(canvas).crop('setRatio',ratio);}
$(canvas).crop('setArea',s);});$('#crop_height').val(sh).data('tmp',sh).change(function(){var h=$(this).val(),w=$('#crop_width').val(),x=$('#crop_x').val(),y=$('#crop_y').val();var s={'width':w,'height':h,'x':x,'y':y};var ratio=s.width/s.height;if($('#crop_constrain').is(':checked')){$(canvas).crop('setRatio',ratio);}
$(canvas).crop('setArea',s);});$('#crop_x').val(0).change(function(){var x=$(this).val(),w=$('#crop_width').val(),h=$('#crop_height').val(),y=$('#crop_y').val();var s={'width':w,'height':h,'x':x,'y':y};var ratio=s.width/s.height;if($('#crop_constrain').is(':checked')){$(canvas).crop('setRatio',ratio);}
$(canvas).crop('setArea',s);});$('#crop_y').val(0).change(function(){var y=$(this).val(),w=$('#crop_width').val(),h=$('#crop_height').val(),x=$('#crop_x').val();var s={'width':w,'height':h,'x':x,'y':y};var ratio=s.width/s.height;if($('#crop_constrain').is(':checked')){$(canvas).crop('setRatio',ratio);}
$(canvas).crop('setArea',s);});$('#crop_constrain').click(function(){$(this).toggleClass('checked');if($(this).is(':checked')){$('#crop_presets').change();}else{$(canvas).crop('setConstrain',false);}});$('#crop_presets').change(function(){var img=$img.get(0);var v=$(this).val();var s={width:img.width,height:img.height};$.extend(s,$(canvas).crop('getArea'));if(v.indexOf(':')!=-1){var r=v.split(':'),r1=parseInt($.trim(r[0])),r2=parseInt($.trim(r[1]));var ratio=r1/r2;if(r2>r1){ratio=r2/r1;}
if(s.width>s.height){if(r2>r1){ratio=r2/r1;}
s.height=Math.round(s.width/ratio);}else{s.width=Math.round(s.height/ratio);}}else{v=v.split('x');s.width=parseInt($.trim(v[0])),s.height=parseInt($.trim(v[1]));var ratio=s.width/s.height;}
if($('#crop_constrain').is(':checked')){$(canvas).crop('setRatio',ratio);}
$(canvas).crop('setArea',s);});if(iw>sw&&ih>sh){$('#crop_presets').prepend('<option value="'+sw+'x'+sh+'" selected="selected">'+sw+' x '+sh+' ('+tinyMCEPopup.getLang('imgmanager_ext_dlg.display','Display')+')</option>');}
$('#crop_presets').prepend('<option value="'+iw+'x'+ih+'" selected="selected">'+iw+' x '+ih+' ('+tinyMCEPopup.getLang('imgmanager_ext_dlg.original','Original')+')</option>');$('#transform-crop-cancel').click(function(){self.reset();});var dim=$.Plugin.sizeToFit($img.get(0),{width:85,height:85});$.each({'ninety_clockwise':90,'ninety_counter_clockwise':-90},function(k,v){var rotate=$img.clone().attr(dim).appendTo('#rotate_angle').wrap('<div/>').after('<span class="label">'+tinyMCEPopup.getLang('imgmanager_ext_dlg.'+k,k)+'</span>');var x=v;$(rotate).click(function(){x+=v;if(x>360||x<-360){x=v;}
$(this).attr('class','').addClass('rotate'+x);self.apply('rotate',v);}).addClass('rotate'+v).show();});$.each(['vertical','horizontal'],function(i,v){var flip=$img.clone().attr(dim).appendTo('#rotate_flip').wrap('<div/>').after('<span class="label">'+tinyMCEPopup.getLang('imgmanager_ext_dlg.'+v,v)+'</span>');$(flip).click(function(){$(this).toggleClass('flip-'+v);self.apply('flip',v);}).addClass('flip-'+v).show();});},_createFX:function(){var self=this,$img=$('img','#editor-image');$('#editor_effects').empty();if($.support.canvas){var dim=$.Plugin.sizeToFit($img.get(0),{width:70,height:70});$.each({'lighten':{amount:10,preview:50,fn:'brightness'},'darken':{amount:-10,preview:-50,fn:'brightness'},'desaturate':{amount:-10,preview:-50,fn:'saturate'},'saturate':{amount:10,preview:50,fn:'saturate'}},function(k,v){var canvas,fx=$img.clone().attr(dim).appendTo('#editor_effects').wrap('<div class="editor_effect"/>').after('<span class="label">'+tinyMCEPopup.getLang('imgmanager_ext_dlg.'+k,k)+'</span>').wrap('<span class="preview" />');if($.support.filter){$(fx).show().cssFilter({'filter':v.fn,'amount':v.preview});canvas=fx;}else{$(fx).canvas(dim).canvas(v.fn,v.preview);canvas=$(fx).canvas('getCanvas');$(canvas).insertAfter(fx);}
var controls=$('<div class="editor_effect_unit"><span class="minus">-</span><span class="plus">+</span><span class="unit"/></div>').hide().insertAfter(fx);var dragging=false,startPos=0;$(canvas).click(function(){var x=$(controls).data('unit')+1;if(x>10){return;}
if(x>1){self.undo();}
$('div.editor_effect_unit','#editor_effects').not(controls).data('unit',0).hide();$('div.editor_effect','#editor_effects').data('state',0);$(controls).data('unit',x).show().children('span.unit').html(x);self.apply(v.fn,v.amount*x);});$(fx).next('canvas').add(controls).hover(function(){$('span.minus, span.plus',$(controls)).show();},function(){$('span.minus, span.plus',$(controls)).hide();});$(controls).data('unit',0).children('span.minus').click(function(e){var x=$(controls).data('unit');if(x>0){if(e.pageX&&e.pageY){self.undo();self.apply(v.fn,v.amount*x-v.amount);}
x=x-1;$(this).siblings('span.unit').html(x);}
if(x==0){$(controls).hide();}
$(controls).data('unit',x);});$(controls).children('span.plus').click(function(){var x=$(controls).data('unit')+1;if(x>10){return;}
if(x>1){self.undo();}
self.apply(v.fn,v.amount*x);$(this).siblings('span.unit').html(x);$(controls).data('unit',x);});});$('<hr/>').appendTo('#editor_effects');$.each({'greyscale':'grayscale','sepia':'sepia','invert':'invert','threshold':'threshold'},function(k,v){var canvas,fx=$img.clone().attr(dim).appendTo('#editor_effects').wrap('<div class="editor_effect"></div>').after('<span class="label">'+tinyMCEPopup.getLang('imgmanager_ext_dlg.'+k,k)+'</span>').wrap('<span class="preview" />');if(!$.support.filter||v=='threshold'){$(fx).canvas(dim).canvas(v);canvas=$(fx).canvas('getCanvas');$(canvas).insertAfter(fx);}else{$(fx).show().cssFilter({'filter':v});canvas=fx;}
var $p=$(fx).parent('div.editor_effect');$p.data('state',0);$(canvas).click(function(){$('div.editor_effect_unit','#editor_effects').data('unit',0).hide();$('div.editor_effect','#editor_effects').not($p).data('state',0);var s=$p.data('state')||0;if(s==0||self.stack.length==0){self.apply(v);s=1;}else{self.undo();s=0;}
$p.data('state',s);});});}},_resetFX:function(){$('div.editor_effect_unit','#editor_effects').data('unit',0).hide();$('div.editor_effect','#editor_effects').data('state',0);},_resizeWin:function(){},_initTransform:function(fn){var self=this;var img=$('img','#editor-image').get(0);var canvas=$(img).canvas('getCanvas');this.position();switch(fn){case'resize':$(canvas).resize({width:canvas.width,height:canvas.height,ratio:$('span.checkbox','#resize_constrain').is('.checked')?getRatio(canvas):false,resize:function(e,size){$('#resize_width').val(size.width);$('#resize_height').val(size.height);},stop:function(){$('#resize_reset').button('enable');}});break;case'crop':$(canvas).crop({width:canvas.width,height:canvas.height,ratio:$('#crop_constrain').is(':checked')?getRatio(canvas):false,clone:$(img).canvas('copy'),stop:function(){$('#crop_reset').button('enable');},change:function(e,props){$('#crop_width').val(props.width);$('#crop_height').val(props.height);$('#crop_x').val(props.x);$('#crop_y').val(props.y);}});break;case'rotate':break;}},_resetTransform:function(fn){var img=$('img','#editor-image').get(0),canvas=$(img).canvas('getCanvas');var w=$(canvas).width()||canvas.width;var h=$(canvas).height()||canvas.height;switch(fn){case'resize':this.position();if($.data(canvas,'resize')){$(canvas).resize("reset");}
$('#resize_reset').button('disable');$('#resize_width').val(w).data('tmp',w);$('#resize_height').val(h).data('tmp',h);$('#resize_presets').val($('#resize_presets option:first').val());break;case'crop':if($.data(canvas,'crop')){$(canvas).crop("reset");}
$('#crop_reset').button('disable');$('#crop_presets').val($('#crop_presets option:first').val());$('#crop_width').val(w).data('tmp',w);$('#crop_height').val(h).data('tmp',h);$('#crop_x, #crop_y').val(0);break;case'rotate':break;}},updateCSSTransform:function(k,v){$('#rotate_angle img, #rotate_flip img, #editor_effects img, #editor_effects canvas').cssTransform(k,v);},undoCSSTransform:function(revert){var keys=['transform','msTransform','Transform','WebkitTransform','OTransform'];$('#rotate_angle img, #rotate_flip img').each(function(){var n=$(this).get(0);$.each(keys,function(i,s){var transforms=n.style[s]||[];if(transforms.length){transforms=transforms.split(' ');}
if(revert){transforms=[transforms.shift()];}else{transforms.pop();}
n.style[s]=transforms.join(' ');});});$('#editor_effects img, #editor_effects canvas').each(function(){var n=$(this).get(0);$.each(keys,function(i,s){var transforms=n.style[s]||[];if(transforms.length){transforms=transforms.split(' ');}
if(revert){transforms=[];}else{transforms.pop();}
n.style[s]=transforms.join(' ');});});},undo:function(e){this.stack.pop();$('img','#editor-image').canvas('undo');if(!this.stack.length){$('button.undo').button('disable');$('button.revert').button('disable');$('button.save').button('disable');}
this.position();if(e){this._resetFX();}},revert:function(e){var $img=$('img','#editor-image'),img=$img.get(0);$img.canvas('clear').canvas('draw',img,img.width,img.height);this.stack=[];$('button.undo').button('disable');$('button.revert').button('disable');$('button.save').button('disable');this.position();if(e){this._resetFX();}},reset:function(rw){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas');$.each(['resize','crop','rotate'],function(i,fn){self._resetTransform(fn);});if(rw){if($.data(canvas,'resize')){$(canvas).resize("remove");}
if($.data(canvas,'crop')){$(canvas).crop("remove");}
if($.data(canvas,'rotate')){$(canvas).rotate("remove");}}
this.position();},position:function(){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas');var pw=$('#editor-image').width(),ph=$('#editor-image').height();var pct=10;$(canvas).css({width:'',height:''});if(canvas.width>canvas.height){while($(canvas).width()>pw){var w=Math.round(pw-(pw/100*pct));$(canvas).width(w).height(canvas.height*(w/canvas.width));pct+=10;}}else{while($(canvas).height()>ph){var h=ph-(ph/100*pct);$(canvas).height(h).width(canvas.width*(h/canvas.height));pct+=10;}}
var ch=$(canvas).height()||canvas.height;$(canvas).css({'top':(ph-ch)/2});},_apply:function(k,v){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas');this._setLoader();var name=$.String.basename(self.src);var src=tinyMCEPopup.getWindowArg('src');var data=$img.canvas('output',self.getMime(name),100,true);function cleanTemp(src){$.JSON.request('cleanEditorTmp',{'json':[src]});return;}
if(data){self.sendBinary(data,{'fn':'applyEdit','args':[src,k,v]},function(o){function error(s){if(s){$.Dialog.alert(s);}
self._removeLoader();cleanTemp(src);return false;}
if(!o||!o.result){error();}
if($.type(o.error)==="boolean"&&o.text.length){error(o.text.join(''));}
if($.type(o.error)==="array"&&o.error.length){error(o.error.join(''))}
if(o.files){var img=new Image();img.onload=function(){$img.canvas('draw',img,img.width,img.height);self._removeLoader();self.position();cleanTemp(src);return true;};img.onerror=function(){self._removeLoader();$.Dialog.alert('Action "'+k+'" failed. Temp image could not be loaded.');cleanTemp(src);return false;};var tmp=o.files[0]||'';tmp=tmp.replace(/[^\w\.\-~\/\\\\\s ]/gi,'');if(!tmp){cleanTemp(src);return false;}
img.src=self._loadImage($.String.path($.Plugin.getURI(),tmp));}});}},apply:function(){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas'),reset=true;var args=$.makeArray(arguments);var fn=args.shift();var args=args;self._setLoader();switch(fn){case'resize':var w=$('#resize_width').val();var h=$('#resize_height').val();if($.support.Blob){this._apply('resize',{width:w,height:h});}else{$img.canvas('resize',w,h,true);self.position();self._removeLoader();}
args=[w,h];break;case'crop':var s=$(canvas).crop('getArea');if($.support.Blob){this._apply('crop',s);}else{$img.canvas('crop',s.width,s.height,s.x,s.y,true);$img.canvas('resize',s.cw,s.ch);self.position();self._removeLoader();}
args=[s.width,s.height,s.x,s.y];$('#transform_tab').accordion('activate',false);break;case'rotate':$img.canvas('rotate',args[0],true);self.position();self._removeLoader();break;case'flip':$img.canvas('flip',args[0],true);self.position();self._removeLoader();break;case'desaturate':case'saturate':case'blur':case'brightness':$img.canvas(fn,args[0],true);break;case'threshold':$img.canvas(fn,128,true);args.push(128);break;case'sepia':$img.canvas(fn,100,true);args.push(100);break;case'grayscale':case'invert':case'halftone':$img.canvas(fn,true);break;}
this.stack.push({task:fn,args:args});$('button.undo').button('enable');$('button.revert').button('enable');$('button.save').button('enable');if(reset){this.reset(true);}},getMime:function(s){var mime='image/jpeg';var ext=$.String.getExt(s);switch(ext){case'jpg':case'jpeg':mime='image/jpeg';break;case'png':mime='image/png';break;case'bmp':mime='image/bmp';break;}
return mime;},save:function(name){var self=this,$img=$('img','#editor-image'),canvas=$img.canvas('getCanvas');if(!this.stack.length){return;}
var extras='';extras+='<div class="row">'+' <label for="image_quality">'+tinyMCEPopup.getLang('imgmanager_ext_dlg.quality','Quality')+'</label>'+' <div id="image_quality_slider" class="slider"></div>'+' <input type="text" id="image_quality" value="100" class="quality" /> %'+'</div>';var name=$.String.basename(this.src);name=$.String.stripExt(name);var ext=$.String.getExt(this.src);$.Dialog.prompt(tinyMCEPopup.getLang('imgmanager_ext_dlg.save_image','Save Image'),{text:tinyMCEPopup.getLang('dlg.name','Name'),elements:extras,height:180,value:name,onOpen:function(){$('#image_quality_slider').slider({min:10,step:10,slide:function(event,ui){$('#image_quality').val(ui.value);},value:100});},confirm:function(name){var quality=$('#image_quality').val()||100;self._setLoader();name=(name+'.'+ext)||$.String.basename(self.src);var src=tinyMCEPopup.getWindowArg('src');var cb=function(o){self._removeLoader();if(o&&o.error&&o.error.length){$.Dialog.alert(o.error);}
if(o&&o.files){self.src=o.files[0]||'';if(!self.src||!self._validatePath(self.src)){$.Dialog.alert('Invalid image file');return false;}
var img=new Image();img.onload=function(){$('img','#editor-image').attr('src',img.src).load(function(){self._createFX();$(this).canvas('draw',img,img.width,img.height);});};img.src=self._loadImage($.Plugin.getURI()+self.src);var s=self.settings;s.save.apply(s.scope||self,[self.src]);self.stack=[];$('button.undo').button('disable');$('button.revert').button('disable');$('button.save').button('disable');}};if($.support.Blob){var data=$img.canvas('output',self.getMime(name),quality,true);if(data){self.sendBinary(data,{'fn':'saveEdit','args':[src,name]},cb);}}else{var stack=self.stack,args=[]
for(var i=0;i<stack.length;i++){var s=stack[i],n=args[args.length-1];if(n&&s.task===n.task&&s.args.length===1){n.args[0]+=s.args[0];}else{args.push(s);}}
$.JSON.request('saveEdit',{'json':[src,name,args,quality]},cb);}
$(this).dialog('close');}});},sendBinary:function(data,json,cb){var self=this,ed=tinyMCEPopup.editor;var url=document.location.href;url=url.replace(/&wf([a-z0-9]+)=1/,'');var args={'format':'raw','component_id':ed.settings.component_id};args[ed.settings.token]='1';var fd=new FormData();var xhr=new XMLHttpRequest();xhr.open('POST',url,true);xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');xhr.onload=function(){if(this.status==200){var r=JSON.parse(this.response);}else{var r={'error':'Unable to process file'};}
cb.call(self,r);data=fd=null;};$.each(args,function(k,v){if($.type(v)=='string'){fd.append(k,v);}});fd.append('json',JSON.stringify(json));var name=$.String.basename(json.args[0]);fd.append("file",data,name);xhr.send(fd);},_validatePath:function(s){function _toUnicode(c){c=c.toString(16).toUpperCase();while(c.length<4){c='0'+c;}
return'\\u'+c;}
if(/\.{2,}/.test(s)||(/:\/\//.test(s)&&s.indexOf($.Plugin.getURI(true))==-1)){return false;}
if(/:\/\//.test(s)){s=$.URL.toRelative(s);}
if(/[^\w\.\-~\s \/\\\\]/i.test(s)){for(var i=0,ln=s.length;i<ln;i++){var ch=s[i];if(/[^\w\.\-~\s \/\\\\]/i.test(ch)){if(_toUnicode(ch.charCodeAt(0))<'\\u007F'){return false;}}}}
return true;},_loadImage:function(src){return src+'?'+new Date().getTime();}};window.EditorDialog=EditorDialog;})(jQuery);