@ -0,0 +1,145 @@ |
|||||||
|
body { |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
FIELDSET { |
||||||
|
margin: 0; |
||||||
|
padding: 5px 5px; |
||||||
|
} |
||||||
|
|
||||||
|
LEGEND { |
||||||
|
background-image: url(../images/bullet_green.gif); |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-position: left center; |
||||||
|
padding-left: 15px; |
||||||
|
padding-right: 5px; |
||||||
|
} |
||||||
|
LEGEND A { |
||||||
|
border: none!important; |
||||||
|
text-decoration: none; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
.fieldset_off { |
||||||
|
border-bottom: none; |
||||||
|
border-right: none; |
||||||
|
} |
||||||
|
.fieldset_off LEGEND { |
||||||
|
background-image: url(../images/bullet_orange.gif); |
||||||
|
} |
||||||
|
.fieldset_off DIV { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
#img_area_form { |
||||||
|
margin: 5px 0px; |
||||||
|
padding: 0; |
||||||
|
border: 0; |
||||||
|
} |
||||||
|
|
||||||
|
#form_container { |
||||||
|
white-space: nowrap; |
||||||
|
overflow: auto; |
||||||
|
height: 88px; |
||||||
|
border-top: solid 1px #bfc1c5; |
||||||
|
} |
||||||
|
|
||||||
|
#form_container INPUT, #form_container SELECT { |
||||||
|
border: 1px solid black; |
||||||
|
font-size: 10px; |
||||||
|
margin: 0; |
||||||
|
padding: 0 0 0 1px; |
||||||
|
} |
||||||
|
|
||||||
|
.img_area { |
||||||
|
display: block; |
||||||
|
vertical-align: middle; |
||||||
|
line-height: 20px; |
||||||
|
height: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
.img_id { |
||||||
|
font-weight: bold; |
||||||
|
width: 25px; |
||||||
|
padding: 0px 3px; |
||||||
|
text-align: right; |
||||||
|
border: none!important; |
||||||
|
background: none; |
||||||
|
} |
||||||
|
.img_active { |
||||||
|
border: none!important; |
||||||
|
} |
||||||
|
.img_coords { |
||||||
|
width: 72px; |
||||||
|
} |
||||||
|
.img_href { |
||||||
|
width: 82px; |
||||||
|
} |
||||||
|
.img_alt { |
||||||
|
width: 82px; |
||||||
|
} |
||||||
|
.img_target { |
||||||
|
width: 82px; |
||||||
|
} |
||||||
|
|
||||||
|
#pic_container { |
||||||
|
position: relative; |
||||||
|
width: 100%; |
||||||
|
height: 300px; |
||||||
|
border: solid 0px #efefef; |
||||||
|
overflow: auto; |
||||||
|
} |
||||||
|
|
||||||
|
#pic_container .imgmap_label { |
||||||
|
font: bold 10px Arial; |
||||||
|
color: #100; |
||||||
|
padding: 1px 2px; |
||||||
|
} |
||||||
|
|
||||||
|
#status_container { |
||||||
|
font-weight: bold!important; |
||||||
|
font-size: 90%; |
||||||
|
color: #e95949; |
||||||
|
width: 100%; |
||||||
|
height: 1em; |
||||||
|
} |
||||||
|
|
||||||
|
#button_container { |
||||||
|
padding: 5px; |
||||||
|
line-height: 16px; |
||||||
|
} |
||||||
|
#button_container a { |
||||||
|
outline: 0; |
||||||
|
} |
||||||
|
#button_container img { |
||||||
|
border: 0; |
||||||
|
padding: 1px; |
||||||
|
} |
||||||
|
#button_container .ActiveMode { |
||||||
|
border: 1px solid #666; |
||||||
|
padding: 0; |
||||||
|
background-color: #ddd; |
||||||
|
} |
||||||
|
|
||||||
|
#fieldset_html { |
||||||
|
text-align: left; |
||||||
|
} |
||||||
|
|
||||||
|
#html_container { |
||||||
|
border: 1px solid black; |
||||||
|
margin: 5px 0; |
||||||
|
padding: 1px 0 0 1px; |
||||||
|
height: 100px; |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
#properties { |
||||||
|
clear:both; |
||||||
|
border:1px solid #BFC1C5; |
||||||
|
border-width:1px 0; |
||||||
|
padding-bottom:0.8em; |
||||||
|
} |
||||||
|
|
||||||
|
#properties td { |
||||||
|
padding:2px 4px; |
||||||
|
} |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
||||||
|
"http://www.w3.org/TR/html4/loose.dtd"> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>imgmap plugin index</title> |
||||||
|
<META http-equiv="refresh" content="0;URL=install.html"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<p>You should have been redirected <a href="install.html">to the documentation</a></p> |
||||||
|
</body> |
||||||
|
</html> |
||||||
|
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,60 @@ |
|||||||
|
body { |
||||||
|
font-family: Arial, Helvetica, sans-serif; |
||||||
|
font-size: 90%; |
||||||
|
} |
||||||
|
h1 { |
||||||
|
text-align:center; |
||||||
|
font-size:180%; |
||||||
|
} |
||||||
|
h2 { |
||||||
|
border-bottom:2px solid #CCC; |
||||||
|
margin:1em 0 0.4em 0; |
||||||
|
} |
||||||
|
h3 { |
||||||
|
margin-bottom:0.4em; |
||||||
|
} |
||||||
|
p { |
||||||
|
margin:0 0 1em 1em; |
||||||
|
text-align:justify; |
||||||
|
} |
||||||
|
ol { |
||||||
|
margin:0 0 1.2em 1em; |
||||||
|
padding:0; |
||||||
|
list-style-type:none; |
||||||
|
} |
||||||
|
ol li { |
||||||
|
margin:0.2em 0; |
||||||
|
} |
||||||
|
pre, code { |
||||||
|
font-size:100%; |
||||||
|
font-family:"Courier New", Courier, mono; |
||||||
|
background-color: #CCCCCC; |
||||||
|
border:1px solid #999; |
||||||
|
padding:0.2em 1em; |
||||||
|
margin: 0.4em 0; |
||||||
|
display:block; |
||||||
|
} |
||||||
|
form { |
||||||
|
margin:0 0 0 1em; |
||||||
|
} |
||||||
|
span.key { |
||||||
|
color: #006600; |
||||||
|
} |
||||||
|
#install { |
||||||
|
display:none |
||||||
|
} |
||||||
|
#languages ul { |
||||||
|
display:inline; |
||||||
|
list-style-type:none; |
||||||
|
margin:0; |
||||||
|
padding:0; |
||||||
|
} |
||||||
|
#languages li { |
||||||
|
display:inline; |
||||||
|
margin:0; |
||||||
|
padding:0; |
||||||
|
vertical-align:bottom; |
||||||
|
} |
||||||
|
p.nobottom { |
||||||
|
margin:1em 0 0 1em; |
||||||
|
} |
||||||
@ -0,0 +1,108 @@ |
|||||||
|
/* |
||||||
|
ImgMap plugin for FCKeditor |
||||||
|
version 0.4 14/12/2007 |
||||||
|
|
||||||
|
See docs/install.html |
||||||
|
|
||||||
|
|
||||||
|
*/ |
||||||
|
|
||||||
|
imgmapCommand_GetState = function() { |
||||||
|
if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) |
||||||
|
return FCK_TRISTATE_DISABLED; |
||||||
|
|
||||||
|
var oImage = FCK.Selection.GetSelectedElement() ; |
||||||
|
if ( oImage && oImage.tagName == 'IMG' ) |
||||||
|
{ |
||||||
|
// Does it has an assigned map?
|
||||||
|
if (oImage.getAttribute( 'usemap' )) |
||||||
|
return FCK_TRISTATE_ON;
|
||||||
|
|
||||||
|
// Plain image
|
||||||
|
return FCK_TRISTATE_OFF;
|
||||||
|
} |
||||||
|
// No image selected
|
||||||
|
return FCK_TRISTATE_DISABLED; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
FCKCommands.RegisterCommand( 'imgmapPopup',
|
||||||
|
new FCKDialogCommand( FCKLang.imgmapDlgName, FCKLang.imgmapDlgTitle, FCKPlugins.Items['imgmap'].Path + 'popup.html', 700, 620, imgmapCommand_GetState ) ) ; |
||||||
|
|
||||||
|
|
||||||
|
// create imgmap toolbar button.
|
||||||
|
var imgmapButton = new FCKToolbarButton('imgmapPopup', FCKLang.imgmapBtn, null, null, false, true); |
||||||
|
// Use the proper icon according to the skin:
|
||||||
|
if ( /\/editor\/skins\/(.*)\//.test(FCKConfig.SkinPath) ) |
||||||
|
imgmapButton.IconPath = FCKPlugins.Items['imgmap'].Path + 'images/icon_' + RegExp.$1 + '.gif'; |
||||||
|
else |
||||||
|
imgmapButton.IconPath = FCKPlugins.Items['imgmap'].Path + 'images/editor_icon.gif'; |
||||||
|
|
||||||
|
FCKToolbarItems.RegisterItem('imgmapPopup', imgmapButton); |
||||||
|
|
||||||
|
// register new contextmenu
|
||||||
|
FCK.ContextMenu.RegisterListener({ |
||||||
|
AddItems : function( menu, tag, tagName ) { |
||||||
|
// under what circumstances do we display this option
|
||||||
|
if (tagName == 'IMG') { |
||||||
|
// when the option is displayed, show a separator the command
|
||||||
|
menu.AddSeparator(); |
||||||
|
// the command needs the registered command name, the title for the context menu, and the icon path
|
||||||
|
menu.AddItem('imgmapPopup', FCKLang.imgmapDlgTitle, imgmapButton.IconPath); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
// The code has been added in FCKeditor 2.5, so we only need it here for previous versions.
|
||||||
|
if ( !FCKRegexLib.ProtectUrlsArea ) |
||||||
|
{ |
||||||
|
if ( FCKBrowserInfo.IsIE ) |
||||||
|
{ |
||||||
|
// Fix behavior for IE, it doesn't read back the .name on newly created maps
|
||||||
|
FCKXHtml.TagProcessors['map'] = function( node, htmlNode ) |
||||||
|
{ |
||||||
|
if ( ! node.attributes.getNamedItem( 'name' ) ) |
||||||
|
{ |
||||||
|
var name = htmlNode.name ; |
||||||
|
if ( name ) |
||||||
|
FCKXHtml._AppendAttribute( node, 'name', name ) ; |
||||||
|
} |
||||||
|
|
||||||
|
node = FCKXHtml._AppendChildNodes( node, htmlNode, true ) ; |
||||||
|
|
||||||
|
return node ; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// The href in the areas might get distorted by the browser.
|
||||||
|
|
||||||
|
// Keep a reference to the default processsor:
|
||||||
|
var imgmap_OldAreaProcessor = FCKXHtml.TagProcessors['area'] ; |
||||||
|
|
||||||
|
FCKXHtml.TagProcessors['area'] = function( node, htmlNode ) |
||||||
|
{ |
||||||
|
var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ; |
||||||
|
if ( sSavedUrl != null ) |
||||||
|
FCKXHtml._AppendAttribute( node, 'href', sSavedUrl ) ; |
||||||
|
|
||||||
|
// Call the default processor
|
||||||
|
if (typeof imgmap_OldAreaProcessor == 'function')
|
||||||
|
node = imgmap_OldAreaProcessor ( node, htmlNode ) ; |
||||||
|
|
||||||
|
return node ; |
||||||
|
} |
||||||
|
|
||||||
|
// Saves URLs on links and images on special attributes, so they don't change when
|
||||||
|
// moving around.
|
||||||
|
var imgmap_OldProtectUrls = FCK.ProtectUrls ; |
||||||
|
FCK.ProtectUrls = function( html ) |
||||||
|
{ |
||||||
|
html = imgmap_OldProtectUrls( html ) ; |
||||||
|
|
||||||
|
// <AREA> href
|
||||||
|
html = html.replace( /<area(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi , '$& _fcksavedurl=$1' ) ; |
||||||
|
|
||||||
|
return html ; |
||||||
|
} |
||||||
|
} |
||||||
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1010 B |
|
After Width: | Height: | Size: 282 B |
|
After Width: | Height: | Size: 282 B |
|
After Width: | Height: | Size: 310 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1006 B |
|
After Width: | Height: | Size: 604 B |
|
After Width: | Height: | Size: 1009 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 1001 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 315 B |
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 608 B |
@ -0,0 +1,19 @@ |
|||||||
|
if(!window.CanvasRenderingContext2D){(function(){var I=Math,i=I.round,L=I.sin,M=I.cos,m=10,A=m/2,Q={init:function(a){var b=a||document;if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=this;b.attachEvent("onreadystatechange",function(){c.r(b)})}},r:function(a){if(a.readyState=="complete"){if(!a.namespaces["s"]){a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml")}var b=a.createStyleSheet();b.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}"; |
||||||
|
var c=a.getElementsByTagName("canvas");for(var d=0;d<c.length;d++){if(!c[d].getContext){this.initElement(c[d])}}}},q:function(a){var b=a.outerHTML,c=a.ownerDocument.createElement(b);if(b.slice(-2)!="/>"){var d="/"+a.tagName,e;while((e=a.nextSibling)&&e.tagName!=d){e.removeNode()}if(e){e.removeNode()}}a.parentNode.replaceChild(c,a);return c},initElement:function(a){a=this.q(a);a.getContext=function(){if(this.l){return this.l}return this.l=new K(this)};a.attachEvent("onpropertychange",V);a.attachEvent("onresize", |
||||||
|
W);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+"px"}else{a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+"px"}else{a.height=a.clientHeight}return a}};function V(a){var b=a.srcElement;switch(a.propertyName){case "width":b.style.width=b.attributes.width.nodeValue+"px";b.getContext().clearRect();break;case "height":b.style.height=b.attributes.height.nodeValue+"px";b.getContext().clearRect();break}}function W(a){var b=a.srcElement; |
||||||
|
if(b.firstChild){b.firstChild.style.width=b.clientWidth+"px";b.firstChild.style.height=b.clientHeight+"px"}}Q.init();var R=[];for(var E=0;E<16;E++){for(var F=0;F<16;F++){R[E*16+F]=E.toString(16)+F.toString(16)}}function J(){return[[1,0,0],[0,1,0],[0,0,1]]}function G(a,b){var c=J();for(var d=0;d<3;d++){for(var e=0;e<3;e++){var g=0;for(var h=0;h<3;h++){g+=a[d][h]*b[h][e]}c[d][e]=g}}return c}function N(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit= |
||||||
|
a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.d=a.d;b.e=a.e}function O(a){var b,c=1;a=String(a);if(a.substring(0,3)=="rgb"){var d=a.indexOf("(",3),e=a.indexOf(")",d+1),g=a.substring(d+1,e).split(",");b="#";for(var h=0;h<3;h++){b+=R[Number(g[h])]}if(g.length==4&&a.substr(3,1)=="a"){c=g[3]}}else{b=a}return[b,c]}function S(a){switch(a){case "butt":return"flat";case "round":return"round"; |
||||||
|
case "square":default:return"square"}}function K(a){this.a=J();this.m=[];this.k=[];this.c=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=m*1;this.globalAlpha=1;this.canvas=a;var b=a.ownerDocument.createElement("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.overflow="hidden";b.style.position="absolute";a.appendChild(b);this.j=b;this.d=1;this.e=1}var j=K.prototype;j.clearRect=function(){this.j.innerHTML= |
||||||
|
"";this.c=[]};j.beginPath=function(){this.c=[]};j.moveTo=function(a,b){this.c.push({type:"moveTo",x:a,y:b});this.f=a;this.g=b};j.lineTo=function(a,b){this.c.push({type:"lineTo",x:a,y:b});this.f=a;this.g=b};j.bezierCurveTo=function(a,b,c,d,e,g){this.c.push({type:"bezierCurveTo",cp1x:a,cp1y:b,cp2x:c,cp2y:d,x:e,y:g});this.f=e;this.g=g};j.quadraticCurveTo=function(a,b,c,d){var e=this.f+0.6666666666666666*(a-this.f),g=this.g+0.6666666666666666*(b-this.g),h=e+(c-this.f)/3,l=g+(d-this.g)/3;this.bezierCurveTo(e, |
||||||
|
g,h,l,c,d)};j.arc=function(a,b,c,d,e,g){c*=m;var h=g?"at":"wa",l=a+M(d)*c-A,n=b+L(d)*c-A,o=a+M(e)*c-A,f=b+L(e)*c-A;if(l==o&&!g){l+=0.125}this.c.push({type:h,x:a,y:b,radius:c,xStart:l,yStart:n,xEnd:o,yEnd:f})};j.rect=function(a,b,c,d){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath()};j.strokeRect=function(a,b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.stroke()};j.fillRect=function(a, |
||||||
|
b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.fill()};j.createLinearGradient=function(a,b,c,d){var e=new H("gradient");return e};j.createRadialGradient=function(a,b,c,d,e,g){var h=new H("gradientradial");h.n=c;h.o=g;h.i.x=a;h.i.y=b;return h};j.drawImage=function(a,b){var c,d,e,g,h,l,n,o,f=a.runtimeStyle.width,k=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var q=a.width,r=a.height;a.runtimeStyle.width= |
||||||
|
f;a.runtimeStyle.height=k;if(arguments.length==3){c=arguments[1];d=arguments[2];h=(l=0);n=(e=q);o=(g=r)}else if(arguments.length==5){c=arguments[1];d=arguments[2];e=arguments[3];g=arguments[4];h=(l=0);n=q;o=r}else if(arguments.length==9){h=arguments[1];l=arguments[2];n=arguments[3];o=arguments[4];c=arguments[5];d=arguments[6];e=arguments[7];g=arguments[8]}else{throw"Invalid number of arguments";}var s=this.b(c,d),t=[],v=10,w=10;t.push(" <g_vml_:group",' coordsize="',m*v,",",m*w,'"',' coordorigin="0,0"', |
||||||
|
' style="width:',v,";height:",w,";position:absolute;");if(this.a[0][0]!=1||this.a[0][1]){var x=[];x.push("M11='",this.a[0][0],"',","M12='",this.a[1][0],"',","M21='",this.a[0][1],"',","M22='",this.a[1][1],"',","Dx='",i(s.x/m),"',","Dy='",i(s.y/m),"'");var p=s,y=this.b(c+e,d),z=this.b(c,d+g),B=this.b(c+e,d+g);p.x=Math.max(p.x,y.x,z.x,B.x);p.y=Math.max(p.y,y.y,z.y,B.y);t.push("padding:0 ",i(p.x/m),"px ",i(p.y/m),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else{t.push("top:", |
||||||
|
i(s.y/m),"px;left:",i(s.x/m),"px;")}t.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',m*e,";"," height:",m*g,';"',' cropleft="',h/q,'"',' croptop="',l/r,'"',' cropright="',(q-h-n)/q,'"',' cropbottom="',(r-l-o)/r,'"'," />","</g_vml_:group>");this.j.insertAdjacentHTML("BeforeEnd",t.join(""))};j.stroke=function(a){var b=[],c=O(a?this.fillStyle:this.strokeStyle),d=c[0],e=c[1]*this.globalAlpha,g=10,h=10;b.push("<g_vml_:shape",' fillcolor="',d,'"',' filled="',Boolean(a),'"',' style="position:absolute;width:', |
||||||
|
g,";height:",h,';"',' coordorigin="0 0" coordsize="',m*g," ",m*h,'"',' stroked="',!a,'"',' strokeweight="',this.lineWidth,'"',' strokecolor="',d,'"',' path="');var l={x:null,y:null},n={x:null,y:null};for(var o=0;o<this.c.length;o++){var f=this.c[o];if(f.type=="moveTo"){b.push(" m ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="lineTo"){b.push(" l ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="close"){b.push(" x ")}else if(f.type=="bezierCurveTo"){b.push(" c "); |
||||||
|
var k=this.b(f.x,f.y),q=this.b(f.cp1x,f.cp1y),r=this.b(f.cp2x,f.cp2y);b.push(i(q.x),",",i(q.y),",",i(r.x),",",i(r.y),",",i(k.x),",",i(k.y))}else if(f.type=="at"||f.type=="wa"){b.push(" ",f.type," ");var k=this.b(f.x,f.y),s=this.b(f.xStart,f.yStart),t=this.b(f.xEnd,f.yEnd);b.push(i(k.x-this.d*f.radius),",",i(k.y-this.e*f.radius)," ",i(k.x+this.d*f.radius),",",i(k.y+this.e*f.radius)," ",i(s.x),",",i(s.y)," ",i(t.x),",",i(t.y))}if(k){if(l.x==null||k.x<l.x){l.x=k.x}if(n.x==null||k.x>n.x){n.x=k.x}if(l.y== |
||||||
|
null||k.y<l.y){l.y=k.y}if(n.y==null||k.y>n.y){n.y=k.y}}}b.push(' ">');if(typeof this.fillStyle=="object"){var v={x:"50%",y:"50%"},w=n.x-l.x,x=n.y-l.y,p=w>x?w:x;v.x=i(this.fillStyle.i.x/w*100+50)+"%";v.y=i(this.fillStyle.i.y/x*100+50)+"%";var y=[];if(this.fillStyle.p=="gradientradial"){var z=this.fillStyle.n/p*100,B=this.fillStyle.o/p*100-z}else{var z=0,B=100}var C={offset:null,color:null},D={offset:null,color:null};this.fillStyle.h.sort(function(T,U){return T.offset-U.offset});for(var o=0;o<this.fillStyle.h.length;o++){var u= |
||||||
|
this.fillStyle.h[o];y.push(u.offset*B+z,"% ",u.color,",");if(u.offset>C.offset||C.offset==null){C.offset=u.offset;C.color=u.color}if(u.offset<D.offset||D.offset==null){D.offset=u.offset;D.color=u.color}}y.pop();b.push("<g_vml_:fill",' color="',D.color,'"',' color2="',C.color,'"',' type="',this.fillStyle.p,'"',' focusposition="',v.x,", ",v.y,'"',' colors="',y.join(""),'"',' opacity="',e,'" />')}else if(a){b.push('<g_vml_:fill color="',d,'" opacity="',e,'" />')}else{b.push("<g_vml_:stroke",' opacity="', |
||||||
|
e,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',S(this.lineCap),'"',' weight="',this.lineWidth,'px"',' color="',d,'" />')}b.push("</g_vml_:shape>");this.j.insertAdjacentHTML("beforeEnd",b.join(""));this.c=[]};j.fill=function(){this.stroke(true)};j.closePath=function(){this.c.push({type:"close"})};j.b=function(a,b){return{x:m*(a*this.a[0][0]+b*this.a[1][0]+this.a[2][0])-A,y:m*(a*this.a[0][1]+b*this.a[1][1]+this.a[2][1])-A}};j.save=function(){var a={};N(this,a); |
||||||
|
this.k.push(a);this.m.push(this.a);this.a=G(J(),this.a)};j.restore=function(){N(this.k.pop(),this);this.a=this.m.pop()};j.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];this.a=G(c,this.a)};j.rotate=function(a){var b=M(a),c=L(a),d=[[b,c,0],[-c,b,0],[0,0,1]];this.a=G(d,this.a)};j.scale=function(a,b){this.d*=a;this.e*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];this.a=G(c,this.a)};j.clip=function(){};j.arcTo=function(){};j.createPattern=function(){return new P};function H(a){this.p=a;this.n=0;this.o= |
||||||
|
0;this.h=[];this.i={x:0,y:0}}H.prototype.addColorStop=function(a,b){b=O(b);this.h.push({offset:1-a,color:b})};function P(){}G_vmlCanvasManager=Q;CanvasRenderingContext2D=K;CanvasGradient=H;CanvasPattern=P})()}; |
||||||
@ -0,0 +1,375 @@ |
|||||||
|
var myimgmap; |
||||||
|
var img_obj = null; |
||||||
|
var map_obj = null; |
||||||
|
|
||||||
|
// Less boring code
|
||||||
|
window.$ = function( id ) |
||||||
|
{ |
||||||
|
return this.document.getElementById( id ) ; |
||||||
|
} ; |
||||||
|
|
||||||
|
var oEditor = window.parent.InnerDialogLoaded(); |
||||||
|
var FCKConfig = oEditor.FCKConfig ; |
||||||
|
var FCKLang = oEditor.FCKLang ; |
||||||
|
|
||||||
|
document.write('<scr'+'ipt type="text/javascript" src="' + FCKConfig.FullBasePath + 'dialog/common/fck_dialog_common.js"></sc' + 'ript>'); |
||||||
|
|
||||||
|
|
||||||
|
window.onload = function() |
||||||
|
{ |
||||||
|
window.parent.SetOkButton(true); |
||||||
|
// window.parent.SetAutoSize(true);
|
||||||
|
|
||||||
|
//translate page elements
|
||||||
|
oEditor.FCKLanguageManager.TranslatePage(document); |
||||||
|
oEditor.FCKLanguageManager.TranslateElements(document, 'A', 'innerHTML'); |
||||||
|
|
||||||
|
var btn; |
||||||
|
btn = $('imgpointer') ; |
||||||
|
btn.alt = btn.title = FCKLang.imgmapPointer ; |
||||||
|
btn = $('imgrectangle') ; |
||||||
|
btn.alt = btn.title = FCKLang.imgmapRectangle ; |
||||||
|
btn = $('imgcircle') ; |
||||||
|
btn.alt = btn.title = FCKLang.imgmapCircle ; |
||||||
|
btn = $('imgpolygon') ; |
||||||
|
btn.alt = btn.title = FCKLang.imgmapPolygon ; |
||||||
|
|
||||||
|
|
||||||
|
img_obj = oEditor.FCK.Selection.GetSelectedElement() ; |
||||||
|
|
||||||
|
// On rare situations it's possible to launch the dialog without an image selected
|
||||||
|
// -> in IE select an image, click outside the editor and the button will remain enabled,
|
||||||
|
// but img_obj will be null
|
||||||
|
if ( !img_obj ) |
||||||
|
{ |
||||||
|
alert( FCKLang.msgImageNotSelected ) ; |
||||||
|
window.parent.close() ; |
||||||
|
return ; |
||||||
|
} |
||||||
|
|
||||||
|
// Autoselect the language based on the current FCKeditor language
|
||||||
|
// Check if the plugin has the language file for the active language.
|
||||||
|
var sLang ; |
||||||
|
if ( oEditor.FCKPlugins.Items['imgmap'].AvailableLangs.IndexOf( oEditor.FCKLanguageManager.ActiveLanguage.Code ) >= 0 ) |
||||||
|
sLang = oEditor.FCKLanguageManager.ActiveLanguage.Code ; |
||||||
|
else |
||||||
|
// Load the english language file if the prefered by the user is not available.
|
||||||
|
sLang = "en" ; |
||||||
|
|
||||||
|
//late init
|
||||||
|
myimgmap = new imgmap({ |
||||||
|
mode : "editor2", |
||||||
|
button_container: $('button_container'), |
||||||
|
imgroot: 'images/', |
||||||
|
buttons : ['delete'], |
||||||
|
custom_callbacks : { |
||||||
|
'onSelectArea' : onSelectArea, |
||||||
|
'onRemoveArea' : onRemoveArea |
||||||
|
}, |
||||||
|
html_container: null,
|
||||||
|
pic_container: $('pic_container'), |
||||||
|
status_container: $('status_container'), |
||||||
|
form_container: null, // $('form_container'),
|
||||||
|
bounding_box : false, |
||||||
|
lang : sLang |
||||||
|
}); |
||||||
|
|
||||||
|
//we need this to load languages
|
||||||
|
myimgmap.onLoad(); |
||||||
|
|
||||||
|
myimgmap.loadImage(img_obj); |
||||||
|
|
||||||
|
//check if the image has a valid map already assigned
|
||||||
|
var mapname = img_obj.getAttribute('usemap', 2) || img_obj.usemap ; |
||||||
|
//console.log(mapname);
|
||||||
|
if ( typeof mapname == 'string' && mapname !== '') { |
||||||
|
mapname = mapname.substr(1); |
||||||
|
var maps = oEditor.FCK.EditorDocument.getElementsByTagName('MAP'); |
||||||
|
//console.log(maps);
|
||||||
|
for (var i=0; i < maps.length; i++) { |
||||||
|
if (maps[i].name == mapname) { |
||||||
|
map_obj = maps[i]; |
||||||
|
myimgmap.setMapHTML(map_obj); |
||||||
|
|
||||||
|
$('MapName').value = mapname ; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// We must set up this listener only after the current data has been read
|
||||||
|
myimgmap.config.custom_callbacks.onAddArea = onAddArea ; |
||||||
|
|
||||||
|
$('btnBrowse').style.display = FCKConfig.LinkBrowser ? '' : 'none' ; |
||||||
|
|
||||||
|
if ( map_obj !== null ) |
||||||
|
{ |
||||||
|
// Select the first area:
|
||||||
|
myimgmap.selectedId = 0 ; |
||||||
|
onSelectArea( myimgmap.areas[0] ) ; |
||||||
|
|
||||||
|
setMode( 'pointer' ) ; |
||||||
|
} |
||||||
|
else |
||||||
|
hightlightMode( 'rectangle' ) ; |
||||||
|
|
||||||
|
RefreshSize() ; |
||||||
|
} ; |
||||||
|
|
||||||
|
function Ok() { |
||||||
|
updateAreaValues() ; |
||||||
|
|
||||||
|
if (img_obj !== null && img_obj.nodeName == "IMG") { |
||||||
|
var MapInnerHTML = getMapInnerHTML(myimgmap); |
||||||
|
|
||||||
|
// If there are no areas, then exit (and remove if neccesary the map).
|
||||||
|
if (MapInnerHTML == '') |
||||||
|
{ |
||||||
|
removeMap(); |
||||||
|
return ; |
||||||
|
} |
||||||
|
|
||||||
|
oEditor.FCKUndo.SaveUndoStep(); |
||||||
|
|
||||||
|
if (typeof map_obj == 'undefined' || map_obj === null) { |
||||||
|
map_obj = oEditor.FCK.EditorDocument.createElement('MAP'); |
||||||
|
img_obj.parentNode.appendChild(map_obj); |
||||||
|
} |
||||||
|
|
||||||
|
myimgmap.mapid = myimgmap.mapname = $('MapName').value ; |
||||||
|
|
||||||
|
map_obj.innerHTML = MapInnerHTML ; |
||||||
|
|
||||||
|
// IE bug: it's not possible to directly assing the name and make it work easily
|
||||||
|
// We remove the previous name
|
||||||
|
if ( map_obj.name ) |
||||||
|
map_obj.removeAttribute( 'name' ) ; |
||||||
|
|
||||||
|
map_obj.name = myimgmap.getMapName(); |
||||||
|
map_obj.id = myimgmap.getMapId(); |
||||||
|
|
||||||
|
img_obj.setAttribute('usemap', "#" + myimgmap.getMapName(), 0); |
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
//remove the map object and unset the usemap attribute
|
||||||
|
function removeMap() { |
||||||
|
oEditor.FCKUndo.SaveUndoStep(); |
||||||
|
if (img_obj !== null && img_obj.nodeName == "IMG") { |
||||||
|
img_obj.removeAttribute('usemap', 0); |
||||||
|
} |
||||||
|
if (typeof map_obj != 'undefined' && map_obj !== null) { |
||||||
|
map_obj.parentNode.removeChild(map_obj); |
||||||
|
} |
||||||
|
|
||||||
|
window.parent.close(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function changelabeling(obj) { |
||||||
|
myimgmap.config.label = obj.value; |
||||||
|
myimgmap._repaintAll(); |
||||||
|
} |
||||||
|
|
||||||
|
function toggleFieldset(fieldset, on) { |
||||||
|
if (fieldset) { |
||||||
|
if (fieldset.className == 'fieldset_off' || on == 1) { |
||||||
|
fieldset.className = ''; |
||||||
|
RefreshSize(); |
||||||
|
} |
||||||
|
else { |
||||||
|
fieldset.className = 'fieldset_off'; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// We need to store here the area id because if the user clicks on an area,
|
||||||
|
// then the onSelectArea event will fire before the onchange or onblur of the editing inputs
|
||||||
|
var currentAreaId = null ; |
||||||
|
|
||||||
|
// An area has been selected in the image
|
||||||
|
function onSelectArea(obj) { |
||||||
|
$( 'properties' ).style.visibility = ''; |
||||||
|
|
||||||
|
updateAreaValues() ; |
||||||
|
|
||||||
|
currentAreaId = obj.aid ; |
||||||
|
$( 'txtUrl' ).value = obj.ahref ; |
||||||
|
$( 'cmbTarget' ).value = obj.atarget ; |
||||||
|
$( 'txtAlt' ).value = obj.aalt ; |
||||||
|
$( 'txtAttTitle' ).value = obj.atitle ; |
||||||
|
} |
||||||
|
|
||||||
|
// A new area has been added
|
||||||
|
function onAddArea(id) { |
||||||
|
$( 'properties' ).style.visibility = ''; |
||||||
|
|
||||||
|
updateAreaValues() ; |
||||||
|
|
||||||
|
currentAreaId = id ; |
||||||
|
$( 'txtUrl' ).value = '' ; |
||||||
|
$( 'cmbTarget' ).value = '' ; |
||||||
|
$( 'txtAlt' ).value = '' ; |
||||||
|
$( 'txtAttTitle' ).value = '' ; |
||||||
|
} |
||||||
|
|
||||||
|
function onRemoveArea() |
||||||
|
{ |
||||||
|
currentAreaId = null ; |
||||||
|
$( 'properties' ).style.visibility = 'hidden' ; |
||||||
|
} |
||||||
|
|
||||||
|
function updateAreaValues() |
||||||
|
{ |
||||||
|
if (currentAreaId !== null) |
||||||
|
{ |
||||||
|
myimgmap.areas[currentAreaId].ahref = $( 'txtUrl' ).value ; |
||||||
|
myimgmap.areas[currentAreaId].aalt = $( 'txtAlt' ).value ; |
||||||
|
myimgmap.areas[currentAreaId].atitle = $( 'txtAttTitle' ).value ; |
||||||
|
myimgmap._recalculate(currentAreaId); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// We use our own resizing because the default doesn't take into account Standards rendering mode.
|
||||||
|
function RefreshSize() |
||||||
|
{ |
||||||
|
var oInnerDoc = document ; |
||||||
|
|
||||||
|
var iFrameHeight ; |
||||||
|
if ( document.all ) |
||||||
|
iFrameHeight = oInnerDoc.documentElement.offsetHeight ; |
||||||
|
else |
||||||
|
iFrameHeight = window.innerHeight ; |
||||||
|
|
||||||
|
var iInnerHeight = oInnerDoc.body.scrollHeight ; |
||||||
|
|
||||||
|
var iDiff = iInnerHeight - iFrameHeight ; |
||||||
|
|
||||||
|
if ( iDiff !== 0 ) |
||||||
|
{ |
||||||
|
if ( document.all ) |
||||||
|
window.parent.dialogHeight = ( parseInt( window.parent.dialogHeight, 10 ) + iDiff ) + 'px' ; |
||||||
|
else |
||||||
|
window.parent.resizeBy( 0, iDiff ) ; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function setMode(mode) { |
||||||
|
if (mode == 'pointer') { |
||||||
|
myimgmap.is_drawing = 0; |
||||||
|
myimgmap.nextShape = ''; |
||||||
|
} |
||||||
|
else { |
||||||
|
myimgmap.nextShape = mode; |
||||||
|
} |
||||||
|
|
||||||
|
hightlightMode(mode);
|
||||||
|
} |
||||||
|
|
||||||
|
var previousModeImg = null ; |
||||||
|
function hightlightMode(mode) { |
||||||
|
// Reset previous button
|
||||||
|
if ( previousModeImg ) |
||||||
|
previousModeImg.className = ''; |
||||||
|
|
||||||
|
// Highlight new mode
|
||||||
|
previousModeImg = $( 'img' + mode ); |
||||||
|
previousModeImg.className = 'ActiveMode' ; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Call our custom version to protect URLs */ |
||||||
|
|
||||||
|
function getMapInnerHTML( imgmap ) |
||||||
|
{ |
||||||
|
var html = '' ; |
||||||
|
//foreach area properties
|
||||||
|
for (var i=0; i< imgmap.areas.length; i++) { |
||||||
|
html+= getAreaHtml( imgmap.areas[i] ) ; |
||||||
|
} |
||||||
|
return(html); |
||||||
|
} |
||||||
|
// Protect urls and add only the used attributes
|
||||||
|
function getAreaHtml(area) |
||||||
|
{ |
||||||
|
if ( !area || area.shape == '') |
||||||
|
return ''; |
||||||
|
|
||||||
|
var html = '<area shape="' + area.shape + '"' + |
||||||
|
' coords="' + area.lastInput + '"' ; |
||||||
|
|
||||||
|
if (area.aalt && area.aalt!='') html+= ' alt="' + area.aalt + '"' ; |
||||||
|
if (area.atitle && area.atitle!='') html+= ' title="' + area.atitle + '"' ; |
||||||
|
if (area.ahref && area.ahref!='') html+= ' href="' + area.ahref + '" _fcksavedurl="' + area.ahref + '"' ; |
||||||
|
if (area.atarget && area.atarget!='') html+= ' target="' + area.atarget + '"' ; |
||||||
|
|
||||||
|
html+='/>'; |
||||||
|
return html; |
||||||
|
} |
||||||
|
|
||||||
|
/* edit the properties of an area */ |
||||||
|
|
||||||
|
function SetUrl(value) |
||||||
|
{ |
||||||
|
var id = currentAreaId ; |
||||||
|
if ( id !== null) |
||||||
|
{ |
||||||
|
myimgmap.areas[id].ahref = value ; |
||||||
|
myimgmap._recalculate(id); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function SetTarget(value) |
||||||
|
{ |
||||||
|
var id = currentAreaId ; |
||||||
|
if ( id !== null) |
||||||
|
{ |
||||||
|
myimgmap.areas[id].atarget = value ; |
||||||
|
myimgmap._recalculate(id); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function SetAlt(value) |
||||||
|
{ |
||||||
|
var id = currentAreaId ; |
||||||
|
if ( id !== null) |
||||||
|
{ |
||||||
|
myimgmap.areas[id].aalt = value ; |
||||||
|
myimgmap._recalculate(id); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function SetTitle(value) |
||||||
|
{ |
||||||
|
var id = currentAreaId ; |
||||||
|
if ( id !== null) |
||||||
|
{ |
||||||
|
myimgmap.areas[id].atitle = value ; |
||||||
|
myimgmap._recalculate(id); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/* Browse server */ |
||||||
|
|
||||||
|
function BrowseServer() |
||||||
|
{ |
||||||
|
OpenFileBrowser( |
||||||
|
FCKConfig.LinkBrowserURL, |
||||||
|
FCKConfig.LinkBrowserWindowWidth, |
||||||
|
FCKConfig.LinkBrowserWindowHeight ) ; |
||||||
|
} |
||||||
|
|
||||||
|
function SetUrl( url, width, height, alt ) |
||||||
|
{ |
||||||
|
GetE('txtUrl').value = url ; |
||||||
|
|
||||||
|
if ( alt ) |
||||||
|
GetE('txtAlt').value = alt; |
||||||
|
} |
||||||
@ -0,0 +1,37 @@ |
|||||||
|
//english string resources
|
||||||
|
|
||||||
|
var imgmapStrings = { |
||||||
|
|
||||||
|
READY : 'Ready', |
||||||
|
PREVIEW_MODE : 'Preview mode. Test your image map.', |
||||||
|
DESIGN_MODE : 'Design mode. Add new shapes or modify existing ones.', |
||||||
|
|
||||||
|
HINT_ADD : 'Add new area', |
||||||
|
HINT_DELETE : 'Delete selected area', |
||||||
|
HINT_PREVIEW : 'Preview image map', |
||||||
|
HINT_HTML : 'Get image map HTML', |
||||||
|
HINT_CLIPBOARD : 'Copy to clipboard', |
||||||
|
|
||||||
|
RECTANGLE_DRAW : 'Drawing rectangle. Hold down SHIFT for square mode.', |
||||||
|
RECTANGLE_MOVE : 'Moving rectangle', |
||||||
|
RECTANGLE_RESIZE_TOP : 'Resizing rectangle', |
||||||
|
RECTANGLE_RESIZE_RIGHT : 'Resizing rectangle', |
||||||
|
RECTANGLE_RESIZE_BOTTOM : 'Resizing rectangle', |
||||||
|
RECTANGLE_RESIZE_LEFT : 'Resizing rectangle', |
||||||
|
|
||||||
|
SQUARE_DRAW : 'Drawing circle', |
||||||
|
SQUARE2_DRAW : 'Drawing square. Release SHIFT for rectangle mode.', |
||||||
|
SQUARE_MOVE : 'Moving circle', |
||||||
|
SQUARE_RESIZE_TOP : 'Resizing circle', |
||||||
|
SQUARE_RESIZE_RIGHT : 'Resizing circle', |
||||||
|
SQUARE_RESIZE_BOTTOM : 'Resizing circle', |
||||||
|
SQUARE_RESIZE_LEFT : 'Resizing circle', |
||||||
|
|
||||||
|
POLYGON_DRAW : 'Drawing polygon. Use SHIFT + click for the last control point.', |
||||||
|
POLYGON_MOVE : 'Moving polygon', |
||||||
|
|
||||||
|
ERR_EXCANVAS_LOAD : 'Excanvas not loaded properly. Try to refresh the page.', |
||||||
|
ERR_INVALID_COORDS : 'Invalid coordinates.' |
||||||
|
|
||||||
|
}; |
||||||
|
//alert('lang loaded');
|
||||||
@ -0,0 +1,37 @@ |
|||||||
|
// Spanish string resources
|
||||||
|
|
||||||
|
var imgmapStrings = { |
||||||
|
|
||||||
|
READY : 'Listo', |
||||||
|
PREVIEW_MODE : 'Modo de previsualización. Prueba las zonas interactivas.', |
||||||
|
DESIGN_MODE : 'Modo diseño. Añade nuevas zona o modifica las existentes.', |
||||||
|
|
||||||
|
HINT_ADD : 'Añade nueva zona', |
||||||
|
HINT_DELETE : 'Borra la zona seleccionada', |
||||||
|
HINT_PREVIEW : 'Previsualiza el mapa', |
||||||
|
HINT_HTML : 'Muestra el HTML del mapa', |
||||||
|
HINT_CLIPBOARD : 'Copiar al portapapeles', |
||||||
|
|
||||||
|
RECTANGLE_DRAW : 'Dibujando un rectángulo. Pulsa MAYS para cambiar a cuadrado.', |
||||||
|
RECTANGLE_MOVE : 'Moviendo el rectángulo', |
||||||
|
RECTANGLE_RESIZE_TOP : 'Redimensionando el rectángulo', |
||||||
|
RECTANGLE_RESIZE_RIGHT : 'Redimensionando el rectángulo', |
||||||
|
RECTANGLE_RESIZE_BOTTOM : 'Redimensionando el rectángulo', |
||||||
|
RECTANGLE_RESIZE_LEFT : 'Redimensionando el rectángulo', |
||||||
|
|
||||||
|
SQUARE_DRAW : 'Dibujando un círculo', |
||||||
|
SQUARE2_DRAW : 'Dibujando un cuadrado. Libera MAYS para cambiar a rectángulo.', |
||||||
|
SQUARE_MOVE : 'Moviendo el círculo', |
||||||
|
SQUARE_RESIZE_TOP : 'Redimensionando el círculo', |
||||||
|
SQUARE_RESIZE_RIGHT : 'Redimensionando el círculo', |
||||||
|
SQUARE_RESIZE_BOTTOM : 'Redimensionando el círculo', |
||||||
|
SQUARE_RESIZE_LEFT : 'Redimensionando el círculo', |
||||||
|
|
||||||
|
POLYGON_DRAW : 'Dibujando un polígono. Usa MAYS + click para crear el último punto.', |
||||||
|
POLYGON_MOVE : 'Moviendo el polígono', |
||||||
|
|
||||||
|
ERR_EXCANVAS_LOAD : 'Excanvas no se ha cargado correctamente. Prueba a refrescar la página.', |
||||||
|
ERR_INVALID_COORDS : 'Coordenadas incorrectas.' |
||||||
|
|
||||||
|
}; |
||||||
|
//alert('lang loaded');
|
||||||
@ -0,0 +1,24 @@ |
|||||||
|
|
||||||
|
|
||||||
|
FCKLang.imgmapBtn = 'Insert/Edit Image Map'; |
||||||
|
FCKLang.imgmapBtnRemove = 'Remove map'; |
||||||
|
FCKLang.imgmapDlgTitle = 'Image Map Editor'; |
||||||
|
FCKLang.imgmapDlgName = 'ImageMapEditor'; |
||||||
|
|
||||||
|
FCKLang.msgImageNotSelected = 'You must select an image before using this dialog' ; |
||||||
|
|
||||||
|
FCKLang.imgmapNoLabel = 'No labeling' ; |
||||||
|
FCKLang.imgmapLabelNumber = 'Label with numbers' ; |
||||||
|
FCKLang.imgmapLabelAlt = 'Label with alt text' ; |
||||||
|
FCKLang.imgmapLabelHref = 'Label with href' ; |
||||||
|
FCKLang.imgmapLabelTitle = 'Label with title' ; |
||||||
|
FCKLang.imgmapLabelCoords = 'Label with coords' ; |
||||||
|
|
||||||
|
FCKLang.imgmapMap = 'Map' ; |
||||||
|
FCKLang.imgmapMapName = 'Map name' ; |
||||||
|
FCKLang.imgmapMapAreas = 'Image Map Areas' ; |
||||||
|
|
||||||
|
FCKLang.imgmapPointer = 'Pointer' ; |
||||||
|
FCKLang.imgmapRectangle = 'Rectangle' ; |
||||||
|
FCKLang.imgmapCircle = 'Circle' ; |
||||||
|
FCKLang.imgmapPolygon = 'Polygon' ; |
||||||
@ -0,0 +1,23 @@ |
|||||||
|
|
||||||
|
FCKLang.imgmapBtn = 'Insertar/Editar zonas interactivas'; |
||||||
|
FCKLang.imgmapBtnRemove = 'Quitar el mapa'; |
||||||
|
FCKLang.imgmapDlgTitle = 'Editor de zonas interactivas'; |
||||||
|
FCKLang.imgmapDlgName = 'ImageMapEditor'; |
||||||
|
|
||||||
|
FCKLang.msgImageNotSelected = 'Debes elegir una imagen antes de usar este diálogo' ; |
||||||
|
|
||||||
|
FCKLang.imgmapNoLabel = 'Sin etiquetas' ; |
||||||
|
FCKLang.imgmapLabelNumber = 'Etiquetas con números' ; |
||||||
|
FCKLang.imgmapLabelAlt = 'Etiquetas con el texto alternativo' ; |
||||||
|
FCKLang.imgmapLabelHref = 'Etiquetas con la URL' ; |
||||||
|
FCKLang.imgmapLabelTitle = 'Etiquetas con el título' ; |
||||||
|
FCKLang.imgmapLabelCoords = 'Etiquetas con las coordenadas' ; |
||||||
|
|
||||||
|
FCKLang.imgmapMap = 'Mapa' ; |
||||||
|
FCKLang.imgmapMapName = 'Nombre del mapa' ; |
||||||
|
FCKLang.imgmapMapAreas = 'Zonas interactivas' ; |
||||||
|
|
||||||
|
FCKLang.imgmapPointer = 'Puntero' ; |
||||||
|
FCKLang.imgmapRectangle = 'Rectángulo' ; |
||||||
|
FCKLang.imgmapCircle = 'Círculo' ; |
||||||
|
FCKLang.imgmapPolygon = 'Polígono' ; |
||||||
@ -0,0 +1,280 @@ |
|||||||
|
GNU GENERAL PUBLIC LICENSE |
||||||
|
Version 2, June 1991 |
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc., |
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||||
|
Everyone is permitted to copy and distribute verbatim copies |
||||||
|
of this license document, but changing it is not allowed. |
||||||
|
|
||||||
|
Preamble |
||||||
|
|
||||||
|
The licenses for most software are designed to take away your |
||||||
|
freedom to share and change it. By contrast, the GNU General Public |
||||||
|
License is intended to guarantee your freedom to share and change free |
||||||
|
software--to make sure the software is free for all its users. This |
||||||
|
General Public License applies to most of the Free Software |
||||||
|
Foundation's software and to any other program whose authors commit to |
||||||
|
using it. (Some other Free Software Foundation software is covered by |
||||||
|
the GNU Lesser General Public License instead.) You can apply it to |
||||||
|
your programs, too. |
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not |
||||||
|
price. Our General Public Licenses are designed to make sure that you |
||||||
|
have the freedom to distribute copies of free software (and charge for |
||||||
|
this service if you wish), that you receive source code or can get it |
||||||
|
if you want it, that you can change the software or use pieces of it |
||||||
|
in new free programs; and that you know you can do these things. |
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid |
||||||
|
anyone to deny you these rights or to ask you to surrender the rights. |
||||||
|
These restrictions translate to certain responsibilities for you if you |
||||||
|
distribute copies of the software, or if you modify it. |
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether |
||||||
|
gratis or for a fee, you must give the recipients all the rights that |
||||||
|
you have. You must make sure that they, too, receive or can get the |
||||||
|
source code. And you must show them these terms so they know their |
||||||
|
rights. |
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and |
||||||
|
(2) offer you this license which gives you legal permission to copy, |
||||||
|
distribute and/or modify the software. |
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain |
||||||
|
that everyone understands that there is no warranty for this free |
||||||
|
software. If the software is modified by someone else and passed on, we |
||||||
|
want its recipients to know that what they have is not the original, so |
||||||
|
that any problems introduced by others will not reflect on the original |
||||||
|
authors' reputations. |
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software |
||||||
|
patents. We wish to avoid the danger that redistributors of a free |
||||||
|
program will individually obtain patent licenses, in effect making the |
||||||
|
program proprietary. To prevent this, we have made it clear that any |
||||||
|
patent must be licensed for everyone's free use or not licensed at all. |
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and |
||||||
|
modification follow. |
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE |
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains |
||||||
|
a notice placed by the copyright holder saying it may be distributed |
||||||
|
under the terms of this General Public License. The "Program", below, |
||||||
|
refers to any such program or work, and a "work based on the Program" |
||||||
|
means either the Program or any derivative work under copyright law: |
||||||
|
that is to say, a work containing the Program or a portion of it, |
||||||
|
either verbatim or with modifications and/or translated into another |
||||||
|
language. (Hereinafter, translation is included without limitation in |
||||||
|
the term "modification".) Each licensee is addressed as "you". |
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not |
||||||
|
covered by this License; they are outside its scope. The act of |
||||||
|
running the Program is not restricted, and the output from the Program |
||||||
|
is covered only if its contents constitute a work based on the |
||||||
|
Program (independent of having been made by running the Program). |
||||||
|
Whether that is true depends on what the Program does. |
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's |
||||||
|
source code as you receive it, in any medium, provided that you |
||||||
|
conspicuously and appropriately publish on each copy an appropriate |
||||||
|
copyright notice and disclaimer of warranty; keep intact all the |
||||||
|
notices that refer to this License and to the absence of any warranty; |
||||||
|
and give any other recipients of the Program a copy of this License |
||||||
|
along with the Program. |
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and |
||||||
|
you may at your option offer warranty protection in exchange for a fee. |
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion |
||||||
|
of it, thus forming a work based on the Program, and copy and |
||||||
|
distribute such modifications or work under the terms of Section 1 |
||||||
|
above, provided that you also meet all of these conditions: |
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices |
||||||
|
stating that you changed the files and the date of any change. |
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in |
||||||
|
whole or in part contains or is derived from the Program or any |
||||||
|
part thereof, to be licensed as a whole at no charge to all third |
||||||
|
parties under the terms of this License. |
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively |
||||||
|
when run, you must cause it, when started running for such |
||||||
|
interactive use in the most ordinary way, to print or display an |
||||||
|
announcement including an appropriate copyright notice and a |
||||||
|
notice that there is no warranty (or else, saying that you provide |
||||||
|
a warranty) and that users may redistribute the program under |
||||||
|
these conditions, and telling the user how to view a copy of this |
||||||
|
License. (Exception: if the Program itself is interactive but |
||||||
|
does not normally print such an announcement, your work based on |
||||||
|
the Program is not required to print an announcement.) |
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If |
||||||
|
identifiable sections of that work are not derived from the Program, |
||||||
|
and can be reasonably considered independent and separate works in |
||||||
|
themselves, then this License, and its terms, do not apply to those |
||||||
|
sections when you distribute them as separate works. But when you |
||||||
|
distribute the same sections as part of a whole which is a work based |
||||||
|
on the Program, the distribution of the whole must be on the terms of |
||||||
|
this License, whose permissions for other licensees extend to the |
||||||
|
entire whole, and thus to each and every part regardless of who wrote it. |
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest |
||||||
|
your rights to work written entirely by you; rather, the intent is to |
||||||
|
exercise the right to control the distribution of derivative or |
||||||
|
collective works based on the Program. |
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program |
||||||
|
with the Program (or with a work based on the Program) on a volume of |
||||||
|
a storage or distribution medium does not bring the other work under |
||||||
|
the scope of this License. |
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it, |
||||||
|
under Section 2) in object code or executable form under the terms of |
||||||
|
Sections 1 and 2 above provided that you also do one of the following: |
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable |
||||||
|
source code, which must be distributed under the terms of Sections |
||||||
|
1 and 2 above on a medium customarily used for software interchange; or, |
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three |
||||||
|
years, to give any third party, for a charge no more than your |
||||||
|
cost of physically performing source distribution, a complete |
||||||
|
machine-readable copy of the corresponding source code, to be |
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium |
||||||
|
customarily used for software interchange; or, |
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer |
||||||
|
to distribute corresponding source code. (This alternative is |
||||||
|
allowed only for noncommercial distribution and only if you |
||||||
|
received the program in object code or executable form with such |
||||||
|
an offer, in accord with Subsection b above.) |
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for |
||||||
|
making modifications to it. For an executable work, complete source |
||||||
|
code means all the source code for all modules it contains, plus any |
||||||
|
associated interface definition files, plus the scripts used to |
||||||
|
control compilation and installation of the executable. However, as a |
||||||
|
special exception, the source code distributed need not include |
||||||
|
anything that is normally distributed (in either source or binary |
||||||
|
form) with the major components (compiler, kernel, and so on) of the |
||||||
|
operating system on which the executable runs, unless that component |
||||||
|
itself accompanies the executable. |
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering |
||||||
|
access to copy from a designated place, then offering equivalent |
||||||
|
access to copy the source code from the same place counts as |
||||||
|
distribution of the source code, even though third parties are not |
||||||
|
compelled to copy the source along with the object code. |
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program |
||||||
|
except as expressly provided under this License. Any attempt |
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is |
||||||
|
void, and will automatically terminate your rights under this License. |
||||||
|
However, parties who have received copies, or rights, from you under |
||||||
|
this License will not have their licenses terminated so long as such |
||||||
|
parties remain in full compliance. |
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not |
||||||
|
signed it. However, nothing else grants you permission to modify or |
||||||
|
distribute the Program or its derivative works. These actions are |
||||||
|
prohibited by law if you do not accept this License. Therefore, by |
||||||
|
modifying or distributing the Program (or any work based on the |
||||||
|
Program), you indicate your acceptance of this License to do so, and |
||||||
|
all its terms and conditions for copying, distributing or modifying |
||||||
|
the Program or works based on it. |
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the |
||||||
|
Program), the recipient automatically receives a license from the |
||||||
|
original licensor to copy, distribute or modify the Program subject to |
||||||
|
these terms and conditions. You may not impose any further |
||||||
|
restrictions on the recipients' exercise of the rights granted herein. |
||||||
|
You are not responsible for enforcing compliance by third parties to |
||||||
|
this License. |
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent |
||||||
|
infringement or for any other reason (not limited to patent issues), |
||||||
|
conditions are imposed on you (whether by court order, agreement or |
||||||
|
otherwise) that contradict the conditions of this License, they do not |
||||||
|
excuse you from the conditions of this License. If you cannot |
||||||
|
distribute so as to satisfy simultaneously your obligations under this |
||||||
|
License and any other pertinent obligations, then as a consequence you |
||||||
|
may not distribute the Program at all. For example, if a patent |
||||||
|
license would not permit royalty-free redistribution of the Program by |
||||||
|
all those who receive copies directly or indirectly through you, then |
||||||
|
the only way you could satisfy both it and this License would be to |
||||||
|
refrain entirely from distribution of the Program. |
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under |
||||||
|
any particular circumstance, the balance of the section is intended to |
||||||
|
apply and the section as a whole is intended to apply in other |
||||||
|
circumstances. |
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any |
||||||
|
patents or other property right claims or to contest validity of any |
||||||
|
such claims; this section has the sole purpose of protecting the |
||||||
|
integrity of the free software distribution system, which is |
||||||
|
implemented by public license practices. Many people have made |
||||||
|
generous contributions to the wide range of software distributed |
||||||
|
through that system in reliance on consistent application of that |
||||||
|
system; it is up to the author/donor to decide if he or she is willing |
||||||
|
to distribute software through any other system and a licensee cannot |
||||||
|
impose that choice. |
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to |
||||||
|
be a consequence of the rest of this License. |
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in |
||||||
|
certain countries either by patents or by copyrighted interfaces, the |
||||||
|
original copyright holder who places the Program under this License |
||||||
|
may add an explicit geographical distribution limitation excluding |
||||||
|
those countries, so that distribution is permitted only in or among |
||||||
|
countries not thus excluded. In such case, this License incorporates |
||||||
|
the limitation as if written in the body of this License. |
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions |
||||||
|
of the General Public License from time to time. Such new versions will |
||||||
|
be similar in spirit to the present version, but may differ in detail to |
||||||
|
address new problems or concerns. |
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program |
||||||
|
specifies a version number of this License which applies to it and "any |
||||||
|
later version", you have the option of following the terms and conditions |
||||||
|
either of that version or of any later version published by the Free |
||||||
|
Software Foundation. If the Program does not specify a version number of |
||||||
|
this License, you may choose any version ever published by the Free Software |
||||||
|
Foundation. |
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free |
||||||
|
programs whose distribution conditions are different, write to the author |
||||||
|
to ask for permission. For software which is copyrighted by the Free |
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes |
||||||
|
make exceptions for this. Our decision will be guided by the two goals |
||||||
|
of preserving the free status of all derivatives of our free software and |
||||||
|
of promoting the sharing and reuse of software generally. |
||||||
|
|
||||||
|
NO WARRANTY |
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
||||||
|
REPAIR OR CORRECTION. |
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
||||||
|
POSSIBILITY OF SUCH DAMAGES. |
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS |
||||||
@ -0,0 +1,103 @@ |
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
||||||
|
"http://www.w3.org/TR/html4/loose.dtd"> |
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||||
|
<head> |
||||||
|
<title>Image Map Editor</title> |
||||||
|
<!--[if gte IE 6]> |
||||||
|
<script type="text/javascript" src="jscripts/excanvas.js"></script> |
||||||
|
<![endif]--> |
||||||
|
<script type="text/javascript" src="jscripts/imgmap.js?"></script> |
||||||
|
<script type="text/javascript" src="jscripts/functions.js?"></script> |
||||||
|
<link rel="stylesheet" href="css/imgmap.css" type="text/css"/> |
||||||
|
<meta http-equiv="imagetoolbar" content="no"/> |
||||||
|
|
||||||
|
</head> |
||||||
|
<body> |
||||||
|
|
||||||
|
<form id="img_area_form"> |
||||||
|
<fieldset> |
||||||
|
<legend> |
||||||
|
<a onclick="toggleFieldset(this.parentNode.parentNode)" fckLang="imgmapMap">Map</a> |
||||||
|
</legend> |
||||||
|
<div style="float: left"> |
||||||
|
<label for="MapName" fckLang="imgmapMapName">Map name</label> |
||||||
|
<input type="text" id="MapName" value="" size="30" onchange="myimgmap.mapname = this.value"/> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div style="float: right"> |
||||||
|
<input type="button" id="remove" name="remove" fckLang="imgmapBtnRemove" value="Remove Map" onclick="removeMap();" class="Button" /> |
||||||
|
</div> |
||||||
|
</fieldset> |
||||||
|
|
||||||
|
<fieldset> |
||||||
|
<legend> |
||||||
|
<a onclick="toggleFieldset(this.parentNode.parentNode)" fckLang="imgmapMapAreas">Image Map Areas</a> |
||||||
|
</legend> |
||||||
|
|
||||||
|
<div> |
||||||
|
<div id="button_container" style="float: left;"> |
||||||
|
<!-- buttons come here --> |
||||||
|
<a href="javascript:setMode('pointer')"><img src="images/pointer.png" alt="Pointer" id="imgpointer"></a> |
||||||
|
<a href="javascript:setMode('rectangle')"><img src="images/rect.png" alt="Rectangle" id="imgrectangle"></a> |
||||||
|
<a href="javascript:setMode('circle')"><img src="images/circle.png" alt="Circle" id="imgcircle"></a> |
||||||
|
<a href="javascript:setMode('polygon')"><img src="images/poly.png" alt="Polygon" id="imgpolygon"></a> |
||||||
|
</div> |
||||||
|
<div style="float: right; margin: 0 5px"> |
||||||
|
<select onchange="changelabeling(this)"> |
||||||
|
<option value='' fckLang="imgmapNoLabel">No labeling</option> |
||||||
|
<option value='%n' selected='selected' fckLang="imgmapLabelNumber">Label with numbers</option> |
||||||
|
<option value='%a' fckLang="imgmapLabelAlt">Label with alt text</option> |
||||||
|
<option value='%h' fckLang="imgmapLabelHref">Label with href</option> |
||||||
|
<option value='%t' fckLang="imgmapLabelTitle">Label with title</option> |
||||||
|
<option value='%c' fckLang="imgmapLabelCoords">Label with coords</option> |
||||||
|
</select> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="properties" style="visibility:hidden;"> |
||||||
|
<table cellspacing="0" cellpadding="0" border="0"> |
||||||
|
<tr> |
||||||
|
<td width="100%"> |
||||||
|
<label for="txtUrl" fcklang="DlgImgURL">URL</label><br> |
||||||
|
<input id="txtUrl" style="width: 100%" type="text" onchange="SetUrl(this.value)" /> |
||||||
|
</td> |
||||||
|
<td id="tdBrowse" nowrap="nowrap"> |
||||||
|
<br> |
||||||
|
<input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server" fcklang="DlgBtnBrowseServer" style="display:none"/> |
||||||
|
</td> |
||||||
|
<td><label for="cmbTarget" fckLang="DlgLnkTarget">Target</label><br> |
||||||
|
<select id="cmbTarget" onchange="SetTarget(this.value);"> |
||||||
|
<option value="" fckLang="DlgGenNotSet" selected="selected"><not set></option> |
||||||
|
<option value="_self" fckLang="DlgLnkTargetSelf">Same Window (_self)</option> |
||||||
|
<option value="_blank" fckLang="DlgLnkTargetBlank">New Window (_blank)</option> |
||||||
|
<option value="_top" fckLang="DlgLnkTargetTop">Topmost Window (_top)</option> |
||||||
|
</select> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td colspan="2"> |
||||||
|
<label for="txtAlt" fcklang="DlgImgAlt">Short Description</label><br /> |
||||||
|
<input id="txtAlt" style="width: 100%" type="text" onchange="SetAlt(this.value)" /> |
||||||
|
</td> |
||||||
|
<td> |
||||||
|
<label for="txtAttTitle" fckLang="DlgGenTitle">Advisory Title</label><br /> |
||||||
|
<input id="txtAttTitle" type="text" onchange="SetTitle(this.value)" /> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="status_container"></div> |
||||||
|
</fieldset> |
||||||
|
|
||||||
|
<fieldset> |
||||||
|
<legend> |
||||||
|
<a onclick="toggleFieldset(this.parentNode.parentNode)" fckLang="DlgImgPreview">Preview</a> |
||||||
|
</legend> |
||||||
|
<div id="pic_container"> |
||||||
|
</div> |
||||||
|
</fieldset> |
||||||
|
|
||||||
|
</form> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
||||||
|
"http://www.w3.org/TR/html4/loose.dtd"> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>imgmap plugin index</title> |
||||||
|
<META http-equiv="refresh" content="0;URL=docs/install.html"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<p>You should have been redirected <a href="docs/install.html">to the documentation</a></p> |
||||||
|
</body> |
||||||
|
</html> |
||||||