﻿var base64s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';

var ichsuchjanoch = false;

var WINDOW_LEFT = 50;
var WINDOW_TOP = 106;
var WINDOW_LEFT_EDITFORM = 50;
var WINDOW_TOP_EDITFORM = 106;
var COS_MENU_HEIGHT = 47;
var COS_TOP_ABSTAND = 120;
var WINDOW_WIDTH = '940';
var WINDOW_HEIGHT = '588';
var BIG_WINDOW_WIDTH = '1200';
var BIG_WINDOW_HEIGHT = '900';
var Fwidth = 940;
var Fheight=588;
var Fbigwidth = 1200;
var Fbigheight=900;
var HELP_WIDTH=400;
var HELP_HEIGHT = 588;

var WINDOW_OPTIONS_EDITFORM = "scrollbars=no,menubar=no,resizable=yes,status=no";
var WINDOW_OPTIONS_LISTFORM = "scrollbars=no,menubar=no,resizable=yes,status=no";
var WINDOW_OPTIONS_REPORTVIEWFORM = "scrollbars=no,menubar=no,resizable=yes,status=no";
var WINDOW_OPTIONS_DEFAULT = "scrollbars=no,menubar=no,resizable=yes,status=no";
var INDEX = "INDEX";
var OPENER = "opener";

var GVLISTID = IDPRAEFIX+'gvList';

var GRIDFIRSTROWTOP = 75;
var KopZeilenCount=0;
var GRIDROWHEIGHT = 19;
var ROWMENUROWHEIGHT = 20;
var ROWSTYLE = "GridViewRowStyle";
var ROWASTYLE = "GridViewARowStyle";
var ROWSELECTEDSTYLE = "GridViewSelectedRowStyle";
var ROWAKTIVSTYLE = "GridViewAktivRowStyle";
var ROWMENUCELLSTYLE = "RowMenuCellUNHover";
var ROWMENUCELLHOVERSTYLE = "RowMenuCellHover";

var MAINMENUUPDATE_COMMAND = "MAINMENUUPDATE";
var thisfensternr=0;
var winarray= new Array();
var mainwinarray= new Array();

var Fwidth=940;
var Fheight=588;
//sts, 02.06.2009, Zum Feststellen ob OpenForm COSMENUHEIGHT mitberechnen soll oder nicht
var noCOSmenuheight = false;
function isIE() {return document.all ? true : false;}
function isNS() {if (navigator.appName.toUpperCase().indexOf("NETSCAPE") >= 0) { return true; } else { return false; } }

// Markiert die zuletzt ausgewaehlte Zeile nach dem
// Oeffnen eines Fensters aus der Listform.
// 20.11.2008 mw
function SetOpenerGridviewRowAktiv() {
    try {
        if (opener) {
            var ParentGVList = opener.document.getElementById(IDPRAEFIX +'gvList');
            if (ParentGVList) {
                var IndexValue = opener.document.getElementById(IDPRAEFIX + 'hdfCurrentIndexValue');
                if (IndexValue && IndexValue.value != '' && IndexValue.value != '0') {
                    var ParentRow = opener.document.getElementById(IndexValue.value);
                    var SourceIndex = document.getElementById(IDPRAEFIX + 'SourceIndex');
                    if (SourceIndex && SourceIndex.value == '0') { IndexValue.value = ''; return; }
                    var SourceIndex = document.getElementById(IDPRAEFIX + 'hdfSourceIndex');
                    if (SourceIndex && SourceIndex.value == '0') { IndexValue.value = ''; return; }
                    if (ParentRow) opener.SetRowAktiv(ParentRow, null);
                }
            }
        }
    } catch (e) { }
}

// Markiert die zuletzt ausgewaehlte Zeile nach dem
// Refresh der Listform. Wird in der Function OnRefresh() 
// nach dem Refresh-Postback aufgerufen, in der MasterPage.
// 20.11.2008 mw
function SetGridviewRowAktivAfterRefresh() {
    try {
        var GVList = document.getElementById(IDPRAEFIX + 'gvList');
        if (GVList) {
            var IndexValue = document.getElementById(IDPRAEFIX + 'hdfCurrentIndexValue');
            if (IndexValue && IndexValue.value != '' && IndexValue.value != '0') {
                var Row = document.getElementById(IndexValue.value);
                if (Row) SetRowAktiv(Row, null);
            }
        }
    } catch (e) { }
}

function getFsize()
{
    if(typeof(window.innerWidth)!="undefined")
   {
        Fwidth = window.innerWidth;
        Fheight = window.innerHeight;
   }
   else
   {
        Fwidth = document.body.offsetWidth;
        Fheight = document.body.offsetHeight;
   }   
}
//getFsize();

function setfensternr() {
    try {
        if (thisfensternr == 0) if (opener) if (!opener.closed) if (typeof (opener.thisfensternr) != "undefined") thisfensternr = opener.thisfensternr + 1;
        if (thisfensternr < 2) doonunload();
    } catch (e) { }
}

setfensternr();



function getMain(pWindow)
{
        if(thisfensternr==0)return window;
        if(pWindow)
       { 
          var tempnr=pWindow.thisfensternr;
           while(tempnr>0)
          {
                if(pWindow.opener)pWindow=pWindow.opener
                if(typeof(pWindow.thisfensternr)!="undefined")
                    {try{tempnr=pWindow.thisfensternr;} catch(e){return null;}}
                else 
                    return null;
           } 
       } 
       return  pWindow;
}

var fmMain = getMain(window);

// Activelink abgeschaltet (mw) 14.12.2010
//var activelink = false;
//try {
//    if (opener == null)
//        activelink = true;
//    else if (opener.location.toString().toLowerCase().indexOf('/forms') < 0)
//        activelink = true;
//    if (activelink) {
//        var PortalText = document.getElementById(IDPRAEFIX + 'PortalText');
//        if (PortalText) {
//            PortalText.style.cursor = 'pointer';
//            PortalText.style.textDecoration = 'underline';
//            PortalText.innerHTML = PortalText.innerHTML.replace('myTransweb', 'myTransweb ' + Startseitetext);
//            PortalText.innerHTML = PortalText.innerHTML.replace('myTransOffice', 'myTransOffice ' + Startseitetext);
//            PortalText.onclick = function() {
//                var locstr = document.location.toString().toLowerCase();
//                if (locstr.indexOf('fmregorder') > 0)
//                    document.location.href = 'http://www.mytransoffice.de';
//                else
//                {
//                    var formspos = document.location.toString().toLowerCase().indexOf('/forms');
//                    document.location.href = document.location.toString().substr(0, formspos);
//                }
//            };
//        }
//    }
//} catch (e) { }

