150 lines
3.8 KiB
JavaScript
150 lines
3.8 KiB
JavaScript
/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
|
|
/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
|
|
/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ImageManager/image-manager.js */
|
|
function ImageManager(_1){
|
|
}
|
|
ImageManager._pluginInfo={name:"ImageManager",version:"1.0",developer:"Xiang Wei Zhuo",developer_url:"http://www.zhuo.org/htmlarea/",license:"htmlArea"};
|
|
Xinha.Config.prototype.ImageManager={"backend":Xinha.getPluginDir("ImageManager")+"/backend.php?__plugin=ImageManager&","backend_data":null,"backend_config":null,"backend_config_hash":null,"backend_config_secret_key_location":"Xinha:ImageManager"};
|
|
Xinha.prototype._insertImage=function(_2){
|
|
var _3=this;
|
|
var _4=null;
|
|
if(typeof _2=="undefined"){
|
|
_2=this.getParentElement();
|
|
if(_2&&!/^img$/i.test(_2.tagName)){
|
|
_2=null;
|
|
}
|
|
}
|
|
if(_2){
|
|
_4={f_url:Xinha.is_ie?_2.src:_2.src,f_alt:_2.alt,f_border:_2.style.borderWidth?_2.style.borderWidth:_2.border,f_align:_2.align,f_padding:_2.style.padding,f_margin:_2.style.margin,f_width:_2.width,f_height:_2.height,f_backgroundColor:_2.style.backgroundColor,f_borderColor:_2.style.borderColor};
|
|
function shortSize(_5){
|
|
if(/ /.test(_5)){
|
|
var _6=_5.split(" ");
|
|
var _7=true;
|
|
for(var i=1;i<_6.length;i++){
|
|
if(_6[0]!=_6[i]){
|
|
_7=false;
|
|
break;
|
|
}
|
|
}
|
|
if(_7){
|
|
_5=_6[0];
|
|
}
|
|
}
|
|
return _5;
|
|
}
|
|
_4.f_border=shortSize(_4.f_border);
|
|
_4.f_padding=shortSize(_4.f_padding);
|
|
_4.f_margin=shortSize(_4.f_margin);
|
|
function convertToHex(_9){
|
|
if(typeof _9=="string"&&/, /.test.color){
|
|
_9=_9.replace(/, /,",");
|
|
}
|
|
if(typeof _9=="string"&&/ /.test.color){
|
|
var _a=_9.split(" ");
|
|
var _b="";
|
|
for(var i=0;i<_a.length;i++){
|
|
_b+=Xinha._colorToRgb(_a[i]);
|
|
if(i+1<_a.length){
|
|
_b+=" ";
|
|
}
|
|
}
|
|
return _b;
|
|
}
|
|
return Xinha._colorToRgb(_9);
|
|
}
|
|
_4.f_backgroundColor=convertToHex(_4.f_backgroundColor);
|
|
_4.f_borderColor=convertToHex(_4.f_borderColor);
|
|
}
|
|
var _d=_3.config.ImageManager.backend+"__function=manager";
|
|
if(_3.config.ImageManager.backend_config!=null){
|
|
_d+="&backend_config="+encodeURIComponent(_3.config.ImageManager.backend_config);
|
|
_d+="&backend_config_hash="+encodeURIComponent(_3.config.ImageManager.backend_config_hash);
|
|
_d+="&backend_config_secret_key_location="+encodeURIComponent(_3.config.ImageManager.backend_config_secret_key_location);
|
|
}
|
|
if(_3.config.ImageManager.backend_data!=null){
|
|
for(var i in _3.config.ImageManager.backend_data){
|
|
_d+="&"+i+"="+encodeURIComponent(_3.config.ImageManager.backend_data[i]);
|
|
}
|
|
}
|
|
Dialog(_d,function(_f){
|
|
if(!_f){
|
|
return false;
|
|
}
|
|
var img=_2;
|
|
if(!img){
|
|
if(Xinha.is_ie){
|
|
var sel=_3._getSelection();
|
|
var _12=_3._createRange(sel);
|
|
_3._doc.execCommand("insertimage",false,_f.f_url);
|
|
img=_12.parentElement();
|
|
if(img.tagName.toLowerCase()!="img"){
|
|
img=img.previousSibling;
|
|
}
|
|
}else{
|
|
img=document.createElement("img");
|
|
img.src=_f.f_url;
|
|
_3.insertNodeAtSelection(img);
|
|
}
|
|
}else{
|
|
img.src=_f.f_url;
|
|
}
|
|
for(field in _f){
|
|
var _13=_f[field];
|
|
switch(field){
|
|
case "f_alt":
|
|
img.alt=_13;
|
|
break;
|
|
case "f_border":
|
|
if(_13.length){
|
|
img.style.borderWidth=/[^0-9]/.test(_13)?_13:(parseInt(_13)+"px");
|
|
if(img.style.borderWidth&&!img.style.borderStyle){
|
|
img.style.borderStyle="solid";
|
|
}
|
|
}else{
|
|
img.style.borderWidth="";
|
|
img.style.borderStyle="";
|
|
}
|
|
break;
|
|
case "f_borderColor":
|
|
img.style.borderColor=_13;
|
|
break;
|
|
case "f_backgroundColor":
|
|
img.style.backgroundColor=_13;
|
|
break;
|
|
case "f_padding":
|
|
if(_13.length){
|
|
img.style.padding=/[^0-9]/.test(_13)?_13:(parseInt(_13)+"px");
|
|
}else{
|
|
img.style.padding="";
|
|
}
|
|
break;
|
|
case "f_margin":
|
|
if(_13.length){
|
|
img.style.margin=/[^0-9]/.test(_13)?_13:(parseInt(_13)+"px");
|
|
}else{
|
|
img.style.margin="";
|
|
}
|
|
break;
|
|
case "f_align":
|
|
img.align=_13;
|
|
break;
|
|
case "f_width":
|
|
if(!isNaN(parseInt(_13))){
|
|
img.width=parseInt(_13);
|
|
}else{
|
|
img.width="";
|
|
}
|
|
break;
|
|
case "f_height":
|
|
if(!isNaN(parseInt(_13))){
|
|
img.height=parseInt(_13);
|
|
}else{
|
|
img.height="";
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
},_4);
|
|
};
|
|
|