//Java-Script-Code zum Editieren von RedDot-Elementen
var sScriptVersionEditElement="6.69";
// Funktionsblock zum Verhindern eines neuen Browserfensters mittels Ctrl+N
//-------------------------------------------------------------------------------
window.setTimeout("RD_SetOnKeyDownEvent()",100);
function RD_SetOnKeyDownEvent()
{  
if (document.body)//document geladen
{                
var sHref=document.location.href.toLowerCase();
if (sHref.indexOf("action=reddot")==-1 && sHref.indexOf("action=filleditpagetopframe")==-1 && sHref.indexOf("iomainiframe.asp")==-1 && sHref.indexOf("iotreeapplevel1_2.asp")==-1 && sHref.indexOf("iotree")==-1 && sHref.indexOf("iouserinfo.asp")==-1 && sHref.indexOf("iotreeiframe")==-1 && sHref.indexOf("xcms_frame.asp")==-1 && sHref.indexOf("rdhomepage.asp")==-1)
return;//keydown-event nicht abfangen, um dialogfenstern, die diesen event nutzen, nicht dazwischenzupfuschen!     
else 
document.body.onkeydown=RD_PreventNewBrowserWindow; 
}
else//document noch nicht geladen, also warten und dann nochmal pruefen 
window.setTimeout("RD_SetOnKeyDownEvent()",100);
}
function RD_PreventNewBrowserWindow()
{     
if (event)
{
if (window.event.ctrlKey && window.event.shiftKey && (window.event.keyCode == 8))//Spezaltastenkombination fuer Entwickler
{
window.document.oncontextmenu=EnableCon;
return false;
}
if (event.keyCode==78 && (!event.altKey && event.ctrlKey))//Strg+N abfangen 
return false;
}
}
//-------------------------------------------------------------------------------
function DeleteUserdefinedOptionlistEntry(sEltUserDefinedId)
{
if (document.getElementById(sEltUserDefinedId))
document.getElementById(sEltUserDefinedId).value="";
}
function DeleteOptionlistEntry(sEltId)
{
if (window.event)
{
if (window.event.keyCode==9 || window.event.shiftKey)//TAB-Taste
return;
} 
if (document.getElementById(sEltId))
document.getElementById(sEltId).selectedIndex=-1;
}  
function GetFileName(sFullFileNameA)
{
if (sFullFileNameA == "") return "";
var sFullFileName = sFullFileNameA;
var iBeginFileName = sFullFileName.lastIndexOf("\\");
if (iBeginFileName == -1) return sFullFileName;
return sFullFileName.slice(iBeginFileName+1);
}
function ValidateFileSuffix(sAllowedSuffixesA, sFileNameA)
{
if (sFileNameA == "") return false;
if (sAllowedSuffixesA == "") return true;
var sFileName = GetFileName(sFileNameA);
var arSuffixes = null;
var bSuffixFound = false;
if (sAllowedSuffixesA.indexOf(",")>0)
arSuffixes = sAllowedSuffixesA.split(","); //Init the Array
else
arSuffixes = sAllowedSuffixesA.split(";"); //Init the Array
var sSuffix = sFileNameA.slice(sFileNameA.lastIndexOf(".")+1).toLowerCase(); //get suffix from current file
for (var iSuffix=0; iSuffix<arSuffixes.length; iSuffix++)
if (arSuffixes[iSuffix].toLowerCase() == sSuffix)
{ bSuffixFound = true; break; }
return bSuffixFound;
}
function KillError()
{
return true
}
window.onerror = KillError;
function GetKeyState()
{
if (window.event.ctrlKey && window.event.shiftKey && (window.event.keyCode == 8))
{
window.document.oncontextmenu=EnableCon;
return false;
}
}
function EnableCon()
{ return true; }
var objDialogWindow=null;
var BaseFontSize="";
var BaseFontFace="";
var BaseFontColor="";
if (document.all != null)
{
var objBaseFont=document.all.tags("BASEFONT");
if (objBaseFont.length > 0)
{
BaseFontSize=String(objBaseFont(0).getAttribute("size")); 
BaseFontFace=String(objBaseFont(0).getAttribute("face")); 
BaseFontColor=String(objBaseFont(0).getAttribute("color")); 
}
}
var FontSize="";
var FontFace="";
var FontColor="";
var TempFontSize="";
var TempFontFace="";
var TempFontColor="";
var FontSettings="";
if (!isNaN(BaseFontSize))
{
iBaseFontSize=Number(BaseFontSize);
}
function CheckFont(objThis)
{
if (document.all != null)
{
FontSize="";
FontFace="";
FontColor="";
PrepareFontSettings(objThis);
if (FontSize.indexOf("+") > -1 || FontSize.indexOf("-") > -1)
{
if (BaseFontSize == "") 
{
FontSize=3;
}
else
{var sValue=FontSize.slice(1);
if (FontSize.indexOf("+") > -1)
{
FontSize=String(Number(BaseFontSize)+Number(sValue));
}
else
{
FontSize=String(Number(BaseFontSize)-Number(sValue));
}  
}  
}
else if (FontSize == "") 
{
FontSize=BaseFontSize;
}     
FontSettings="";
if (FontSize != "") 
FontSettings=FontSettings + "&FontSize=" + FontSize
if (FontFace != "")  
FontSettings=FontSettings + "&FontFace=" + escape(FontFace)
if (FontColor != "")   
FontSettings=FontSettings + "&FontColor=" + escape(FontColor);
}
}
function PrepareFontSettings(objThis)
{     
if (objThis.parentElement.tagName != "BODY")
{
if (objThis.parentElement.tagName == "FONT" || objThis.parentElement.tagName == "BASEFONT")
{
TempFontSize=String(objThis.parentElement.getAttribute("size"));
TempFontFace=String(objThis.parentElement.getAttribute("face"));
TempFontColor=String(objThis.parentElement.getAttribute("color"));
if (TempFontSize != "" && FontSize == "" && objThis.parentElement.tagName != "BASEFONT")
{
FontSize=TempFontSize;
}
if (TempFontFace != "" && FontFace == "")
FontFace=TempFontFace;
if (TempFontColor != "" && FontColor == "")
FontColor=TempFontColor;
}
PrepareFontSettings(objThis.parentElement);
}   
}
function EditElement(sURLA,sNewValueA,sFileTitleA)//RedDot-Element bearbeiten
{
try
{
var sCheck=sInvertDirectEdit;
}
catch(e)//Variable existiert nur Im SmartEdit-Modus!
{
eval('var sInvertDirectEdit="0"');
}       
if (document.all)//Pruefen, ob Element direkt in der Seite bearbeitet werden kann
{  
var oWindowEvent=window.event;
var fCtrlKey=(sInvertDirectEdit=="1");//Logik invertieren, da Benutzer ohne Ctrl-Taste direkt arbeiten will
if (oWindowEvent)
{        
if (sInvertDirectEdit=="1")//Logik invertieren, da Benutzer ohne Ctrl-Taste direkt arbeiten will
fCtrlKey=!window.event.ctrlKey; 
else
fCtrlKey=window.event.ctrlKey;
} 
if (document.activeElement)
{
if (document.activeElement.outerHTML.indexOf("icons/reddotsave.gif")>-1)//DirectEditMode aktiv
fCtrlKey=true;
}
if (sNewValueA)//DragDrop-Aktion, daher DirectEdit erzwingen
fCtrlKey=true;
if (RDOtherElementOpen(sURLA))//Pruefen, ob bereits ein Element in Bearbeitung
return;       
if (fCtrlKey)//Element direkt in der Seite bearbeiten
{
if (CheckDirectEditMode(sURLA,sNewValueA,sFileTitleA))
return;
}
}
sURLA=sURLA + FontSettings + "&OpenerIsRedDot=1";   
OpenWindow(sURLA);
}
function RDOtherElementOpen(sURLA)
{
var sEltGuid=GetParamValueFromURL(sURLA,"GUID");
var oImages=document.all.tags("IMG");  
for (var i=0; i<oImages.length; i++)
{
var sImgEltGuid=oImages(i).id;
var iPos=sImgEltGuid.indexOf("RedDot_");
if (iPos>-1)
{
sImgEltGuid=sImgEltGuid.slice(iPos+7);
if (sImgEltGuid.toUpperCase()!=sEltGuid.toUpperCase())
if (oImages(i).src.toLowerCase().indexOf("reddotsave.gif")>-1)
{
OpenWindow('ioRD.asp?Action=ShowMessageCloseWindow&MessageID=14603');
return true;
}
}
} 
return false;   
}
function GetParamValueFromURL(sURLA,sParamNameA)//Parameterwert aus einer URL ermitteln
{   
sParamNameA=sParamNameA.toUpperCase();
var sParamValue="";
var iPos=sURLA.toUpperCase().indexOf("?" + sParamNameA);
if (iPos==-1)
iPos=sURLA.toUpperCase().indexOf("&" + sParamNameA);
if (iPos>-1)
{
sParamValue=sURLA.slice(iPos+sParamNameA.length+2);
iPos=sParamValue.indexOf("&");
if (iPos>-1)
sParamValue=sParamValue.slice(0,iPos);
}
iPos=sParamValue.indexOf('"');
if (iPos>-1)
sParamValue=sParamValue.slice(0,iPos);
return sParamValue;  
}
var fControlsActivated=false;
function CalculateDragDropPositions()//DragDrop-Container bei Bildelementen links unten ueber dem Bild platzieren
{
if (!fControlsActivated)    
{
RDActivateControls(); 
fControlsActivated=true; 
}   
return;//Erstmal totgelegt wegen problemen in bestimmten templates
var oRDDragDrop=document.all.tags("OBJECT");  
for (var i=0; i<oRDDragDrop.length; i++)
{
var sID=oRDDragDrop(i).id;
iPos=sID.lastIndexOf("_");
sID=sID.slice(0,iPos);
if (sID.indexOf("RDDragDropX")>-1)
{
var sGuid=sID.slice(12);
var oImages=document.all.tags("IMG");  
for (var i2=0; i2<oImages.length; i2++)
{
var sEltGuid=oImages(i2).getAttribute("eltguid");
if (sEltGuid)
{
if (sEltGuid==sGuid)
{
if (oImages(i2).offsetWidth>20 && oImages(i2).offsetHeight>20 && oImages(i2).offsetLeft>0 && oImages(i2).offsetTop>0)
{
oRDDragDrop(i).style.position="absolute";
//Zentriert
//oRDDragDrop(i).style.left=oImages(i2).offsetLeft+oImages(i2).offsetWidth/2-15;
//oRDDragDrop(i).style.top=oImages(i2).offsetTop+oImages(i2).offsetHeight/2-11;
//Links unten
oRDDragDrop(i).style.left=oImages(i2).offsetLeft;
oRDDragDrop(i).style.top=oImages(i2).offsetTop+oImages(i2).offsetHeight-14;
}
}
}
}
}
}
}
function InsertDragDropMedia(sURLA,sNewValueA,sFileTitleA)
{
var sEltGuid=GetParamValueFromURL(sURLA,"GUID");
var sExtendedInfo=GetParamValueFromURL(sURLA,"ExtendedInfo");      
var sHeadlinePageGuid=GetParamValueFromURL(sURLA,"HeadlinePageGuid");   
var iEltMaxSize=Number("0" + GetParamValueFromURL(sURLA,"EltMaxsize"));
if (iEltMaxSize>0)//Dateigroesse pruefen
{
iFileSize=sNewValueA.length/2;
if (iFileSize>(iEltMaxSize)*1000)//erlaubte Dateigroesse ueberschritten
{
OpenWindow('ioRD.asp?Action=ShowMessageCloseWindow&MessageID=2879&Message=&nbsp;' + String(iEltMaxSize) + ' KB');
return;
}
}
OpenWindow('RDWaitingForServerResponse.asp',650,130);
var objForm=document.frames.RDSaveBinaryElementData.document.ioForm;
objForm.EltGuid.value=sEltGuid;  
objForm.ExtendedInfo.value=sExtendedInfo;   
objForm.HeadlinePageGuid.value=sHeadlinePageGuid;
objForm.EltValue.value=sNewValueA;
objForm.FileTitle.value=escape(sFileTitleA);   
objForm.submit();     
}
function GetFileSuffix(sFileTitleA)
{
if (!sFileTitleA)
return "";
var sSuffix=sFileTitleA;
var iPos=sSuffix.lastIndexOf(".");
if (iPos>-1)
sSuffix=sSuffix.slice(iPos+1);
return sSuffix.toLowerCase();
}
function RemoveCrLf(sValue)//Zeilenumbrueche entfernen      
{
return sValue.replace(/\r\n/g,"");
}
function CheckDirectEditMode(sURLA,sNewValueA,sFileTitleA)//Editiermodus des Elementes pruefen
{
document.body.style.cursor="auto";
var sEltGuid=GetParamValueFromURL(sURLA,"GUID");
if (!document.all(sEltGuid) && !sFileTitleA)//Element nicht gefunden
return false;
if (!sFileTitleA)//nur wenn Daten nicht binaer vorliegen, koennen sie direkt in der Seite bearbeitet werden
{
if (document.all(sEltGuid).length>0)//Element mehrfach vorhanden
var oSpan=document.all(sEltGuid)[0];   
else 
var oSpan=document.all(sEltGuid);   
}
var iEltType=Number(GetParamValueFromURL(sURLA,"EltType"));
var iEltFlags=Number(GetParamValueFromURL(sURLA,"EltFlags"));
var iEltMaxSize=Number(GetParamValueFromURL(sURLA,"EltMaxSize"));
var sExtendedInfo=GetParamValueFromURL(sURLA,"ExtendedInfo");   
var sHeadlinePageGuid=GetParamValueFromURL(sURLA,"HeadlinePageGuid"); 
var sDeactivateTextFilter=GetParamValueFromURL(sURLA,"DeactivateTextFilter");   
var fUserDefined=((iEltFlags & 2097152)==2097152);
var fDoNotHtmlEncode=((iEltFlags & 1048576)==1048576);
var fAsciiText=(iEltType==31);
var fHtmlText=(iEltType==32);
var sSuffix=GetFileSuffix(sFileTitleA);
var fBlindText=false;
var iDirectEditFlags=0;
if (oSpan)
{
iDirectEditFlags=Number(oSpan.getAttribute("DirectEditFlags"));      
fBlindText=((iDirectEditFlags & 1)==1);     
}
if (iEltType==2 || iEltType==19 || iEltType==38)//Image oder Mediadatei per DragDrop uebergeben
{
InsertDragDropMedia(sURLA,sNewValueA,sFileTitleA);
return true;
}
if (iEltType==8 && !fUserDefined)//Optionsliste nicht benutzerdefiniert, daher nicht direkt editierbar
{
return true;
}
var fIsContentEditable=oSpan.isContentEditable;
if ((fAsciiText || fHtmlText) && !sNewValueA && !fIsContentEditable && oSpan.innerText.length>iEltMaxSize && iEltMaxSize>0)//Der Inhalt des TextElements enthält mehr Zeichen als erlaubt und muss daher im TextEditor bearbeitet und sinnvoll gekuerzt werden
return false;
if (document.all("RedDot_" + sEltGuid).length>0)//RedDot mehrfach vorhanden
var oImg=document.all("RedDot_" + sEltGuid)[0];   
else
var oImg=document.all("RedDot_" + sEltGuid);   
if (sNewValueA!=null && iEltMaxSize>0)
{
if (sNewValueA.length>iEltMaxSize && iEltMaxSize>0)
sNewValueA=sNewValueA.slice(0,iEltMaxSize);
}    
if (sNewValueA!=null && fIsContentEditable)//Neuer Wert per DragDrop-Aktion uebergeben
{    
ResetValue(sEltGuid,false);
fIsContentEditable=false;
}
if (fIsContentEditable)//Inhalt speichern
{
if (oSpan.getAttribute("imgsrc").toLowerCase().indexOf("reddotobligatory.gif")>-1 && oSpan.innerText=="")//obligatorisches Element ohne Inhalt
{
oSpan.focus();
return true;
} 
var sNewValue="";
var sLastValue="";
oImg.src=oSpan.getAttribute("imgsrc");
sLastValue=oSpan.getAttribute("lastvalue");
oSpan.contentEditable = false;     
sNewValue=oSpan.innerText;
var fSave=(sLastValue!=sNewValue);
if (fBlindText && sNewValue=="")//Blindtext angezeigen
{
fSave=false;
ResetValue(sEltGuid,false);   
}
if (fSave)//Speichern, da geaendert
{   
document.body.style.cursor="wait";
if (fBlindText)//Beim naechsten Aufruf ist der Blindtext nicht mehr verfuegbar, da ueberschrieben mit neuem Inhalt
oSpan.setAttribute("DirectEditFlags","0");
var sImgSrc=oImg.src;
if (sImgSrc.indexOf("TranslateReddot.gif")>-1)
oImg.src=oImg.src.replace("TranslateReddot.gif","TranslatedReddot.gif");
if (fAsciiText || fHtmlText)            
var objForm=document.frames.RDSaveBinaryElementData.document.ioForm;       
else
var objForm=document.frames.RDSaveElementData.document.ioForm;       
objForm.EltGuid.value=sEltGuid;
objForm.ExtendedInfo.value=sExtendedInfo;
objForm.HeadlinePageGuid.value=sHeadlinePageGuid;
if (fAsciiText && fDoNotHtmlEncode || fHtmlText)
{         
if (sDeactivateTextFilter=="0")
RDCleanHTMLCode(oSpan);
if (oSpan.innerHTML=="&gt;")
oSpan.innerHTML="";
objForm.EltValue.value=escape(RDRepareTableAttributes(oSpan.innerHTML));
}
else
{
if (fAsciiText || fHtmlText)            
objForm.EltValue.value=escape(sNewValue);
else
objForm.EltValue.value=sNewValue;
oSpan.innerText=sNewValue;//Abgleich, falls ueber Zwischenablage formatiert eingefuegt wurde
}
objForm.submit();     
}
else//Editiermodus beenden ohne zu speichern
//oSpan.style.backgroundImage="";
oSpan.style.border="";
}
else//Inhalt bearbeiten
{
if (oSpan.parentElement.href)
{
oSpan.setAttribute("parenthref",oSpan.parentElement.href);
oSpan.parentElement.removeAttribute("href");
}
oSpan.setAttribute("imgsrc",oImg.src);
//oSpan.style.backgroundImage="url(Icons/grid8x8.gif)";
//---Definiton zur Darstellung der Umrandung ermitteln----------
//---Vorgabe, falls in SmartEdit-Seite Variablen nicht belegt---
var sRDBorderStyle="solid";
var sRDBorderWidth="1px";
var sRDBorderColor="#CC0000";   
//--------------------------------------------------------------
try
{
sRDBorderStyle=eval("RDBorderStyle");
}
catch(e) {}
try
{
sRDBorderWidth=eval("RDBorderWidth");
}
catch(e) {}
try
{
sRDBorderColor=eval("RDBorderColor");
}
catch(e) {}            
oSpan.style.border=sRDBorderColor + " " + sRDBorderWidth + " " + sRDBorderStyle;
if (fAsciiText && fDoNotHtmlEncode || fHtmlText)
{
oSpan.setAttribute("lastvalue",oSpan.innerHTML);
if (oSpan.innerHTML.length==0) //Text leer, also P-Tag einbauen wie im Editor
oSpan.innerHTML = "<P></P>";
}
else
oSpan.setAttribute("lastvalue",oSpan.innerText);
if (fBlindText)//Blindtext wurde angezeigt, daher Elementinhalt loeschen.
{
if (fAsciiText && fDoNotHtmlEncode || fHtmlText) //Da HTML-Text jetzt leer, P-Tag einbauen wie im Editor
oSpan.innerHTML="<P></P>";
else //Leerer ASCII-Text
oSpan.innerText="";
} 
oSpan.contentEditable = true;
if (sNewValueA!=null)//Neuer Wert wurde als Parameter uebergeben
{
if (fAsciiText || fHtmlText)
{
if (fAsciiText && fDoNotHtmlEncode || fHtmlText)
{
if (sNewValueA==window.clipboardData.getData("Text"))//Formatierten Text der Zwischenablage uebernehmen
{
var oRange = document.body.createTextRange();
oRange.moveToElementText(oSpan);
oRange.select();                
oRange.execCommand("Paste", false);             
}
else 
oSpan.innerHTML=GetBodyInnerHtml(sNewValueA);
if (sDeactivateTextFilter=="0")
RDCleanHTMLCode(oSpan);//Eingefuegten Text von nicht erlaubten Tags bereinigen             
}
else
oSpan.innerText=RemoveCrLf(sNewValueA);
}
else
oSpan.innerText=RemoveCrLf(sNewValueA);
}
oSpan.focus();
oImg.src="icons/reddotsave.gif";    
}
CalculateDragDropPositions();
return true; 
}        
function GetBodyInnerHtml(sHtmlDataA)
{
var iPos=sHtmlDataA.toLowerCase().indexOf("<body");
if (iPos>-1)//Body-Tag gefunden
{
sHtmlDataA=sHtmlDataA.slice(iPos);
iPos=sHtmlDataA.indexOf(">");
if (iPos>-1)
{
sHtmlDataA=sHtmlDataA.slice(iPos+1);
iPos=sHtmlDataA.toLowerCase().indexOf("</body>");
if (iPos>-1)//Ende-Body-Tag gefunden
sHtmlDataA=sHtmlDataA.slice(0,iPos);       
}
else//es fehlt der schliessende Tag, also nichts zurueckgeben
sHtmlDataA="";
}
return sHtmlDataA;
}
function ResetValue(sEltGuid,fEditMode)//Letzten gespeicherten Wert anzeigen
{
if (document.all(sEltGuid).length>0)//Element mehrfach vorhanden
var oSpan=document.all(sEltGuid)[0];   
else 
var oSpan=document.all(sEltGuid);   
if (document.all("RedDot_" + sEltGuid).length>0)//RedDot mehrfach vorhanden
oImg=document.all("RedDot_" + sEltGuid)[0];   
else
oImg=document.all("RedDot_" + sEltGuid);   
if (fEditMode)
oImg.src="icons/reddotsave.gif"; 
var iEltFlags=Number(oSpan.getAttribute("eltflags"));
var iEltType=Number(oSpan.getAttribute("elttype"));
var fDoNotHtmlEncode=((iEltFlags & 1048576)==1048576);
var fAsciiText=(iEltType==31);
var fHtmlText=(iEltType==32);
if (fAsciiText && fDoNotHtmlEncode || fHtmlText) 
oSpan.innerHTML=oSpan.getAttribute("lastvalue");
else
oSpan.innerText=oSpan.getAttribute("lastvalue");
oSpan.contentEditable=fEditMode;
if (fEditMode)//Wert im Editiermodus anzeigen
oSpan.focus();
else
{
oImg.src=oSpan.getAttribute("imgsrc");
//oSpan.style.backgroundImage="";
oSpan.style.border="";     
if (oSpan.parenthref)
oSpan.parentElement.setAttribute("href",oSpan.parenthref);
}  
CalculateDragDropPositions();  
}
function HoldElementEditable(sEltGuid)//Element im Editiermodus halten
{
if (document.all(sEltGuid).length>0)//Element mehrfach vorhanden
var oSpan=document.all(sEltGuid)[0];   
else 
var oSpan=document.all(sEltGuid);   
if (document.all("RedDot_" + sEltGuid).length>0)//RedDot mehrfach vorhanden
oImg=document.all("RedDot_" + sEltGuid)[0];   
else
oImg=document.all("RedDot_" + sEltGuid);   
oImg.src="icons/reddotsave.gif"; 
oSpan.contentEditable=true;
oSpan.focus();
CalculateDragDropPositions();  
}
function ElementValueSaved(sEltGuid)//Randmarkierung fuer bearbeitetes Element zuruecksetzen, da Speichervorgang beendet
{
var oSpan=document.all(sEltGuid);  
if (oSpan)
{
if (oSpan.length>0)//Element mehrfach vorhanden, daher Inhalte synchronisieren
{      
//oSpan[0].style.backgroundImage="";
oSpan[0].style.border="";
oSpan[0].removeAttribute("imgsrc");
oSpan[0].removeAttribute("lastvalue");
oSpan[0].removeAttribute("parenthref");       
for (var i=1; i<oSpan.length; i++)//Werte synchronisieren
oSpan[i].innerHTML=oSpan[0].innerHTML;
}
else 
{
//oSpan.style.backgroundImage="";
oSpan.style.border="";
oSpan.removeAttribute("imgsrc");
oSpan.removeAttribute("lastvalue");
if (oSpan.parenthref)
{
oSpan.parentElement.setAttribute("href",oSpan.parenthref);
oSpan.removeAttribute("parenthref");
}
}       
}
RDShowPreviewWindow(true);    
document.body.style.cursor="auto";
}
function RDShowPreviewWindow(fOnlyIfOpen)// Oeffnet ein Fenster, das immer im Vordergrund ist, dem darunterliegenden Fenster aber nicht den Fokus wegnimmt                                             
{
if (document.all)
{
if (document.location.href.indexOf("Mode=1")>-1)
GetFrame("ioMenu").OpenWindowAlwaysOnTop(document.location.href.replace(/Mode=1/,"Mode=0"),null,null,600,400,fOnlyIfOpen);   
if (document.location.href.indexOf("Mode=2")>-1)
GetFrame("ioMenu").OpenWindowAlwaysOnTop(document.location.href.replace(/Mode=2/,"Mode=0"),null,null,600,400,fOnlyIfOpen);   
}
}
function CheckClipboardData(iMaxSize)//Zwischenablage pruefen und evtl. bereinigen
{
var oActiveElt=document.activeElement;
var iEltFlags=Number(oActiveElt.getAttribute("eltflags"));
var iEltType=Number(oActiveElt.getAttribute("elttype"));     
var fDoNotHtmlEncode=((iEltFlags & 1048576)==1048576);
var fAsciiText=(iEltType==31);
var fHtmlText=(iEltType==32);      
if (fAsciiText && !fDoNotHtmlEncode || !fHtmlText)//Formatierungen nicht erlaubt
{
var sText=RemoveCrLf(window.clipboardData.getData("Text"));     
var objRange=document.selection.createRange();
objRange.text=sText;
if (iMaxSize>0)//Laenge begrenzen
oActiveElt.innerText=oActiveElt.innerText.slice(0,iMaxSize);
return false;
}
}
function CheckSizeAndKey(iSize)//Feldgroesse und gedrueckte Taste pruefen  
{
if (document.all)
{ 
if (event.ctrlKey && event.keyCode==78)//Ctrl+N verhindern
return false;
var oActiveElt=document.activeElement;
var iEltFlags=Number(oActiveElt.getAttribute("eltflags"));
var iEltType=Number(oActiveElt.getAttribute("elttype"));     
var iEltEditorOptions=Number(oActiveElt.getAttribute("elteditoroptions"));     
var fDoNotHtmlEncode=((iEltFlags & 1048576)==1048576);
var fAsciiText=(iEltType==31);
var fHtmlText=(iEltType==32);      
var fNoBold=((iEltEditorOptions & 1)>0);
var fNoItalic=((iEltEditorOptions & 2)>0);
var fNoUnderline=((iEltEditorOptions & 4)>0);
var fNoLink=((iEltEditorOptions & 131072)>0);
var iBold=66;
var iItalic=73;
var iHyperLink=75;
var iUnderline=85;
if (event.keyCode==27)//ESC-Taste gedrueckt
{
if (oActiveElt.contentEditable && oActiveElt.outerHTML.indexOf("lastvalue")>-1)//Alten Inhalt wiederherstellen und Element schliessen
{
if (oActiveElt.parenthref)
oActiveElt.parentElement.setAttribute("href",oActiveElt.parenthref);
if (fAsciiText && fDoNotHtmlEncode || fHtmlText) 
oActiveElt.innerHTML=oActiveElt.lastvalue;
else
oActiveElt.innerText=oActiveElt.lastvalue;
var sEltGuid=oActiveElt.id;
var oImg=null;
if (document.all("RedDot_" + sEltGuid).length>0)//RedDot mehrfach vorhanden
oImg=document.all("RedDot_" + sEltGuid)[0];   
else
oImg=document.all("RedDot_" + sEltGuid);   
//oImg.src=oActiveElt.getAttribute("imgsrc"); 
//Da einige iexplorer mackig sind, muss das bild zeitverzoegert refresht werden
window.setTimeout("RDResetImageSrc('" + oActiveElt.getAttribute("imgsrc") + "','" + sEltGuid + "')",100);
oActiveElt.contentEditable=false;
//oActiveElt.style.backgroundImage="";
oActiveElt.style.border="";
oActiveElt.removeAttribute("imgsrc");
oActiveElt.removeAttribute("lastvalue");
}
CalculateDragDropPositions(); 
return false; 
}
if (fAsciiText && fDoNotHtmlEncode || fHtmlText)
{
if (oActiveElt.innerText.length>iSize && iSize>0)
{
/* //Automatische Text-Korrektur erstmal totlegen!
if (oActiveElt.children.length==0) //Zeichenkette stumpf kuerzen, da kein HTML vorhanden
oActiveElt.innerText=oActiveElt.innerText.slice(0,iSize);         
else //Zeichenkette so kuerzen, dass HTML-Syntax gueltig bleibt
oActiveElt.innerHTML=CorrectTextSize(oActiveElt.children(0),iSize); 
*/ 
}
if (event.ctrlKey || (sInvertDirectEdit=="1" && !event.ctrlKey))//EditorOptionen pruefen
{
if ((event.keyCode==iBold && fNoBold ||event.keyCode==iItalic && fNoItalic ||event.keyCode==iHyperLink && fNoLink ||event.keyCode==iUnderline && fNoUnderline) && event.ctrlKey)
return false;
}
}
else
{
if (oActiveElt.innerText.length>iSize && iSize>0)     
oActiveElt.innerText=oActiveElt.innerText.slice(0,iSize);          
if ((event.keyCode==iBold ||event.keyCode==iItalic ||event.keyCode==iHyperLink ||event.keyCode==iUnderline) && event.ctrlKey)
return false;//Formatierung verhindern
}
if (event.keyCode==8 || event.keyCode==46 || (event.keyCode>34 && event.keyCode<41))//Loesch- und Pfeiltasten immer zulassen
return true;
if (event.keyCode==13)//Return-Taste nicht zulassen
return (fHtmlText || (fAsciiText && fDoNotHtmlEncode));
if (iSize<1)
return true;
else
return (oActiveElt.innerText.length<iSize);
}
}
function CorrectTextSize(objElt,iSize)//Textinhalt solange kuerzen, bis er passt
{
var objTemp=document.createElement("SPAN"); 
objTemp.innerHTML=objElt.outerHTML;
while (true)
{
if (objTemp.innerText.length<=iSize)
return (objElt.outerHTML);
var iPos=objTemp.innerHTML.lastIndexOf("<");
if (iPos==-1)
return objTemp.innerText.slice(0,iSize);
else
{
var sNewText=objTemp.innerHTML.slice(0,iPos);
objTemp.innerHTML=sNewText;
while (objTemp.innerText.length>iSize)
{
var iPos2=sNewText.lastIndexOf("<");
if (iPos2==-1)
return objTemp.innerText.slice(0,iSize);       
sNewText=sNewText.slice(0,iPos2); 
objTemp.innerHTML=sNewText;
}       
return (objTemp.innerHTML); 
}
}
}
function RDResetImageSrc(sImgSrc, sEltGuid)//Da einige iexplorer mackig sind, muss das bild zeitverzoegert refresht werden
{
var oImg=null;
if (document.all("RedDot_" + sEltGuid).length>0)//RedDot mehrfach vorhanden
oImg=document.all("RedDot_" + sEltGuid)[0];   
else
oImg=document.all("RedDot_" + sEltGuid);   
oImg.src=sImgSrc;
} 
function CheckAllTargets()
{   
for (var i=0;i<document.links.length;i++)//Targets pruefen und evtl. korrigieren
{
var sTarget=document.links.item(i).target;
if(sTarget == "_blank" || sTarget == "_top")
document.links.item(i).target="ioMain";
}   
RDShowPreviewWindow(true);
window.focus();
}
function CheckTargetExtended(sThis,sRedDotTopA)
{
var sRedDotTop="top";
if (sRedDotTopA)
sRedDotTop=sRedDotTopA;
var iLen=eval(sRedDotTop + '.frames.["ioMainIFrame"].frames["ioMain"].frames.length');   
var sTarget=sThis.target;
if (iLen > 0)
{
if (eval(sRedDotTop + '.frames.["ioMainIFrame"].frames["ioMain"].frames[sThis.target]') == null)
{
sThis.target="ioMain";
}
}
else if(sTarget == "_blank" || sTarget == "_top")
{
sThis.target="ioMain";
}
else if(sTarget != "_self" || sTarget != "_parent")
{
sThis.target="ioMain";
}
}
function CheckTarget(sThis)
{var sTarget=sThis.target;
if(sTarget == "_blank" || sTarget == "_top")
{
sThis.target="ioMain";
}
}
function OpenModalWindow(sURL)
{
var sResult=String(window.showModalDialog(sURL,0,"dialogWidth:650px;dialogHeight:550px"));
return (sResult!="undefined");
}
function OpenWindow(URL, iFixedWidth, iFixedHeight, sWindowName, sWindowFeatures, LeftPos, TopPos) {
var oBrowser = new BrowserProps();//
var iWidth=oBrowser.ScreenAvailWidth/1.3;
var iHeight=oBrowser.ScreenAvailHeight/1.3;
var fHelp=false;
if (sWindowName!=null && (sWindowName.toUpperCase() == "ONLINEHELP" || sWindowName.toUpperCase() == "HELP") ) {
//Es soll die Online Hilfe gestartet werden. Feste Fentergroesse
iWidth=590;
iHeight=550;
fHelp=true;
} else {
//Ueberpruefen ob die Mindestgroesse des Fensters unterschritten ist
if (iFixedWidth!=null)
iWidth = iFixedWidth;
else if (iWidth<650) iWidth=650;
if (iFixedHeight!=null)
iHeight = iFixedHeight;
else if (iHeight<650) iHeight=550;
}
//Das Fenster zentriert darstellen
var iLeft=oBrowser.ScreenAvailWidth/2 - iWidth/2;
var iTop=oBrowser.ScreenAvailHeight/2 - iHeight/2 - 25;
if (LeftPos!=null) iLeft=LeftPos;
if (TopPos!=null) iTop=TopPos;
if (iLeft<0) iLeft=0;
if (iTop<0) iTop=0;
//Wenn kein spezielles Fenster geoeffnet werden soll. Ein aelteres schliessen
if (sWindowName==null || sWindowName.toUpperCase() == "HELP") CloseWindow();
if (sWindowName=="TRADOS")
{
iLeft=oBrowser.ScreenAvailWidth-iFixedWidth-10;
iTop=0;
}
//BrowserCache austricksen
var DummyDate=new Date();
var DummyTime=String(DummyDate.getTime());    
if (URL.indexOf(".asp?")>-1)
URL=URL + "&DummyRefreshTime=" + DummyTime;
if (sWindowFeatures!=null)     
sWindowFeatures += ",width=" + iWidth + ",height=" + iHeight + ",screenX=" + iLeft + ",screenY=" + iTop + ",left=" + iLeft + ",top=" + iTop;
else
{
if (fHelp)
sWindowFeatures = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=" + iWidth + ",height=" + iHeight + ",screenX=" + iLeft + ",screenY=" + iTop + ",left=" + iLeft + ",top=" + iTop;
else
sWindowFeatures = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,width=" + iWidth + ",height=" + iHeight + ",screenX=" + iLeft + ",screenY=" + iTop + ",left=" + iLeft + ",top=" + iTop; 
}
if (!sWindowName)
objDialogWindow=window.open(URL, "_blank", sWindowFeatures);
else {
if (sWindowName.toUpperCase() == "HELP")
objDialogWindow = window.open(URL, "_blank", sWindowFeatures);
else
return window.open(URL, sWindowName, sWindowFeatures);
//Es wird ein spezielles Fenster geoeffnet. Der Aufrufer uebernimmt selbst die Verwaltung
}
}
function ReloadURL()
{    
var NewUrl=String(document.location.href);
if (NewUrl.indexOf("#CloseRedDot") == -1)
NewUrl=NewUrl + "#CloseRedDot";
with (document.location)
{
replace(NewUrl);
hash;
reload();     
}
}
function AddElementToFavorites()
{   
var objTreeFrame=parent.frames.ioTree;
var sType=objTreeFrame.sActiveType;
var sActiveGUID=objTreeFrame.sActiveGUID;
var sSegmentId=objTreeFrame.sSegmentId;   
var sValue1=objTreeFrame.document.all("Col1" + sSegmentId).innerHTML; 
var sValue2=objTreeFrame.document.all("Col2" + sSegmentId).innerHTML;   
var sValue=escape(sValue1 + "&nbsp;&nbsp;" + sValue2);
var sImageTitle=objTreeFrame.document.all("IMGType" + sSegmentId).src;         
var iPos=sImageTitle.lastIndexOf("/");
sImageTitle=sImageTitle.slice(iPos+1);
document.location="ioFavorites.asp?Action=AddFavorite&ImageTitle=" + sImageTitle + "&Guid=" + sActiveGUID + "&Type=" + sType + "&Value=" + sValue;
}
function SearchForNotAllowedChars(sValueTextField, sNotAllowed)
{
//Alle Zeichen sind erlaubt
//nicht erlaubte werden uebergeben
var sChar = "";
var oReg = null;
var RegEx = new RegExp("");
switch (sNotAllowed.toUpperCase())
{
case "TEMPLATENAME":
sNotAllowed = "34,38,39,63,60,62,58,124,42,92"; //"&'?<>:|*\
break;
}
var arNotAllowed = sNotAllowed.split(",");
for (var iCount=0; iCount <= arNotAllowed.length; iCount++)
{
sChar = String.fromCharCode(arNotAllowed[iCount]);
if (sValueTextField.indexOf(sChar)>=0)
{ 
if (sChar == "\\") sChar = "\\\\";
if (sChar == "*") sChar = "\\*";
if (sChar == "?") sChar = "\\?";
if (sChar == ")") sChar = "\\)";
if (sChar == "(") sChar = "\\(";
if (sChar == "|") sChar = "\\|";
if (sChar == "+") sChar = "\\+";
RegEx = RegExp(sChar , "gi");
sValueTextField = sValueTextField.replace(RegEx, "");
}
}
return sValueTextField;
}
function DeleteNonStandardChars(sValue, sSpecialAllowed, sMessage)
{
//Standard erlaubt "a-z", "A-B", "0-9"
//sSpecialAllowed: Komma getrennte Zahlen die den ASCII Code darstellen der erlaubt wird
var sWINDOWSFILENAME = "32,36,40,41,45,46,95,126";
var sFTPFILENAME = "36,45,46,95,126";
// "(34) %(37) '(39) ,(44) ^(94) `(96) (176) (180)
var sSTANDARDFIELD = "32,33,35,36,38,40,41,42,43,45,46,47,58,59,60,61,62,63,64,91,92,93,95,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255";
var sValueOld = sValue;
if (sSpecialAllowed.toUpperCase() == "IDENTIFIER")
sSpecialAllowed = "95";
if (sSpecialAllowed.toUpperCase() == "WINDOWSPATH")
sSpecialAllowed = "58,47,92," + sWINDOWSFILENAME; // :/\
if (sSpecialAllowed.toUpperCase() == "FTPPATH")
sSpecialAllowed = "58,47," + sFTPFILENAME; // :/
if (sSpecialAllowed.toUpperCase() == "WINDOWSFILENAME")
sSpecialAllowed = sWINDOWSFILENAME;
if (sSpecialAllowed.toUpperCase() == "FTPFILENAME")
sSpecialAllowed = sFTPFILENAME;
if (sSpecialAllowed.toUpperCase() == "STANDARDFIELD")
sSpecialAllowed = sSTANDARDFIELD;
if (arguments.length==4) {
sSpecialAllowed += "," + arguments[3];
}
var I, C, J, arAllowed, bAllowed;
arAllowed = sSpecialAllowed.split(",");
for (I=0; I < sValue.length; I++)
{
C = sValue.charCodeAt(I)
if (C >= 48 && C <= 57) continue; //Zahl
if (C >= 65 && C <= 90) continue; //Buchstabe GROSS
if (C >= 97 && C <= 122) continue; //Buchstabe klein
bAllowed = false;
for (J=0; J <= arAllowed.length; J++)
{
if (C == arAllowed[J])
{ bAllowed = true; break; }
}
if (bAllowed == true) continue;
sValue = ReplaceChar(sValue, I);
I = I - 1; //notig da zeichen durch nix ersetzt wird
}
if (sValueOld != sValue && sMessage != "")
alert(sMessage);
return sValue;
} 
function ReplaceChar(sValue, I)
{
return sValue.substring(0, I) + "" + sValue.substring(I+1, sValue.length+1);
}
function FilterElementName(objTextField)
{
//Alle Zeichen im Bereich 33-255
//Nicht erlaubte Zeichen sind sNotAllowed
//Alle StdZeichen sind erlaubt. Andere auch es wird jedoch eine Warnung ausgegeben
var sNotAllowed = "126,35,43,176,94,167,92,47,40,41,61,63,33,36,38,37,34,60,62,39,180,96,123,125,42,46,32";
var sValue = objTextField.value;
var I=0, C=0, J=0, bNotAllowed=false, bWarnUser=false;
var arNotAllowed;
var arNotAllowed = sNotAllowed.split(",");
for (I=0; I < sValue.length; I++)
{
C = sValue.charCodeAt(I)
if (C >= 48 && C <= 57) continue; //Zahl
if (C >= 65 && C <= 90) continue; //Buchstabe GROSS
if (C >= 97 && C <= 122) continue; //Buchstabe klein
if (C == 95) continue; //_
//verbotene zeichen suchen
bNotAllowed = false;
for (J=0; J <= arNotAllowed.length; J++)
{
if (C == arNotAllowed[J])
{ bNotAllowed = true; break; }
}
if (bNotAllowed == true)
{
sValue = ReplaceChar(sValue, I);
I = I - 1; //notig da zeichen durch nix ersetzt wird
}
else //Char wird Supported aber nicht empfohlen
{
bWarnUser = true;
}
}
if (objTextField.value != sValue)
{
objTextField.value = sValue;
return 2;
}
else if (bWarnUser == true)
{
return 1;
}
return 0;
}
function ConvertToAscii(sBuffer)
{
sBuffer=sBuffer.replace(/&auml;/g, String.fromCharCode(228));
sBuffer=sBuffer.replace(/&Auml;/g, String.fromCharCode(196));
sBuffer=sBuffer.replace(/&ouml;/g, String.fromCharCode(246));
sBuffer=sBuffer.replace(/&Ouml;/g, String.fromCharCode(214));
sBuffer=sBuffer.replace(/&uuml;/g, String.fromCharCode(252));
sBuffer=sBuffer.replace(/&Uuml;/g, String.fromCharCode(220));
sBuffer=sBuffer.replace(/&szlig;/g, String.fromCharCode(223));
sBuffer=sBuffer.replace(/&lt;/g,"<");
sBuffer=sBuffer.replace(/&gt;/g,">");      
return sBuffer;
}
function ShowBusyLabel()
{
document.body.style.cursor="wait";
document.getElementById("ServerReady").style.visibility="hidden";
document.getElementById("ServerBusy").style.visibility="visible";
document.getElementById("ServerReady").style.display="none";
document.getElementById("ServerBusy").style.display="";
}
function trimString(sValue)
{
var i=0;
while (sValue.charCodeAt(i) == 32 && i<sValue.length) i++;
if (i>0) sValue = sValue.substring(i, sValue.length);
i=sValue.length-1
while (sValue.charCodeAt(i) == 32 && i>0) i--;
if (i<sValue.length-1) sValue = sValue.substring(0, ++i);
return (sValue);
}
function CloseWindow()
{
var i=0;
if (objDialogWindow!=null && !objDialogWindow.closed) {
objDialogWindow.close(); 
while (!objDialogWindow.closed) i=1;
}
}
function OpenMediaCatalog(URL)
{
var fClosed=false;   
var oBrowser = new BrowserProps();
var iWidth=oBrowser.ScreenAvailWidth/1.2;
var iHeight=oBrowser.ScreenAvailHeight/1.2;
var iLeft=oBrowser.ScreenAvailWidth/2 - iWidth/2;
var iTop=oBrowser.ScreenAvailHeight/2 - iHeight/2 - 25;
var DummyDate=new Date();
var DummyTime=String(DummyDate.getTime());    
CloseWindow();
if (URL.indexOf(".asp?")>-1)
URL=URL + "&DummyRefreshTime=" + DummyTime;
objDialogWindow=window.open(URL,"_blank",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,width=' + iWidth + ',height=' + iHeight + ',screenX=' + iLeft + ',screenY=' + iTop + ',left=' + iLeft + ',top=' + iTop);   
}
function CountDown(sFunctionName, sParam)
{
var sCalling = sFunctionName + "(" + sParam + ")";
window.setTimeout(sCalling, 200);
}
//Achtung! Diese Funktion wird von Kunden benutzt, um beim Klicken eines Links die geoeffnete Seite zu schliessen - also nie loeschen!!!
function CloseRedDotPage()
{
if (eval(sRedDotTop + ".frames.ioMainIFrame.frames.ioMain.frames.length")==0)
{
var sURL=String(window.document.location.href);       
if (sURL.indexOf("Mode=2") > -1)
{              
var sNewURL=sURL.replace("Mode=2","Mode=4");                                
window.document.location.replace(sNewURL);          
}
}
else
{
var objMenuFrame=eval(sRedDotTop + ".frames.ioMenu");
objMenuFrame.CloseEditedPage();
} 
}
var iReturnViaJSFunction=0;
function OpenExternalSystem(sURL, sFeatures) {
//oeffnet die Web Oberflaeche des externen System
//und setzt iReturnViaJSFunction sofern mindestens drei argumente uebergeben wurden.
//Dies hat zur folge das am ende des transfers eine JS Funktion den Dokumentnamen einsetzt und nicht wie sonst
//ueblich, die CMS Seite neugeladen wird
CloseWindow();
objDialogWindow=window.open(sURL, "_blank", sFeatures);
if (arguments[2]) iReturnViaJSFunction=arguments[2]; else iReturnViaJSFunction=0;
}
function uploadFinished(sFileName) {
if (iReturnViaJSFunction>0) {
insertDocumentName(sFileName);
}
else {
if (window.name=="ioActionMenu") ReloadTreeSegment(); else window.location.reload();
}
}
function BrowserProps() {
//ermitteln der maximalen Fenstergroesse
if (navigator.userAgent.indexOf("Opera")>-1) {
this.ScreenAvailWidth  = top.window.innerWidth; //auch in Portalen unplrblematisch
this.ScreenAvailHeight = top.window.innerHeight; //Opera 7.x erlaubt die Abfrage dieser Props aus anderen Domaenen
}
else {
this.ScreenAvailWidth  = screen.availWidth;
this.ScreenAvailHeight = screen.availHeight;
}
}
function EditPage()
{
var objMenuFrame=GetFrame("ioMenu");
return objMenuFrame.EditPage();
}
function LoadTopMenu(sURL) 
{
var objMenuFrame=GetFrame("ioMenu");
return objMenuFrame.LoadTopMenu(sURL);
}
function ResetTop()
{
var objMenuFrame=GetFrame("ioMenu");
return objMenuFrame.ResetTop();
}
function GetFrame(sFrameName)
{
var objParent=parent;
var objFrame=eval("objParent.frames." + sFrameName);
if (!objFrame)
{
for (var i=0; i<20; i++)//Maximal 20 parents durchsuchen
{ 
try
{ 
objParent=objParent.parent;
objFrame=eval("objParent.frames." + sFrameName);    
}     
catch (e) {}
if (objFrame)//Frame gefunden!
break;
}
}
return objFrame;   
}
function showMessage(oField, sMessage, sMessageType, sLabelId) {
try {
oField.focus();
oField.select();
} catch (e) {}
//Sofern in der Message ein Platzhalter fuer ein Label definiert ist 
//und dem uebergebene Feld ein label zugewiesen wurde
//ist der Platzhalter durch den text des labels zu ersetzen
if (sMessage.indexOf("%1%")!=-1) {
var sId = "";
if (sLabelId) sId = sLabelId;
else if (oField.id) sId = oField.id;
if (sId.length!=0) {
oLabels = document.getElementsByTagName("LABEL");
for (var i=0; i<oLabels.length; i++)
if (oLabels[i].attributes["for"].nodeValue == sId) sMessage = sMessage.replace("%1%", oLabels[i].innerHTML);
}
}
if (sMessageType=="confirm")
return confirm(sMessage);
else
alert(sMessage);  
return false;
}
function selectOption(oField, sValue) {
var i=0;
for (i=0; i<oField.options.length; i++) {
if (oField.options[i].value==sValue) {
oField.options[i].selected=true; break;
}
}
if (i==oField.options.length) return -1; else return i;
}
function verifyValue(sValue, sReg, sRegExpSyntaxErrorMessage) {
var iResult = 0;
//0: leerstring, keine pruefung
//1: Value Ok
//-1: Value not Ok
//-2: regExp Syntax Error
try {
if (sReg.length>0 && sReg.indexOf("/")!=0)
sReg = "/^" + sReg + "$/g";
var oReg = eval(sReg);
//Die sValue pruefung ist absichtlich hier.
//Dadurch wird auch der regulaeren ausdruck auf die korrekte Syntax hin ueberprueft
if (sValue.length==0)
iResult=0;
else
iResult = (oReg.test(sValue))?1:-1;
} catch (e) {
iResult = -2;
var sMessage = e.name + "\n" + e.message;
if (sRegExpSyntaxErrorMessage) sMessage = sRegExpSyntaxErrorMessage + "\n\n" + sMessage;
alert(sMessage);
}
return iResult;
}
function RDRepareTableAttributes(sBuffer)//Der Browser vertauscht die TD-Attribute align=center und valign=middle
{     
sBuffer=RDReplaceTagAttribute(sBuffer,"TD","align","middle","center");
sBuffer=RDReplaceTagAttribute(sBuffer,"TD","vAlign","center","middle");
return sBuffer;   
} 
function RDReplaceTagAttribute(sValue, sTagName, sAttribute, sOldAttributeValue, sNewAttributeValue)//Funktion zum Austauschen von Attributinhalten
{
if(/^\w+$/.test(sAttribute) && ((arguments.length > 2) ? arguments[2] : /^\w*$/.test(sTagName)))
{
var RegEx = new RegExp("(\\<" + sTagName + "[^\\>]" + (sTagName ? "*" : "+") + ")(\\s" + sAttribute + " ?\\= ?((\\\"" + sOldAttributeValue + "*\\\")|(\\'" + sOldAttributeValue + "*\\')|(" + sOldAttributeValue + "*)))", "gi");
if (RegEx.test(sValue))
{
return sValue.replace(RegEx, "$1 " + sAttribute + "=" + sNewAttributeValue);
}
}
return sValue; 
}
function RDShowBorder(sID)//Objektrand nach Vorgabe darstellen
{
//---Vorgabe, falls in SmartEdit-Seite Variablen nicht belegt---
var sRDBorderStyle="solid";
var sRDBorderWidth="1px";
var sRDBorderColor="#CC0000";   
//--------------------------------------------------------------
//sID setzt sich zusammen aus "RDPage_" und Guid der Seite
//Guid ermitteln
var sGuid=sID.slice(7);
try
{
sRDBorderStyle=eval("RDBorderStyle_" + sGuid);
}
catch(e) {}
try
{
sRDBorderWidth=eval("RDBorderWidth_" + sGuid);
}
catch(e) {}
try
{
sRDBorderColor=eval("RDBorderColor_" + sGuid);
}
catch(e) {}  
if (document.getElementById(sID))
{
document.getElementById(sID).style.border=sRDBorderStyle + " " + sRDBorderWidth + " " + sRDBorderColor;
document.getElementById(sID).contentEditable=true;
document.getElementById(sID).contentEditable=false;
}
}
function RDHideBorder(sID)//Objektrand ausblenden
{
if (document.getElementById(sID))
document.getElementById(sID).style.border="";
}
var iRDControlCounter=-1;
function RDActivateControls() //Funktion zum automatischen Aktivieren von ActiveX-Controls
{   
var objControls=document.all.tags("object");
if (objControls.length==0) //Keine Controls zum Aktivieren vorhanden
return;
if (iRDControlCounter<0) 
{     
if (document.all("RDControlActivator"))
{
//Zum geoeffneten roten Punkt scrollen, Aktivierung beendet
if (document.anchors('ScrollToCloseRedDot')) 
document.anchors('ScrollToCloseRedDot').click(); 
return;
}
//Control zur Aktivierung der in der Seite befindlichen ActiveX-Controls erzeugen
iRDControlCounter=objControls.length+1;     
var objRDControlActivatorContainer=document.createElement("SPAN");    
objRDControlActivatorContainer.id="RDControlActivatorContainer";
document.body.appendChild(objRDControlActivatorContainer);       
var objRDControlActivator=document.createElement("object");     
objRDControlActivatorContainer.appendChild(objRDControlActivator);           
objRDControlActivator.id="RDControlActivator";
objRDControlActivator.codeBase="Controls\/RDControlActivator.ocx";
objRDControlActivator.classid="clsid:E5E12E21-262C-49EC-BC9F-097936AA1672";    
window.setTimeout("RDActivateControls()",10);  
return;
}           
try
{ 
document.focus(); 
objControls[iRDControlCounter].focus();            
document.all("RDControlActivator").Trigger(); //Selektiertes Control aktivieren          
}
catch (e) {}        
iRDControlCounter--;          
window.setTimeout("RDActivateControls()",10);            
}