if (fmMain)
    if (fmMain != document)
        document.body.onload = StopAnimation;
function StopAnimation() {
    var lan = fmMain.document.getElementById('LogoAnimation');
    if (lan) lan.style.visibility = 'hidden';
}
function StartAnimation() {
    var lan = fmMain.document.getElementById('LogoAnimation');
    if (lan) lan.style.visibility = 'visible';
    setTimeout('StopAnimation()', 5000);
}

function setVisibilityById(pId,pAttrib) {
    var el = document.getElementById(pId);
    if (el) { 
    try{
        el.style.visibility=pAttrib;
    }
    catch(e){}
    }
}

function mailto(pNummer,pObj)
{
    if(pNummer.indexOf('@')>0) document.location.href="mailto:"+pNummer;
    return; 
}

function httpto(pHomepage,pObj)
{
    if (pHomepage.length == 0) return;
    if (pHomepage.indexOf('http') < 0) pHomepage = 'http://' + pHomepage;
    
    window.open(pHomepage);
    
    return; 
}

function findPos(obj) {
    if(!obj)return [0,0];
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		if(obj.scrollTop)curtop-=obj.scrollTop;
		if(obj.scrollLeft)curleft-=obj.scrollLeft;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
    		if(obj.scrollTop)curtop-=obj.scrollTop;
		    if(obj.scrollLeft)curleft-=obj.scrollLeft;
		}
	}
	else
	{
	    if(obj.x)
            curleft += obj.x;
        if(obj.y)
            curtop += obj.y;
	}
	return [curleft,curtop];
}


//****************** Mouse ***********************
var MouseX = 0;
var MouseY = 0;

function documentonclick(e) {
    if (isIE()) { MouseX = event.x; MouseY = event.y; }
    else { MouseX = e.pageX; MouseY = e.pageY; }
}
if (!isIE())
    document.addEventListener("click", documentonclick, false);
else
    document.onclick = documentonclick;



//**************************************************


function maxWindow()
{
    window.moveTo(0,0);
    if (document.all)top.window.resizeTo(screen.availWidth,screen.availHeight);
    else if (document.layers||document.getElementById)
    {
          if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth)
          {
            top.window.outerHeight = screen.availHeight;
            top.window.outerWidth = screen.availWidth;
          }
    }
   getFsize(); 
}
//if(thisfensternr==0)maxWindow();

function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
    obj.addEventListener(evType, fn, true); 
    return true; 
 } else if (obj.attachEvent){ 
    var r = obj.attachEvent("on"+evType, fn); 
    return r; 
 } else { 
    return false; 
 } 
} 

function closechild(win) {try{if (win && !win.closed && !win.closed) win.close();}catch(e){}}

function doonunload()
{
   var i;
   for(i=0;i<winarray.length;i++)
            closechild(winarray[i]);
}


addEvent(window,'unload',doonunload);

function setValueById(pId,pValue,pDefault)
{
    var pElement=document.getElementById(IDPRAEFIX +pId);
    if(pElement)
   { 
        if(pValue!=null)pElement.value=pValue;
        else 
        {
            if(pDefault!=null)pElement.value=pDefault;
           else return false; 
         } 
        return true; 
    } 
    else return false; 
}

function getValueById(pId,pDefault)
{
    var def=pDefault;
    if(def==null)def="";
    var pElement=document.getElementById(IDPRAEFIX +pId);
    if(pElement)
        return pElement.value;
    else return def; 
}
function showExtenderById(pInputId,pPopupId)
{
    var pInputElement=$get(IDPRAEFIX+pInputId);
    var pPopupElement=$find(pPopupId);
    if(pPopupElement) 
        if(pPopupElement._popupVisible==true)
           { pPopupElement.hidePopup();return;} 
    if(pInputElement)
   { 
      setTimeout("$get(IDPRAEFIX+'"+pInputId+"').focus();",50);
    } 
}

function setTextById(pId,pValue,pDefault)
{
    var pElement=document.getElementById(IDPRAEFIX +pId);
    if(pElement)
        if(pValue!=null)pElement.text=pValue;
            else if(pDefault!=null)pElement.text=pDefault;
}

function setStyleById(pId,pName,pValue)
{
    var pElement=document.getElementById(IDPRAEFIX+pId);
    if(pElement)
        if(pElement.style)
            pElement.style[pName]=pValue;
}


function str(pValue,pDig)
{
    if(typeof(pValue)=="undefined")return "";
    if(pValue==null)return ""; 
    if(!pDig) return pValue.localeFormat('N2');
    if(pDig=='undefined')return pValue.localeFormat('N2');
    return pValue.localeFormat('N'+pDig);
}
/* OpenFormFullScreen
/// <summary> OpenBigForm </summary>
/// <remarks> Update, sts, 02.06.2009, "noCOSmenuheight Variable setzten, OpenForm mit String '0' für Left und Top aufrufen" </remarks>
*/
function OpenFormFullScreen(pScriptName, pFormName, pOptions)
{
    var ScreenWidth = screen.availWidth-10;
    var ScreenHeight = screen.availHeight-36;
    if (typeof (pOptions) == 'undefined') pOptions = "scrollbars=no,menubar=no,resizable=yes,status=no";
    noCOSmenuheight = true;
    OpenForm(pScriptName,pFormName,ScreenWidth,ScreenHeight,0,0,pOptions);   
}

