Files
Lehrlingsparcours/_archiv/LPWeb/.svn/pristine/b9/b9c78e7023b2660e067ebccd490a538be02e4ecf.svn-base
2019-12-21 10:58:30 +01:00

919 lines
20 KiB
Plaintext

<PUBLIC:COMPONENT>
<PUBLIC:EVENT ID="event_oncolorchange" name="oncolorchange" />
<PUBLIC:EVENT ID="event_oncolorpopup" name="oncolorpopup" />
<PUBLIC:PROPERTY name="selectedColor" GET="_get_selectedColor" PUT="_set_selectedColor"/>
<PUBLIC:METHOD name="popupColor" INTERNALNAME="_mtd_popupColor" />
<PUBLIC:ATTACH EVENT="onclick" ONEVENT="_mtd_onclick()" />
</PUBLIC:COMPONENT>
<script type="text/javascript">
/****************************************************************\
Cookie Functions
\****************************************************************/
function SetCookie(name,value,seconds)
{
var cookie=name+"="+escape(value)+"; path=/;";
if(seconds)
{
var d=new Date();
d.setSeconds(d.getSeconds()+seconds);
cookie+=" expires="+d.toUTCString()+";";
}
document.cookie=cookie;
}
function GetCookie(name)
{
var cookies=document.cookie.split(';');
for(var i=0;i<cookies.length;i++)
{
var parts=cookies[i].split('=');
if(name==parts[0].replace(/\s/g,''))
return unescape(parts[1])
}
//return undefined..
}
function GetCookieDictionary()
{
var dict={};
var cookies=document.cookie.split(';');
for(var i=0;i<cookies.length;i++)
{
var parts=cookies[i].split('=');
dict[parts[0].replace(/\s/g,'')]=unescape(parts[1]);
}
return dict;
}
function GetCookieArray()
{
var arr=[];
var cookies=document.cookie.split(';');
for(var i=0;i<cookies.length;i++)
{
var parts=cookies[i].split('=');
var cookie={name:parts[0].replace(/\s/g,''),value:unescape(parts[1])};
arr[arr.length]=cookie;
}
return arr;
}
function HideSelects()
{
var cmd=element.getAttribute("Command");
if(cmd!=null&&cmd!="")return;
selects=[];
var coll=element.document.all.tags("SELECT");
for(var i=0;i<coll.length;i++)
{
var sel=coll[i];
if(sel.currentStyle.visibility!='hidden')
{
selects[selects.length]=sel;
var style=sel.runtimeStyle||sel.style;
style._visibility=style.visibility;
style.visibility='hidden';
}
}
}
// All colors in the following color array will be used in the editor color picker
var colorsArray = new Array("#000000","#993300","#333300","#003300","#003366","#000080","#333399","#333333",
"#800000","#FF6600","#808000","#008000","#008080","#0000FF","#666699","#808080",
"#FF0000","#FF9900","#99CC00","#339966","#33CCCC","#3366FF","#800080","#999999",
"#FF00FF","#FFCC00","#FFFF00","#00FF00","#00FFFF","#00CCFF","#993366","#C0C0C0",
"#FF99CC","#FFCC99","#FFFF99","#CCFFCC","#CCFFFF","#99CCFF","#CC99FF","#FFFFFF");
var ShowMoreColors = true;
var dlgurl='[[_CuteEditorResource_]]Load.ashx?type=dialog&file=ColorPicker.Aspx&culture=[[_culture_]]'+"&[[DNN_Arg]]"
function element._cphtc_sel(color)
{
_color=color;
event_oncolorchange.fire();
}
function element._cphtc_dlg()
{
CloseDiv();
var oldvalue=_color;
function HandleReturn(res)
{
if(res!=null&&res!==false)
{
_color=res;
event_oncolorchange.fire();
}
else if(element.disableVisual)
{
_color=oldvalue;
event_oncolorchange.fire();
}
}
event_oncolorpopup.fire();
_colorpickerDialogFeature = "dialogWidth:520px;dialogHeight:420px;help:0;status:0;resizable:1";
if(element.disableVisual)
{
if(window.editor)
{
window.editor.ShowDialog(HandleReturn,dlgurl
,{editor:editor}
,_colorpickerDialogFeature);
}
else
{
var res=showModalDialog(dlgurl
,{color:oldvalue}
,_colorpickerDialogFeature);
HandleReturn(res);
}
}
else
{
//FEATURE:change the color in ColorPicker.aspx would fire the event so the changing would affect immediately , and it could be auto rollback
if(window.editor)
{
window.editor.ShowDialog(HandleReturn,dlgurl
,{editor:editor}
,_colorpickerDialogFeature);
}
else
{
var res=showModalDialog(dlgurl+'?culture=[[_culture_]]'+"&[[DNN_Arg]]"
,{color:oldvalue,onchange:HandleReturn}
,_colorpickerDialogFeature);
HandleReturn(res);
}
}
}
var _color="";
function _get_selectedColor()
{
return _color;
}
function _set_selectedColor(val)
{
_color=val;
}
var div;
var selects=[];
var isopen=false;
function _mtd_onclick()
{
_mtd_popupColor();
}
function _mtd_popupColor()
{
if(div==null)
{
div = document.createElement("<DIV style='width=140;cursor:default;position:absolute;z-index:88888888;background-color:white;border:0px;overflow:visible;'>");
var temp_html = '';
var total = colorsArray.length;
var width = 8;
temp_html += "<table cellpadding=0 cellspacing=5 style='width:100%;font-family: Verdana; font-size: 6px; BORDER: #666666 1px solid;' bgcolor=#f9f8f7><tr><td>";
temp_html += "<table cellpadding=0 cellspacing=2 style='font-size: 3px;'>";
temp_html += '<tr>';
temp_html += '<td colspan=10 align=center style="padding:1px;border:solid 1px #f9f8f7;margin:1px" onmouseup="document.all.'+element.uniqueID+'._cphtc_sel(this.ColorValue)" ColorValue="" onmouseover="CuteEditor_ColorPicker_ButtonOver(this);">';
temp_html += '<table cellspacing=0 cellpadding=0 border=0 width=90% style="font-size:3px">';
temp_html += '<tr><td width=18><div style="background-color:#000000; border:solid 1px #808080; width:12px; height:12px; font-size: 3px;">&nbsp;</div></td><td align=center style="font:normal 11px verdana;">&nbsp;[[Automatic]]</td></tr>';
temp_html += '</table>';
temp_html += '</td>';
temp_html += '</tr>';
temp_html += '<tr><td>&nbsp;</td></tr>';
for (var i=0; i<total; i++) {
if ((i % width) == 0)
{
temp_html += "<tr>";
}
temp_html += '<td title='+colorsArray[i]+' align=center style="padding:1px;border:solid 1px #f9f8f7;" onmouseover="CuteEditor_ColorPicker_ButtonOver(this);" ColorValue="'+colorsArray[i]+'" onmouseup="document.all.'+element.uniqueID+'._cphtc_sel(this.ColorValue);">';
temp_html += '<div style="background-color:'+colorsArray[i]+'; border:solid 1px #808080; width:12px; height:12px; font-size: 3px;">&nbsp;</div>';
temp_html += '</td>';
if ( ((i+1)>=total) || (((i+1) % width) == 0))
{
temp_html += "</tr>";
}
}
temp_html += '<tr><td>&nbsp;</td></tr>';
//temp_html += '<tr>';
//temp_html += '<td colspan="10" style="height:23px; font-family: arial; font-size:11px; border: solid 1px #f9f8f7;" onMouseOver="" onMouseOut="" onClick="" align=center>&nbsp;More Colors...</td>';
//temp_html += '</tr>';
temp_html += '</table>';
temp_html += '</td></tr>';
if(ShowMoreColors)
{
temp_html += '<tr>';
temp_html += '<td colspan=10 align=center style="padding:1px;border:solid 1px #f9f8f7;" onmouseover="CuteEditor_ColorPicker_ButtonOver(this);" onmouseup="document.all.'+element.uniqueID+'._cphtc_dlg();">';
temp_html += '<table cellspacing=0 cellpadding=0 border=0 width=90% style="font-size:3px">';
temp_html += '<tr><td width=18><div style="background-color:#000000; border:solid 1px #808080; width:12px; height:12px;font-size: 3px;"></div></td><td align=center style="font-size:11px">[[MoreColors]]</td></tr>';
temp_html += '</table>';
temp_html += '</td>';
temp_html += '</tr>';
}
temp_html += '</table>';
div.innerHTML=temp_html;
element.document.body.appendChild(div);
div.onclick=CloseDiv;
}
if(isopen)CloseDiv();
isopen=true;
HideSelects();
div.style.top=0;
div.style.left=0;
div.style.display='block';
var pos=CalcPosition(div,element);
pos.top+=element.offsetHeight;
AdjustMirror(div,element,pos);
div.style.left=pos.left+"px";
div.style.top=pos.top+"px";
var coll=div.all;
for(var i=0;i<coll.length;i++)
coll[i].unselectable='on';
if(div.focus)div.focus();
var manager=new CaptureManager(element,handlelosecapture);
manager.AddElement(div);
}
function handlelosecapture()
{
CloseDiv();
}
function CloseDiv()
{
CaptureManager.Unregister(element);
isopen=false;
div.style.display='none';
for(var i=0;i<selects.length;i++)
{
var sel=selects[i];
sel.runtimeStyle.visibility=sel.runtimeStyle._visibility;
}
}
</script>
<script type="text/javascript">
//Old_Position_Functions.js
/****************************************************************\
Position Functions
\****************************************************************/
//TODO:firefox,fixed,body width
function GetIsFixedPosition(e)
{
var isfirefox=navigator.userAgent.indexOf("Firefox")>-1;
if(!isfirefox)
{
if(e.offsetParent!=null)
return false;
}
var stylepos;
if(e.currentStyle)
stylepos=e.currentStyle.position;
else
stylepos=window.getComputedStyle(e,null).getPropertyValue("position");
return stylepos=="fixed";
}
function GetCurrentBorderWidth(p,side)
{
var val="";
if(p.currentStyle)
{
if(p.currentStyle["border"+side+"Style"]=="none")
return 0;
val=p.currentStyle["border"+side+"Width"]
}
else
{
side=side.toLowerCase();
var s=window.getComputedStyle(p,null);
if(s.getPropertyValue("border-style-"+side)=="none")
return 0;
val=s.getPropertyValue("border-"+side+"-width")
}
if(!val)
return 0;
switch(val)
{
case "thin":
return 1;
case "medium":
if(navigator.userAgent.indexOf("MSIE 7.")>-1||window.document.compatMode!="CSS1Compat")
{
if(p.nodeName=="TABLE"||p.nodeName=="TD")
return 0;
}
return 3;
case "thick":
return 5;
}
return parseInt(val)||0;
}
function GetScrollPosition(e)
{
var isxhtml=window.document.compatMode=="CSS1Compat";
var isie=navigator.userAgent.indexOf("MSIE")>-1;
var isie5=isie&&navigator.userAgent.indexOf("MSIE 5.")>-1;
var isie6=isie&&navigator.userAgent.indexOf("MSIE 6.")>-1;
var isie7=isie&&navigator.userAgent.indexOf("MSIE 7.")>-1;
var isie8=isie&&parseInt(navigator.userAgent.split("MSIE ")[1].split(".")[0])>7;
var isopera=!!window.opera;
var iswebkit=navigator.userAgent.indexOf("AppleWebKit")>-1;
var isfirefox=navigator.userAgent.indexOf("Firefox")>-1;
var pos={left:0,top:0};
var ffborderfix=0;
function AddBoder(par)
{
if(par.nodeName!="BODY"&&par.nodeName!="HTML")
{
pos.left+=GetCurrentBorderWidth(par,"Left");
pos.top+=GetCurrentBorderWidth(par,"Top");
}
}
while(e)
{
pos.left+=e.offsetLeft;
pos.top+=e.offsetTop;
var par=GetStandParent(e);
if(par)
{
//fix the offsetTop/offsetLeft bug.?
for(var p=e.parentNode;p!=par;p=p.parentNode)
{
pos.top-=p.scrollTop;
pos.left-=p.scrollLeft;
}
}
if(GetIsFixedPosition(e))
{
if(isopera)
{
if(e.offsetTop==0)
pos.top+=parseInt(window.getComputedStyle(e,null).getPropertyValue("top"))||0;
if(e.offsetLeft==0)
pos.left+=parseInt(window.getComputedStyle(e,null).getPropertyValue("left"))||0;
}
pos.top+=Math.max(document.body.scrollTop,document.documentElement.scrollTop);
pos.left+=Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
if(isie8)
{
if(e.parentElement&&e.parentElement.style.position=="absolute")
{
var ppos=GetScrollPosition(e.parentElement);
pos.top+=ppos.top;
pos.left+=ppos.left;
}
}
return pos;
}
if(!par)
return pos;
if(isopera)
{
//NOTE: only tested opera 10
//do not check the border!
}
else if(isfirefox)
{
//TODO:-moz-box-sizing:border-box;
AddBoder(par);
//for firefox bug!
if(ffborderfix==0)
{
if(window.getComputedStyle(e,null).getPropertyValue("position")=="absolute")
{
AddBoder(par);
ffborderfix=1;
}
}
}
else if(isxhtml)
{
if(isie8)
{
}
else
{
AddBoder(par);
}
}
else
{
AddBoder(par);
}
if(isxhtml)
{
// if(isie8||isopera||iswebkit) root offsetParent is BODY
if(iswebkit)
{
//if(iswebkit) , the document.body.scrollTop has value , document.documentElement.scrollTop is awlasy zero
if(par.nodeName!="BODY")
{
pos.left-=par.scrollLeft;
pos.top-=par.scrollTop;
}
}
else
{
if(par.nodeName!="HTML")
{
pos.left-=par.scrollLeft;
pos.top-=par.scrollTop;
}
}
}
else
{
if(par.nodeName!="BODY")
{
pos.left-=par.scrollLeft;
pos.top-=par.scrollTop;
}
}
e=par;
}
if(isfirefox)
{
pos.left-=GetCurrentBorderWidth(document.body,"Left");
pos.top-=GetCurrentBorderWidth(document.body,"Top");
pos.left+=GetCurrentBorderWidth(document.documentElement,"Left");
pos.top+=GetCurrentBorderWidth(document.documentElement,"Top");
}
return pos;
}
function GetStandParent(e)
{
if(e.offsetParent)
return e.offsetParent;
if(e.nodeName=="BODY"||e.nodeName=="HTML")
return null;
return document.body;
}
function CalcPosition(floate, e)
{
var epos=GetScrollPosition(e);
if(GetIsFixedPosition(floate))
{
epos.top-=Math.max(document.body.scrollTop,document.documentElement.scrollTop);
epos.left-=Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
return {left:epos.left,top:epos.top};
}
else
{
var spar=GetStandParent(floate);
var spos=GetScrollPosition(spar);
if(spar.nodeName!="BODY"&&spar.nodeName!="HTML")
{
spos.left+=GetCurrentBorderWidth(spar,"Left");
spos.top+=GetCurrentBorderWidth(spar,"Top");
spos.left-=spar.scrollLeft;
spos.top-=spar.scrollTop;
}
}
return {left:epos.left-spos.left,top:epos.top-spos.top};
}
function GetClientPosition(e)
{
var pos=GetScrollPosition(e);
pos.top-=Math.max(document.body.scrollTop,document.documentElement.scrollTop);
pos.left-=Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
return pos;
}
//get the best position to put the floate
function AdjustMirror(floate,e,pos)
{
//c:Client,f:floate,e:e,p:floate"s StandParent,m:Mirror
//get the size of window
var cw=window.document.body.clientWidth;
var ch=window.document.body.clientHeight;
if(window.document.compatMode=="CSS1Compat")
{
cw=window.document.documentElement.clientWidth;
ch=window.document.documentElement.clientHeight;
}
//get the size of float element
var fw=floate.offsetWidth;
var fh=floate.offsetHeight;
var pcpos=GetClientPosition(GetStandParent(floate));
//get the center of float element
var fmpos={left:pcpos.left+pos.left+fw/2,top:pcpos.top+pos.top+fh/2};//
var empos={left:pcpos.left+pos.left,top:pcpos.top+pos.top};
var isbody=false;
if(e!=null)
{
if(e.nodeName=="BODY")
{
isbody=true;
}
var ecpos=GetClientPosition(e);
//get the center of the relative element
empos={left:ecpos.left+e.offsetWidth/2,top:ecpos.top+e.offsetHeight/2};//
}
var allowjump=!isbody;
var allowmove=true;
//left<-->right
if(fmpos.left-fw/2<0)
{
if((empos.left*2-fmpos.left)+fw/2<=cw)
{
if(allowjump)fmpos.left=empos.left*2-fmpos.left;
}
else if(allowmove)
{
fmpos.left=fw/2+4;
}
}
else if(fmpos.left+fw/2>cw)
{
if((empos.left*2-fmpos.left)-fw/2>=0)
{
if(allowjump)fmpos.left=empos.left*2-fmpos.left;
}
else if(allowmove)
{
fmpos.left=cw-fw/2-4;
}
}
//top<-->bottom
if(fmpos.top-fh/2<0)
{
if((empos.top*2-fmpos.top)+fh/2<=ch)
{
if(allowjump)fmpos.top=empos.top*2-fmpos.top;
}
else if(allowmove)
{
fmpos.top=fh/2+4;
}
}
else if(fmpos.top+fh/2>ch)
{
if((empos.top*2-fmpos.top)-fh/2>=0)
{
if(allowjump)fmpos.top=empos.top*2-fmpos.top;
}
else if(allowmove)
{
fmpos.top=ch-fh/2-4;
}
}
pos.left=fmpos.left-pcpos.left-fw/2;
pos.top=fmpos.top-pcpos.top-fh/2;
}
/****************************************************************\
Capture Functions
this manager collect the elements that capture the mouse
if the mouse is in the element , the capture should be close ,
if the mouse is out of any element , the capture should be open .
\****************************************************************/
function CaptureManager(element,handlelosecapture)
{
if(CaptureManager.element&&CaptureManager.element.capturemanager)
{
CaptureManager.element.capturemanager.Unregister();
}
var enabled=true;
var elements=[];
var isout=true;
var iscap=false;
element.capturemanager=Manager;
CaptureManager.element=element;
Manager.AddElement(element);
var elementForCapture=element.document.createElement("<DIV style='width:0px;height:0px;left:0px;top:0px;position:absolute'>");
element.document.body.insertAdjacentElement('afterBegin',elementForCapture);
elementForCapture.attachEvent('onlosecapture',onlosecapture);
AttachEvents(elementForCapture);
elementForCapture.setCapture(true);
iscap=true;
return Manager;
function AttachEvents(subelement)
{
subelement.attachEvent('onmousedown',onmousedown);
subelement.attachEvent('onmousemove',onmousemove);
subelement.attachEvent('onmouseover',onmouseover);
subelement.attachEvent('onmouseout',onmouseout);
}
function DetachEvents(subelement)
{
subelement.detachEvent('onmousedown',onmousedown);
subelement.detachEvent('onmousemove',onmousemove);
subelement.detachEvent('onmouseover',onmouseover);
subelement.detachEvent('onmouseout',onmouseout);
}
function Manager()
{
}
function Manager.Unregister()
{
elementForCapture.detachEvent('onlosecapture',onlosecapture);
DetachEvents(elementForCapture);
elementForCapture.removeNode(true);
for(var i=0;i<elements.length;i++)
{
var subelement=elements[i];
DetachEvents(subelement);
}
enabled=false;
element.capturemanager=null;
CaptureManager.element=null;
if(iscap)
{
//element.document.title="r @ Unregister";
iscap=false;
elementForCapture.releaseCapture();
Manager.FireLoseCapture();
}
}
function Manager.AddElement(subelement)
{
AttachEvents(subelement);
elements[elements.length]=subelement;
}
function Manager.DelElement(subelement)
{
var len=elements.length;
for(var i=0;i<len;i++)
{
if(elements[i]==subelement)
{
DetachEvents(subelement);
for(var j=i;j<len-1;j++)
{
elements[j]=elements[j+1];
}
elements.length=elements.length-1;
return;
}
}
}
function Manager.FireLoseCapture()
{
handlelosecapture();
}
function onlosecapture()
{
if(iscap)//if fired by user
{
iscap=false;
try
{
Manager.FireLoseCapture();
}
finally
{
Manager.Unregister();
}
}
}
function onmousedown()
{
var currentElement=element.document.elementFromPoint(event.clientX,event.clientY);
for(var i=0;i<elements.length;i++)
{
var subelement=elements[i];
if(subelement.contains(currentElement))
return;
}
//if mouse down on other elements
Manager.Unregister();
}
function onmousemove()
{
var currentElement=element.document.elementFromPoint(event.clientX,event.clientY);
HookForElement(currentElement);
}
function HookForElement(currentElement)
{
for(var i=0;i<elements.length;i++)
{
var subelement=elements[i];
if(subelement.contains(currentElement))
{
if(iscap)
{
iscap=false;//set fire by Manager
elementForCapture.releaseCapture();
}
return;
}
}
//if move on other elements
if(!iscap)
{
iscap=true;
elementForCapture.setCapture(true);
}
}
function onmouseover()
{
var currentElement=element.document.elementFromPoint(event.clientX,event.clientY);
isout=false;
for(var i=0;i<elements.length;i++)
{
var subelement=elements[i];
if(subelement.contains(event.fromElement))
return;
if(subelement.contains(currentElement))
{
if(iscap)
{
iscap=false;//set fire by Manager
elementForCapture.releaseCapture();
}
}
}
}
function onmouseout()
{
var currentElement=element.document.elementFromPoint(event.clientX,event.clientY);
isout=false;
for(var i=0;i<elements.length;i++)
{
var subelement=elements[i];
if(subelement.contains(event.toElement))
return;
}
if(!iscap)
{
iscap=true;
elementForCapture.setCapture(true);
}
}
}
if(!window.attachEvent)CaptureManager=CaptureManager_NoneIE;
function CaptureManager_NoneIE(element,handlelosecapture)
{
var manager={};
var elements=[element];
Window_Focus(window);
window.addEventListener("blur",LoseCapture,true);
window.document.addEventListener("click",HandleDocumentClick,true);
function LoseCapture()
{
setTimeout(manager.Unregister,1);
}
function HandleDocumentClick()
{
var src=Event_GetSrcElement();
for(var i=0;i<elements.length;i++)
{
if(Element_Contains(elements[i],src))
return;
}
LoseCapture();
}
manager.AddElement=function manager_AddElement(subelement)
{
elements.push(subelement);
}
manager.Unregister=function manager_Unregister()
{
window.removeEventListener("blur",LoseCapture,true);
window.document.removeEventListener("click",LoseCapture,true);
element.capturemanager=null;
handlelosecapture();
}
element.capturemanager=manager;
return manager;
}
function CaptureManager.Register(element,handlelosecapture)
{
return new CaptureManager(element,handlelosecapture);
}
function CaptureManager.Unregister(element)
{
if(element&&element.capturemanager)
{
element.capturemanager.Unregister();
}
}
</script>
ureManager.Unregister(element)
{
if(element&&element.capturemanager)
{
element.capturemanager.Unregister();
}
}
</script>