/* OpenBigForm
/// <summary> OpenBigForm </summary>
/// <remarks> Update, josp, 02.06.2009, "Einige Anpassungen bzgl. Top- und Left-Position, s.h. Code-Kommentare." </remarks>
/// <remarks> Update, sts, 02.06.2009, "Fenstergrößen beschränkung von 1200 * 800 entfernt,
///           Fenster standartmäßig ohne scrollbalken, es sei den es ist zu groß für die verfügbare Fenstergröße & Fensterbreite
///           das Fenster wird nun nicht mehr außerhalb des Bildschirmbereichs des Benutzer angezeigt, ist es generell zu groß wird es nahezu Fullscreen geöffnet,
///           die vorherigen Fenster können die Position des Fensters beeinflußen solange dieses dann noch in den Bildschirmbereich passt,
///           würde das verschieben der vorherigen Fenster die Position teilweise aus dem Bildschirmbereich ragen lassen wird das Fenster an der jeweiligen Achse zentriert (wenn es nicht generell zu groß ist),
///           noCOSmenuheight Variable auf true setzten um das verschieben von 47px zu unterbinden"</remarks>
*/
function OpenBigForm(pFormName, pParameter, pWidth, pHeight) {
    var FormName = pFormName;
    var ScriptName = FormName + '.aspx';

    if (typeof (pParameter) != 'undefined' && pParameter != null && pParameter != "")
        ScriptName = ScriptName + "?" + pParameter;

    var ScreenWidth = screen.availWidth - 10;
    var ScreenHeight = screen.availHeight - 36;
    var top = 0;
    var left = 0;

    var scroll = 'no';
    var fensternr = thisfensternr - 1;
    if (typeof (pWidth) != 'undefined' && pWidth != null) {
        if (ScreenWidth >= parseInt(pWidth))
            ScreenWidth = parseInt(pWidth);
        else
            scroll = 'yes'
    }
    if ((ScreenWidth + WINDOW_LEFT + (fensternr * 5)) <= (screen.availWidth - 10))
        left = WINDOW_LEFT + (fensternr * 5);
    else {
        if (ScreenWidth < (screen.availWidth - 10)) {
            if (((screen.availWidth - 10) - ScreenWidth) % 2 == 0)
                left += (screen.availWidth - 10 - ScreenWidth) / 2;
            else
                left += (screen.availWidth - 9 - ScreenWidth) / 2;
        }
    }

    if (typeof (pHeight) != 'undefined' && pHeight != null) {
        if (ScreenHeight >= parseInt(pHeight))
            ScreenHeight = parseInt(pHeight);
        else
            scroll = 'yes'
    }

    var windowtopoffset = WINDOW_TOP + (thisfensternr * 25) + 23; //josp, 02.06.2009, Korrekturwert '23' ist optisch bedingt.
    if (isNS())
        windowtopoffset = WINDOW_TOP + (thisfensternr * 25) + 22 + 28; //josp, 02.06.2009, Im FireFox muss die Höhe der Statusleiste (28) dazuaddiert werden, damit kein Menü oder Werkzeugleiste überdeckt wird. Korrekturwert '22' ist optisch bedingt.

    if ((ScreenHeight + windowtopoffset) <= (screen.availHeight - 36))
        top = windowtopoffset;
    else {
        if (ScreenHeight < (screen.availHeight - 66)) {
            if ((screen.availHeight - 66 - ScreenHeight) % 2 == 0)
                top += (screen.availHeight - 66 - ScreenHeight) / 2;
            else
                top += (screen.availHeight - 65 - ScreenHeight) / 2;
        }
    }
    if (top < 0)
        top = top * -1;
    if (left < 0)
        left = left * -1;
    pOptions = "scrollbars=" + scroll + ",menubar=no,resizable=yes,status=no";
    noCOSmenuheight = true;
    OpenForm(ScriptName, pFormName, ScreenWidth.toString(), ScreenHeight.toString(), left.toString(), top.toString(), pOptions);
}


var lastwindow = null;
/* OpenForm
/// <summary>
/// Diese Methode öffnet eine Form bestimmter Größe an einer bestimmten Position mit bestimmten Optionen
/// </summary>
/// <remarks> Update, josp, 02.06.2009, "Wenn die Position nicht bereits errechnet ist und FireFox als Browser verwendet wird muss die Höhe der Statusleiste (28) dazuaddiert werden." </remarks>
/// <remarks> Update, sts, 02.06.2009, "pLeft und pTop nur dann beeinflussen wenn sie Leerstring sind, nicht wenn sie != 0 sind
///           COS_MENU_HEIGHT nur einberechnen wenn noCOSmenuheight != true" </remarks>
*/
function OpenForm(pScriptName, pFormName,  pWidth, pHeigth, pLeft, pTop, pOptions)
{
    if (!pWidth) pWidth = WINDOW_WIDTH;     
    if (!pHeigth)  pHeigth  = WINDOW_HEIGHT;
    if ( pWidth == '' )   pWidth   = WINDOW_WIDTH;
    if (pHeigth == '') pHeigth = WINDOW_HEIGHT;
    if (pLeft == '') pLeft = WINDOW_LEFT + (thisfensternr - 1) * 5; //+parseInt("0"+pLeft.toString());
    if (pTop == '') pTop = WINDOW_TOP + (thisfensternr - 1) * 25;  //+ parseInt("0"+pTop.toString());
    //if (pFormName.toString().search('/FormsTB/') != -1)
    if (noCOSmenuheight == true)
        noCOSmenuheight = false;
    else {
        pTop += COS_MENU_HEIGHT;

        if (isNS())
            pTop += 28;
    }
    
    if(typeof(pOptions)=="undefined")pOptions = WINDOW_OPTIONS_DEFAULT;
    if ( pOptions == '' ) pOptions = WINDOW_OPTIONS_DEFAULT;
    if(typeof(IndexValue)!="undefined")
        pScriptName=pScriptName.replace("=INDEX","="+IndexValue);
    if(fmMain)
    { 
       var counter=1; 
       var j;
       try{ 
           for(j=0;j<fmMain.mainwinarray.length;j++)
           { 
                if(fmMain.mainwinarray[j])
                    if(!fmMain.mainwinarray[j].closed)
                       if(fmMain.mainwinarray[j].name.indexOf(pFormName)==0)
                         counter++;
            } } 
       catch(e) {}

       var parameters = '';
       var fragepos = pScriptName.indexOf('?');
       if (fragepos > 0)
           parameters = pScriptName.substr(fragepos + 1);
       var shortname = pFormName.substr(pFormName.lastIndexOf('/') + 1);
       try {
           for (j = 0; j < fmMain.mainwinarray.length; j++) {
               if (fmMain.mainwinarray[j]) {
                   if (!fmMain.mainwinarray[j].closed) {
                       if (fmMain.mainwinarray[j].name.indexOf(shortname) >= 0) {
                           fmMain.mainwinarray[j].focus();
                           if (typeof (fmMain.mainwinarray[j].bereitsda) != 'undefined') {
                               fmMain.mainwinarray[j].bereitsda(parameters);
                               return;
                           }
                       }
                   }
               }
           }
       }
       catch (e) { }

       if(counter>0)pFormName=pFormName+counter;

       if (pScriptName.toLowerCase().indexOf('fmcoskatalogwizard.aspx') > 0) {
           pLeft = WINDOW_LEFT-5;
           pTop = WINDOW_TOP - 25 + COS_MENU_HEIGHT;
       }
       else
       {
           try {
               for (j = 0; j < fmMain.mainwinarray.length; j++) {
                   if (fmMain.mainwinarray[j]) {
                       if (!fmMain.mainwinarray[j].closed) {
                           if (fmMain.mainwinarray[j].name.indexOf('fmCTSelectWizard') >= 0) {
                               pTop += COS_TOP_ABSTAND;
                           }
                       }
                   }
               } 
           }
           catch (e) { }
       }

   }

    var slash=pFormName.lastIndexOf('/');
    if (slash > 0) pFormName = pFormName.substring(slash + 1);
    StartAnimation();     
    var now = new Date();
    if(pScriptName.indexOf('?')>0)
        pScriptName += '&'
    else
        pScriptName += '?'
    pScriptName += now.getSeconds().toString() + now.getMinutes().toString() + now.getHours().toString();

    
    var fm = window.open(pScriptName,'TRANSWEB_'+pFormName,"width=" + pWidth + ",height=" + pHeigth +  ",left=" + pLeft + ",top=" + pTop +  "," + pOptions, false);
    try { fm.focus(); } catch (e) { }
    winarray[winarray.length]=fm;
    if(fmMain)
    {
        fmMain.setTimeout("StopAnimation()", 8 * 1000 + 450);

        var i;
       try{ 
       for(i=0;i<fmMain.mainwinarray.length;i++)
      { 
            if(fmMain.mainwinarray[i])
            {
                if (fmMain.mainwinarray[i] == fm)
                    break;
                if(fmMain.mainwinarray[i].closed) 
                    fmMain.Array.removeAt(mainwinarray,i);
             }
       } } catch(e) {}
       fmMain.mainwinarray[i]=fm;
   }
   lastwindow = fm;
}

/// <remarks> Update, josp, 22.01.2009, "Keine Änderungen, aber diese Methode wurde für die Favoritenverwaltung verwendet, welche auf die Serverseite ausgelagert wurde." </remarks>
function GetSubstring(pBaseString, pFromString, pUntilString)
{
    var AbFrom = "";
    if (pFromString == "") AbFrom = pBaseString;
    else
    {
        var von = pBaseString.toString().indexOf(pFromString) + pFromString.toString().length;
        var bis = pBaseString.toString().length;
        AbFrom = pBaseString.toString().substring(von, bis);
    }

    var res = "";
    if (pUntilString == "") res = AbFrom;
    else
    {
        var bis = AbFrom.toString().indexOf(pUntilString);
        if (bis <= 0) bis = AbFrom.toString().length;
        res = AbFrom.toString().substring(0, bis);
    }

    return res;
}

function GetWindowX()
{
    var x;
    if (self.screenLeft != undefined) // IE5, IE6, Safari 1.0, Opera 7.5 
    {
	    x = self.screenLeft - T_Window_Offset_X;
    }
    else if (self.screenX != undefined) // other: Mozilla 1.6, Safari 1.0, Netscape 4
    {
	    x = self.screenX - T_Window_Offset_X;
    }
   else x = WINDOW_LEFT;
   return x;
}

function GetWindowY()
{
    var y;
    if (self.screenLeft != undefined) // IE5, IE6, Safari 1.0, Opera 7.5 
    {
	    y = self.screenTop - T_Window_Offset_Y;
    }
    else if (self.screenX != undefined) // other: Mozilla 1.6, Safari 1.0, Netscape 4
    {
	    y = self.screenY - T_Window_Offset_Y;
    }
   else y =  WINDOW_TOP;
   return y;
}

function GetWindowSizeX()
{
    var x;
   if (self.outerWidth != undefined) // all except IE?
    {
        x = self.outerWidth;
    } 
    else if (self.innerWidth != undefined) // all except Explorer
    {
	    x = self.innerWidth + T_Window_Offset_X*3;
    }
    else if ((document.documentElement) && (document.documentElement.clientWidth))
	    // Explorer 6 Strict Mode
    {
	    x = document.documentElement.clientWidth + T_Window_Offset_X*3;
    }
    else if (document.body != undefined) // other Explorers
    {
	    x = document.body.clientWidth + T_Window_Offset_X*3;
    }
   else x =  Fwidth;
 
   return x; 
}

function GetWindowSizeY()
{
    var y;
    if (self.outerHeight != undefined) // all except IE?
    {
        y = self.outerHeight;
    } 
    else if (self.innerHeight != undefined) // all except Explorer
    {
	    y = self.innerHeight + T_Window_Offset_Y + T_Window_Offset_X;
    }
    else if ((document.documentElement) && (document.documentElement.clientHeight))
	    // Explorer 6 Strict Mode
    {
	    y = document.documentElement.clientHeight + T_Window_Offset_Y + T_Window_Offset_X;
    }
    else if (document.body != undefined) // other Explorers
    {
	    y = document.body.clientHeight + T_Window_Offset_Y + T_Window_Offset_X;
    }
   else y =  Fheight;
 
   return y; 
}

function TransferWindowSize()
{
    T_Window_Offset_X = 0;
    T_Window_Offset_Y = 0;
    try {
        if ((opener) && (typeof (opener) != "undefined") && (!opener.closed) && (opener.T_Window_Offset_X != undefined) && (opener.T_Window_Offset_Y != undefined)) {
            T_Window_Offset_X = opener.T_Window_Offset_X;
            T_Window_Offset_Y = opener.T_Window_Offset_Y;
        }
    } catch (e) { }
}

TransferWindowSize();

//function GetScreenSizeX()                                  -- ToDo
//{

//// FF: self.screenX > self.screen.availWidth + self.screen.availLeft ? -> self.screen.availWidth*2 + self.screen.availLeft
////        self.screenX > self.screen.availLeft, self.screen.availWidth !=  self.screen.availLeft ? -> self.screen.availWidth + self.screen.availLeft
////        self.screenX < self.screen.availLeft? -> self.screen.availLeft
//// IE: self.screenX > self.screen.availWidth? -> self.screen.availWidth*2
////        self.screenX < self.screen.availWidth? -> self.screen.availWidth

//}

//function GetScreenSizeY()                                  -- ToDo
//{
//}


function OpenHelpForm(FormName, TopicName, pWidth, pHeight, pLeft, pTop, editMode)
{
    var pFormName = FormName;
    if (!TopicName) TopicName = "";
    var pScriptName = 'fmHelp.aspx' + '?' + 'Topic=' + DecX(TopicName);
    
    //fuer aufrufen verschiedene Forms. Fuer Help koennen wir uns das sparen und stattdessen FormName fuer unterscheidung von Topicsgruppen oder Portale benutzen - 
    // unterschiedliche Formnamen lassen uns mehrere Hilfefenster gleichzeitig oeffnen
//    var pScriptName = pFormName + '.aspx' + '?' + 'Topic=' + DecX(TopicName);
    if (editMode) pScriptName += '&'  + 'editMode=' + editMode;

//    if ((T_Window_Offset_X > -100) && (T_Window_Offset_Y > -100))
//    { 
//        T_Offset_X = T_Window_Offset_X;
//        T_Offset_Y = T_Window_Offset_Y;
//    }
    
    //Keine explizite Groesseparameter? - Defaults laden. 
    if (( !pWidth  ) || ( pWidth  == '' ))  pWidth   = HELP_WIDTH;     
    if (( !pHeight ) || ( pHeight == '' ))  pHeight  = HELP_HEIGHT;

    // Keine explizite Positionsparameter? Hilfefenster rechts von Parent
    if (( !pLeft ) || ( pLeft == '' ))  pLeft   = GetWindowX()+GetWindowSizeX();  
    if (( !pTop ) || ( pTop == '' ))   pTop   = GetWindowY();

    // Hilfefenster muss aus dem ersten Bildschirm nicht herausragen, nur falls mehrere Monitore benutzt werden.
    if ((( pLeft + pWidth + T_Window_Offset_X*3 ) > screen.availWidth) && (GetWindowX() < screen.availWidth - 10)) pLeft = screen.availWidth - pWidth - T_Window_Offset_X*3; 
    if ((( pTop + pHeight + T_Window_Offset_Y + T_Window_Offset_X*2 ) > screen.availHeight) && (GetWindowY() < screen.availHeight - 30)) pTop = screen.availHeight - pHeight - T_Window_Offset_Y - T_Window_Offset_X*2; 

    var pOptions = WINDOW_OPTIONS_DEFAULT;

    // für mehrere Hilfefenster folgende Funktion unkommentieren, ansonsten werden alle Hilfeseiten mit selbem FormName (FormEnum) im selben Fenster geoeffnet.   --- ep 20.08.08
//    if(fmMain)
//    { 
//       var counter=1; 
//       var j;
//       try{ 
//       for(j=0;j<fmMain.mainwinarray.length;j++)
//       { 
//            if(fmMain.mainwinarray[j])
//                if(!fmMain.mainwinarray[j].closed)
//                   if(fmMain.mainwinarray[j].name.indexOf(pFormName)==0)
//                     counter++;
//       } } catch(e) {}
//       if(counter>0)pFormName=pFormName+counter; 
//    } 
    
    var slash=pFormName.lastIndexOf('/');
    if(slash>0)
    {
        if (pFormName.toString().search('/FormsTB/') != -1) pScriptName = "../FormsTB/" + pScriptName;
        pFormName=pFormName.substring(slash+1);
    }
    
//    alert(pScriptName + ' , ' + pFormName + ' , ' + "width=" + pWidth + ",height=" + pHeight +  ",left=" + pLeft + ",top=" + pTop +  "," + pOptions);  

    var fm = window.open(pScriptName,pFormName,"width=" + pWidth + ",height=" + pHeight +  ",left=" + pLeft + ",top=" + pTop +  "," + pOptions, false);
    try { fm.focus(); } catch (e) { }
    winarray[winarray.length]=fm;
    if(fmMain)
    { 
       var i;
       try{ 
       for(i=0;i<fmMain.mainwinarray.length;i++)
      { 
            if(fmMain.mainwinarray[i])
            {
                if(fmMain.mainwinarray[i]==fm)break;
//                if(fmMain.mainwinarray[i].closed) 
//                    fmMain.Array.removeAt(mainwinarray,i);
             }
       } } catch(e) {}
       fmMain.mainwinarray[i]=fm;
    } 
}


function SelectField(pFunction, pValue)
{
    eval(OPENER + "." + pFunction + "(\""  + pValue  +  "\");");
    window.close();
}

function GetIntPosition(pPos)
{
    var p = pPos.replace("px","");    
    return p;
}

function gettablefromstring(pStr)
{
         if(pStr.__type)if(pStr.__type=="System.Data.DataTable")return pStr;
         eval('var tblrows = ' + pStr.dataArray.slice(0, pStr.dataArray.length-1) + ';');   
         var data= new Sys.Preview.Data.DataTable(pStr.columns, tblrows);
        return data; 
}

function setSelect(pSelectobj,pData,pDatafeld1,pDatafeld2,pKeepSelect)
{
    var pDatafeld2arr=pDatafeld2.split(",");
    selected=pSelectobj.selectedIndex;
    datalaenge=0;
    if(pData)if(pData.rows)
         datalaenge=pData.rows.length;
    if(pDatafeld2=="")pDatafeld2=pDatafeld1;
    
    for(i=0;i<datalaenge;i++)
    {
         var Optiontext="";
         for(var ii=0;ii<pDatafeld2arr.length;ii++)
            if(pData.rows[i][pDatafeld2arr[ii]]!=null) 
                Optiontext=Optiontext+pData.rows[i][pDatafeld2arr[ii]]+" ";
         if(i>=pSelectobj.length)
         {
              NeuerEintrag = new Option(Optiontext,pData.rows[i][pDatafeld1], false, true);
              pSelectobj.options[pSelectobj.length] = NeuerEintrag;
         }
         else
         {
             Eintrag=pSelectobj.options[i];
             Eintrag.text=Optiontext;
             Eintrag.value=pData.rows[i][pDatafeld1];
         }
    }
    for(ii=pSelectobj.options.length-1;ii>=i;ii--)
    {
         pSelectobj.options[ii]=null;
    }
    if(!pKeepSelect) selected=0;
    if(selected>=pSelectobj.length)selected=0;
    pSelectobj.selectedIndex=selected;
}

function noop(pIdx) { }


function Formclose() { window.close(); }

function GetMessage(pEnumIndex) { PageMethods.GetMessage(pEnumIndex,onGetMessageResult); }
function GetMessageByString(pEnumString) { PageMethods.GetMessageByString(pEnumString,onGetMessageResult); }
function onGetMessageResult(result) { alert(result); }

function GetWindowHeight()
{
    var y;
    
    if (self.innerHeight)
    {
	    y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
    {
	    y = document.documentElement.clientHeight;
    }
    else if (document.body)
    {
	    y = document.body.clientHeight;
    }
    
    return y;
}

function GetWindowWidth()
{
    var x;
    
    if (self.innerHeight) 
    {
	    x = self.innerWidth;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
    {
	    x = document.documentElement.clientWidth;
    }
    else if (document.body)
    {
	    x = document.body.clientWidth;
    }

    return x;
}

function OpenViewForm(pFormName,sIndex,eMode,fRegister,aArt)
{
    // sIndex    = SourceIndex;
    // eMode     = EditMode;
    // fRegister = FirstRegister;
    
     var FormName   = pFormName;
     var ScriptName = FormName + '.aspx' + '?' + 'sIndex=' + sIndex;

     if (eMode) ScriptName += '&'  + 'eMode=' + eMode;
     if (fRegister) ScriptName += '&'  + 'fRegister=' + fRegister;
     if(aArt) ScriptName += '&'  + 'art=' + aArt;
     
     if(typeof NextRow!='undefined')if(NextRow)NextRow=null;
     if(typeof HideRowMenu!='undefined')HideRowMenu();
     

     OpenForm(ScriptName,FormName,"","","","",WINDOW_OPTIONS_EDITFORM);
}


function OpenListForm(pFormName,pParameter)
 {
    var FormName   = pFormName;
    var ScriptName = FormName + '.aspx';
   if(pParameter) ScriptName=ScriptName+"?"+pParameter;
    
     if(typeof NextRow!='undefined')if(NextRow)NextRow=null;
     if(typeof HideRowMenu!='undefined')HideRowMenu();

    OpenForm(ScriptName,FormName,"","","","",WINDOW_OPTIONS_LISTFORM);
}

function OpenReportViewForm(pFormName,pParameter)
 {
    var FormName   = pFormName;
    var ScriptName = FormName + '.aspx';
   if(pParameter) ScriptName=ScriptName+"?"+pParameter;
    
     if(typeof NextRow!='undefined')if(NextRow)NextRow=null;
     if(typeof HideRowMenu!='undefined')HideRowMenu();

    OpenForm(ScriptName,FormName,"","","","",WINDOW_OPTIONS_REPORTVIEWFORM);
}

function IsPopupBlocker()
{
     var f = window.open('','','width=0,height=0,left=0,top=0,scrollbars=no');
     if (f)  { f.close(); return false; } else { return true };
}        

function getselection(pGridView,pAlle)
{
    var i; 
    var all = document.getElementsByTagName('*');
    var res="0";
    for(i=0;i<all.length;i++)
    {
       var Item=all[i];
       if(Item)
        if(Item.value)
         if(Item.value=="SELECTED")
          if(Item.id.substring(0,pGridView.length)==pGridView)
          {
                var temparr=Item.id.split('#');
                if(temparr.length==2)
               { 
                    if(temparr[1].length>0)
                    {
                        if(res=="0")res=temparr[1];
                        else res=res+","+temparr[1];
                        if(typeof(pAlle)=="undefined")
                            return res;
                        else if(pAlle==false)
                            return res;
                    } 
               } 
          } 
    }
    return res;
}

function GetImageBySrc(pSrc)
{
    var images = document.getElementsByTagName("IMG");
    for (var i = 0; i < images.length; i++)
    {
           var src = images[i].src;
           if ( src.toUpperCase().indexOf(pSrc.toUpperCase()) >= 0 ) return images[i]; 
    }   
    return null; 
}

function EncX(pText) 
{
   //return EncodeBase64(pText);
   return pText;
}

function DecX(pText) 
{  
   //var text = DecodeBase64(pText);
   //alert(pText + "-----" + text); 
   //return DecodeBase64(pText);
   return pText;
}

function EncodeBase64(decStr)
{
 var bits;
 var dual;
 var i = 0;
 var encOut = '';
 while(decStr.length >= i + 3)
 {
  bits = (decStr.charCodeAt(i++) & 0xff) <<16 |
         (decStr.charCodeAt(i++) & 0xff) <<8  |
          decStr.charCodeAt(i++) & 0xff;
  encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
            base64s.charAt((bits & 0x0003f000) >>12) +
            base64s.charAt((bits & 0x00000fc0) >> 6) +
            base64s.charAt((bits & 0x0000003f));
 }
 if(decStr.length -i > 0 && decStr.length -i < 3)
 {
  dual = Boolean(decStr.length -i -1);
  bits = ((decStr.charCodeAt(i++) & 0xff) <<16) |
         (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);
  encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
            base64s.charAt((bits & 0x0003f000) >>12) +
            (dual ? base64s.charAt((bits & 0x00000fc0)             >>6) : '=') +
            '=';
 }
 return(encOut);
}

function DecodeBase64(encStr)
{
 var bits;
 var decOut = '';
 var i = 0;
 for(; i<encStr.length; i += 4)
 {
  bits = (base64s.indexOf(encStr.charAt(i))    & 0xff) <<18 |
         (base64s.indexOf(encStr.charAt(i +1)) & 0xff) <<12 |
         (base64s.indexOf(encStr.charAt(i +2)) & 0xff) << 6 |
          base64s.indexOf(encStr.charAt(i +3)) & 0xff;
  decOut += String.fromCharCode((bits & 0xff0000) >>16, (bits & 0xff00) >>8, bits & 0xff);
 }
 if(encStr.charCodeAt(i -2) == 61)
 {
  return(decOut.substring(0, decOut.length -2));
 }
 else if(encStr.charCodeAt(i -1) == 61)
 {
  return(decOut.substring(0, decOut.length -1));
 }
 else {return(decOut)};
}

function Trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function TrimEnd(s) {
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function AfterCOSLoginSucceeded(pWindow,pLoginvalue) {
    var LoginInfo = fmMain.document.getElementById(IDPRAEFIX + 'COSBARPOS010'); 

    var loginTable = fmMain.document.getElementById(IDPRAEFIX + 'loginTable');
    if (loginTable) {
        for (var i = 7; i < 13; i++) {
            var displ = 'none';
            if (i >= 10) displ = ''
            var tdobj2 = fmMain.document.getElementById(IDPRAEFIX + 'COSTD' + toFestStellen(i, 2));
            if (tdobj2) {
                tdobj2.style.display = displ;
                if (i > 7) {
                    var tdobj1 = fmMain.document.getElementById(IDPRAEFIX + 'COSSPLITTD' + toFestStellen(i, 2));
                    tdobj1.style.display = displ;
                }
            }
        }
        loginTable.style.display = 'none';
        pWindow.COSID = parseInt(pLoginvalue[0]);
        fmMain['COSID'] = parseInt(pLoginvalue[0]);
    }
    if (LoginInfo) LoginInfo.style.visibility = '';

    SetBalloonInfo(Angemeldet_als_Text + '<br>' + pLoginvalue[1]);
    PopUpInfoBalloon(LoginInfo, 8000);

    if (pWindow && pWindow.OnAfterCOSLoginSucceeded) pWindow.OnAfterCOSLoginSucceeded();
    
}

function AfterCOSLoginError(pWindow,pLoginvalue)
{
    var LoginInfo =  fmMain.document.getElementById(IDPRAEFIX + 'COSLoginInfo'); 
    var LoginButton =  fmMain.document.getElementById('COSLoginButton');
    var RegisterButton = fmMain.document.getElementById('COSRegisterButton');
    var PWVergessenButton = fmMain.document.getElementById('COSPWVergessenButton');  

    if (LoginButton) LoginButton.style.visibility = 'visible';
    if (RegisterButton) RegisterButton.style.visibility = 'hidden';
    if (PWVergessenButton) PWVergessenButton.style.visibility = 'visible';

    myconfirm2(Login_Text, Falsche_Angaben_Text + '!', 5, passclearfocus)
 }
 function passclearfocus() {
     if(typeof(COSID)!="undefined")if(COSID)if(COSID>0)return;
     var pass = document.getElementById(IDPRAEFIX + 'tbpass');
     if (pass) {
         var user = document.getElementById(IDPRAEFIX + 'tbuser');
         if (user) if (user.value == '') pass = user;
         pass.value = ''; pass.focus(); 
     }else {
     var pass = document.getElementById(IDPRAEFIX + 'COSPasswort');
         if (pass) {
             var user = document.getElementById(IDPRAEFIX + 'COSLogin');
             if (user) if (user.value == '') pass = user;
             pass.value = '';
             try { pass.focus(); } catch (e) { }
         }
     }
 }

setTimeout('passclearfocus()',2000);

function toFestStellen(pWert, pStellen) {
    var res = pWert.toString();
    if (res.length < pStellen) {
        for (var i = res.length; i < pStellen; i++)
            res = '0' + res;
    }
    return res;
}

var Login_Text = '';
var Falsche_Angaben_Text = '';
var Angemeldet_als_Text = ''; 
var Nicht_angemeldet_Text;
var Lieferantenname = '';

function PopUpInfoBalloon(pLoginInfo, pMilliSec)
{
    ShowCOSInfoBalloon(true);
    setTimeout('PopDownInfoBalloon()', pMilliSec);
}

function PopDownInfoBalloon() 
{
    var mainform = getMain(window);
    if (mainform) COSWerbeBalloon = mainform.document.getElementById('COSInfoBalloonPanel');
    {
        var balloon = mainform.document.getElementById('COSInfoBalloonPanel');
        if (balloon) balloon.style.visibility = 'hidden';
    }
}

function GetPositionBelowCenter(pElementID, pDokument)
{
    var res = new Array(0, 0);
    
    if (pDokument) 
    {
        var Element = pDokument.getElementById(IDPRAEFIX + pElementID);
        if (Element) {
            res=findPos(Element);
            res[1] += -30;
            res[0] += -5;
        }
    }
    return res;
}

function SetBalloonInfo(pName) 
{ 
    var mainform = getMain(window);
    if (mainform) mainform.Lieferantenname = pName;
}

function ShowCOSInfoBalloon(pVisible)
{
    var mainform = getMain(window);
    if (mainform) COSWerbeBalloon = mainform.document.getElementById('COSInfoBalloonPanel');

    if (COSWerbeBalloon)
    {
        COSWerbeBalloon.style.visibility = 'hidden';
        if (pVisible)
        {
            COSWerbeBalloon.className = 'COSInfoBalloonPanel';
            
            while (COSWerbeBalloon.childNodes.length > 0)
            {
                COSWerbeBalloon.removeChild(COSWerbeBalloon.childNodes[0]);
            }
            var text = mainform.document.createElement('span');
            text.className = 'LegendeTitel';
            text.style.position = 'absolute';
            text.style.left = '-5px';
            text.style.top = '102px';
            text.style.width = '250px';
            text.innerHTML = mainform.Lieferantenname;
            COSWerbeBalloon.appendChild(text);

            var pos = GetPositionBelowCenter("COSBARPOS010", mainform.document);
            var left = pos[0] - parseInt(COSWerbeBalloon.style.width);
            COSWerbeBalloon.style.top = pos[1] + 'px';
            COSWerbeBalloon.style.left = left + 'px';
            COSWerbeBalloon.style.zIndex = '1000';
            COSWerbeBalloon.style.visibility = 'visible';
        }
    }
}

/* OpenCOSMessenger
/// <summary>
/// Oeffnet den Messenger, falls nicht bereits offen.
/// </summary>
/// <created>Michael Walter, 03.01.2009</created>
/// <remarks> Update, sts, 04.06.2009, "Aufruf von OpenForm an OpenForm-Änderungen angepasst"</remarks>
/// <param name="pEmail">Emailadresse des Users, optional. Beim oeffnen startet eine Unterhaltung mit diesem User.</param>
/// <returns></returns>
*/

function OpenCOSMessenger(pEmail) {
    var IMUrl = 'formstb/fmimmain.aspx';

    var Email = '';

    if (pEmail) Email = pEmail;

    //if (!fmMain) { alert('Please reload myTransWeb'); return; }  // fmMain muss existieren
    //if (typeof (fmMain.IMWindow) == 'undefined') { alert('Please reload myTransWeb'); return; } // fmMain muss die Variable IMWindow besitzen

    if (typeof (fmMain.IMWindow) == 'undefined' || fmMain.IMWindow == null || fmMain.IMWindow.closed == true) {
        IMUrl = '../' + IMUrl;
        if (Email != '') IMUrl += '?' + 'KontaktEmail=' + Email;
        if (typeof (fmMain.IMWindow) == 'undefined') fmMain.IMWindow = OpenForm(IMUrl, 'fmIMMain', '', '', '', ''); else var fm = OpenForm(IMUrl, 'fmIMMain', '', '', '', '');
    } else {
        fmMain.IMWindow.focus();
        if (Email != '') fmMain.IMWindow.StartChatFromEmail(Email);
    }
}

function CheckInputFilter(pKeyCode, pFilterTyp) {
    if (pFilterTyp == "0123456789")
        if ((pKeyCode < 48 | pKeyCode > 57) & (pKeyCode < 96 | pKeyCode > 105)) {
            if(",8,9,46,27,37,39,38,40,".indexOf(pKeyCode.toString())<0)
                return false;
        }
    return true;
}

function COSRegister() {
    OpenViewForm('../FormsTB/fmRegEdit', '0', '0');
}

function RowSelect(pObj, pIndex, pTableName, pObjectName) {
    DisabledRowAktion = true;
    var aktion = false;
    if (typeof (pObj) != 'undefined')
        if (pObj != null) {
        if (pObj.src.indexOf('un') > 0) {
            aktion = true;
            pObj.src = pObj.src.replace('un', '');
            pObj.setAttribute('over', pObj.getAttribute('over').replace('un', ''));
            pObj.setAttribute('out', pObj.getAttribute('out').replace('un', ''));
        } else {
            pObj.src = pObj.src.replace('sel', 'unsel');
            pObj.setAttribute('over', pObj.getAttribute('over').replace('sel', 'unsel'));
            pObj.setAttribute('out', pObj.getAttribute('out').replace('sel', 'unsel'));
        }
    }
    COSService.RowSelect(pIndex, aktion, pTableName, pObjectName);
}

//function PanelAnimation(pId, pAltheight, pNewHeight) {
//    var AnimationObject = null;
//    if (AnimationObject == null)
//        AnimationObject = document.getElementById(pId);
//    if (AnimationObject == null)
//        return;
//    var heightstep = (pAltheight - pNewHeight) > 0 ? -10 : 10;
//    var nextheight = pAltheight + heightstep;
//    AnimationObject.style.height = nextheight;
//    if (nextheight < pNewHeight)
//        setTimeout('PanelAnimation("'+pId+'",' + nextheight.toString() + ',' + pNewHeight.toString() + ')', 1);
//    else
//        AnimationObject == null;
//}

function HTMLtoTEXT(pHTML) {
    var res = '';
    var htmlon = false;
    var htmlda = false;
    for (var i = 0; i < pHTML.length; i++) {
        var ch = pHTML.substr(i, 1);
        if (ch == '<') { htmlon = true; htmlda = true; if (res > '') res += ' '; }
        else if (ch == '>') htmlon = false;
        else {
            if (htmlon == false) {
                if (htmlda & res > '')
                    res += ' ';
                res += ch;
            }
            else
                htmlda = false;
        }
    }
    return res.replace('&nbsp;', ' ');
}

var autopagetimepout = null;
function inputrad(pObj, Startwert, Endwert, Schrittweite) {
    if (pObj == null) return false;
    if (pObj.id.indexOf('currentpage') > 0) {
        Endwert = parseInt(document.getElementById(pObj.id.replace('currentpage', 'pagecount')).innerHTML);
        if (autopagetimepout != null)
            clearTimeout(autopagetimepout);
        autopagetimepout=setTimeout('window["autopagetimepout"]=null;'+pObj.id.replace(IDPRAEFIX,'').replace('_currentpage','nextpage()'),1000);
    }
    var minus = false; var plus = Schrittweite;

    if (pObj.value == '')
        pObj.value = '0';
    var nWert = parseInt(pObj.value);

    if (event.wheelDelta >= 1 && (minus || nWert > Startwert)) {
        nWert = nWert - plus;
    }

    else if (event.wheelDelta <= Startwert && (nWert < Endwert | Endwert == 0)) {
        nWert += plus;
    }

    pObj.value = nWert;
    return false;
}

function noop() { }
function isNull(pWert, pFallsNullWert) {
    if (pWert == null) return pFallsNullWert;
    return pWert;
}

function ShowAGB() {OpenViewForm("fmCOSAGB");}


function parseDate(pString) {
    if (pString.length == 0) return NaN;
    return Date.parse(replaceAll(pString, '.', '/'));
}

function replaceAll(pString, pToReplace, pReplaceWith) {
    while (pString.indexOf(pToReplace) >= 0)
        pString = pString.replace(pToReplace, pReplaceWith);
    return pString;
}

