// *** ACHTUNG *** ACHTUNG ***
// Diese Datei muss reines ASCII (fuer den IE) sein!!!!
// Also: KEINE Umlaute verwenden!!!
// *** ACHTUNG *** ACHTUNG ***
/*
 * Utility.js
 *
 * Ersteller: Juergen Augstein
 * Erstellt am: 22.06.2004
 *
 * Historie:
 *
 * Bemerkungen:
 * Diese Datei enthaelt alle moeglichen Javaskript-Hilfsfunktionen.
 * In eigene Dateien ausgelagert werden spezielle Bereiche wie die
 * Java-Skript-Funktionen fuer die Kartenansicht.
 *
 * ToDos:
 * */
/* Browser bestimmen */
var UserAgent = navigator.userAgent.toLowerCase();
var IsGecko = (UserAgent.indexOf('mozilla') != -1 && UserAgent.indexOf('compatible') == -1) ? true : false;
var IsInternetExplorer5 = ((UserAgent.indexOf("msie 5") > -1)) ? true : false;
var IsInternetExplorer6 = ((UserAgent.indexOf("msie 6") > -1)) ? true : false;
var IsInternetExplorer7 = ((UserAgent.indexOf("msie 7") > -1)) ? true : false;
var IsInternetExplorer = IsInternetExplorer5 || IsInternetExplorer6;
var BusinessTwitterMaxInputLength = 90;

/* X- und Y-Positionen der Maus */
var PosX = null;
var PosY = null;

/* Mauskoordinaten aufzeichnen */
if (document.addEventListener) 
{
    document.addEventListener("mousemove", OnMouseMove, false);
}
else 
{
    document.attachEvent("onmousemove", OnMouseMove);
}


/* Oeffnet ein Fenster in der gewuenschten Groesse. */
function OpenWindow(Url, Width, Height, WindowName)
{
    var ShowWindow;
    //IE6 -> ShowAddressBar -> Titel der Seite ist genau das title Tag
    var AdressBar = (IsInternetExplorer6) ? ", location = yes, " : "";
    if (IsInternetExplorer7) 
        Width += 18;
    ShowWindow = window.open(Url, WindowName, " width=" + Width + ", height=" + Height + ", resizable=yes, scrollbars=yes, menubar=yes, status=yes" + AdressBar);
    ShowWindow.focus();
}

/* Vorübergehend als Sonderfunktion für KonicaMinolta - wird später durch OpenWindow ersetzt */
function OpenBareWindow(Url, Width, Height)
{
    var ShowWindow;
    
    ShowWindow = window.open(Url, "", " width=" + Width + ", height=" + Height + ", resizable=no, scrollbars=no, menubar=no, status=no");
    ShowWindow.focus();
}

/* Oeffnet eine, aus einem Popup-Fenster uebergebene Url im Hauptfenster. */
function OpenUrlInParentWindow(Url)
{
    // Falls ein Elternfenster vorhanden ist, dann öffne die Url dort
    // Überprüfung mit "window.document.opener" funzt nicht -> Lösung gesucht
    if (window.opener) 
    {
        window.opener.location.href = Url;
        window.opener.focus();
    }
    else 
    {
        // Ansonsten öffne die Url zumindest im aktuellen Fenster
        window.document.location.href = Url;
    }
}

/* Oeffnet aus dem Popup-Fenster die angegebene Url im Hauptfenster und schließt das Popup*/
function OpenUrlInParentWindowAndClosePopup(Url)
{
    window.close();
    window.opener.location.href = Url;
    window.opener.focus();
}

/*	Oeffnet ein Fenster in der gewuenschten Groesse. Diese Funktion wird genutzt, wenn im neuen 
 Fenster ein	Frame dargestellt werden soll (siehe YMPresentation/PopUp/PopUpFrame.aspx).
 Diese Seite erwartet einen URL-Parameter(GoToURL), der innerhalb des Frames angezeigt wird.
 Auf den Header wird momentan statisch verlinkt.
 (Anmerkung: Der mituebergegene URL-Parameter wird erst hier enkodiert und an die eigentliche
 URL drangehaengt, da Explorer und Firefox die in .NET enkodierten URLs in JavaScript intern
 wieder dekodieren!). */
function OpenFrameWindow(Url, UrlParam, Width, Height)
{
    var ShowWindow;
    var encodedUrl = encodeURIComponent(UrlParam);
    ShowWindow = window.open(Url + "&GoToURL=" + encodedUrl, "", " width=" + Width + ", height=" + Height + ", resizable=yes, scrollbars=yes, menubar=yes, status=yes");
}

/*	Ist noetig, da auch in diesem Fall das Problem der .NET Enkodierung auftritt. Die erste URL
 ist jedoch in der Regel kein Frame, sondern eine Redirect-Seite, die den Click auf die Werbung
 protokolliert.*/
function OpenAdvertisementWindow(Url, UrlParam, Width, Height)
{
    var ShowWindow;
    var encodedUrl = encodeURIComponent(UrlParam);
    ShowWindow = window.open(Url + "&URL=" + encodedUrl, "", " width=" + Width + ", height=" + Height + ", resizable=yes, scrollbars=yes, menubar=yes, status=yes");
}

/* Die Position des Footers veraendern, falls Werbung etc. in den rechten Spalten
 zu lang werden sollte */
function HomeFooterPosition()
{
    var LuyHomeFooter = null;
    var RlyExtendedSideCol = null;
    var RlySideCol = null;
    
    if (document.getElementById('HomeFooter')) 
    {
        // Die linke obere Ecke des Footers bestimmen.
        LuyHomeFooter = document.getElementById('HomeFooter').offsetTop;
    }
    if (document.getElementById('ExtendedSideColId')) 
    {
        // Die rechte untere Ecke der ExtendedSideCol bestimmen.
        RlyExtendedSideCol = document.getElementById('ExtendedSideColId').offsetTop + document.getElementById('ExtendedSideColId').offsetHeight;
    }
    if (document.getElementById('SideColId')) 
    {
        // Die rechte untere Ecke der ExtendedSideCol bestimmen.
        RlySideCol = document.getElementById('SideColId').offsetTop + document.getElementById('SideColId').offsetHeight;
    }
    // Wenn die eine oder andere Spalte zu lang sein sollte, dann verschiebe den Footer nach unten
    if ((RlyExtendedSideCol >= LuyHomeFooter) || (RlySideCol >= LuyHomeFooter)) 
    {
        if (RlyExtendedSideCol > RlySideCol) 
        {
            document.getElementById('HomeFooter').style.marginTop = ((RlyExtendedSideCol - LuyHomeFooter) + 30) + 'px';
        }
        else 
        {
            document.getElementById('HomeFooter').style.marginTop = ((RlySideCol - LuyHomeFooter) + 30) + 'px';
        }
    }
}

/* Wird bei jeder Mausbewegung aufgerufen */
function OnMouseMove(EventObj)
{
    try 
    {
        var e = EventObj ? EventObj : window.event;
        if (e.pageX || e.pageY) 
        {
            PosX = e.pageX;
            PosY = e.pageY;
        }
        else 
            if (e.clientX || e.clientY) 
            {
                PosX = e.clientX + document.body.scrollLeft +
                document.documentElement.scrollLeft;
                PosY = e.clientY + document.body.scrollTop +
                document.documentElement.scrollTop;
            }
    } 
    catch (Exc) 
    {
    }
}

/* Die aktuellen Mauskoordinaten bestimmen */
function GetMouseCoordinates(EventObj)
{
    var Coords = 
    {
        X: 0,
        Y: 0
    };
    if (EventObj) 
    {
        Coords.X = EventObj.pageX;
        Coords.Y = EventObj.pageY;
    }
    else 
    {
        // find out if ie runs in quirks mode
        var docEl = (typeof document.compatMode != "undefined" &&
        document.compatMode != "BackCompat") ? "documentElement" : "body";
        
        // Internet Explorer
        Coords.X = window.event.clientX + document[docEl].scrollLeft;
        Coords.Y = window.event.clientY + document[docEl].scrollTop;
    }
    return Coords;
}

/* Zeigt einen Tipp direkt am Mauszeiger. Es muss ein div in der Art 
 <div id="ToolTip"></div> existieren */
function ShowTip(Text)
{
    document.getElementById('ToolTip').innerHTML = Text;
    Show();
}

/* Versteckt den Tipp wieder */
function HideTip()
{
    clearTimeout(S);
    document.getElementById('ToolTip').style.display = 'none';
}

function Show()
{
    //		// Transparenz-Effekt:
    //		if (IsInternetExplorer)
    //		{
    //			document.getElementById("ToolTip").style.filter = "Alpha(opacity=80, finishopacity=80, style=2)";
    //			document.getElementById("ToolTip").style.background = "#FFFFCC";
    //		}
    //		else if (IsGecko)
    //		{
    //			document.getElementById("ToolTip").style.opacity = "0.8";
    //			document.getElementById("ToolTip").style.background = "#FFFFCC";
    //		}
    document.getElementById('ToolTip').style.display = 'block';
    document.getElementById('ToolTip').style.left = PosX + 20 + 'px';
    document.getElementById('ToolTip').style.top = PosY + 'px';
    S = setTimeout("Show()", 10);
}



var WaitScreen = document.createElement("div");
//Blendet ein WarteScreen mit einem animierten Gif ein.
/*ToDo
 - Übergabe der Message an die Funktion(Internationalisierung)
 - IE-Optimierung(siehe ChangeColor2)
 - OnClick Event in RouteForm.aspx einfügen [onclick="ShowWaitScreen()] zum Einfügen des WarteScreens"
 */
function ShowWaitScreen()
{
    var Message = "Ihre Route wird berechnet.<br/>Bitte warten...";
    var Body = document.getElementsByTagName("body")[0];
    for (var i = 0; i < Body.childNodes.length; i++) 
    {
        var Child = Body.childNodes[i];
        if (Child.className == "MainBody") 
        {
            Child.style.visibility = "hidden";
            
            var WaitImage = document.createElement("img");
            WaitImage.src = "../Layout/Images/Generic/Gears.gif";
            
            WaitImage.className = "WaitImage";
            WaitScreen.className = "WaitScreen";
            
            var PartMessage = new Array();
            var RealCount = 0;
            for (count = 0; count < Message.length; count++) 
            {
                if (Message[count] == "<") 
                {
                    do 
                    {
                        PartMessage[count] = Message[count];
                        count++;
                    }
                    while (Message[count] != ">");
                    count++;
                }
                PartMessage[count] = "<span id=\"T" + RealCount + "\">" + Message[count] + "</span>";
                RealCount++;
            }
            RealCount--;
            var MessageFinal = PartMessage.join("");
            
            WaitScreen.innerHTML = MessageFinal;
            
            Body.insertBefore(WaitScreen, Child);
            WaitScreen.appendChild(WaitImage);
            if (IsInternetExplorer) 
                ChangeColor2(Message, 1, RealCount);//IE
            else 
                ChangeColor(0, RealCount);//Firefox&Co
            break;
        }
    }
}

//Wechselt die Textfarbe des WarteScreens
function ChangeColor(count, RealCount)//Firefox&Co
{
    var Elem = document.getElementById("T" + count);
    
    if (Elem) 
        Elem.style.color = "#ff0000";
    else 
    {
        for (i = 0; i <= RealCount; i++) 
        {
            Elem = document.getElementById("T" + i);
            Elem.style.color = "#000000";
        }
        ChangeColor(0, RealCount);
    }
    
    if (count <= RealCount) 
        setTimeout("ChangeColor(" + (count + 1) + "," + RealCount + ")", 100);
}

/*
 ToDo: ChangeColor2
 - Styleanpassung (Global.css) für IE
 - Gif wird noch nicht dargestellt
 - ein "undefine" bei der Schriftfarbenänderung
 -
 */
function ChangeColor2(Message, count, RealCount)//IE
{
    var s1 = "<span style=\"color:#ff0000\">";
    var s2 = "</span>";
    var finalString;
    var temp1;
    var temp2;
    
    if (Message.charAt(count) == "<") 
    {
        while (Message.charAt(count) != ">") 
        {
            count++;
        }
    }
    else 
    {
        temp1 = Message.substring(0, count);
        temp2 = Message.substring(count, Message.length);
        finalString = s1.concat(temp1);
        finalString = finalString.concat(s2);
        finalString = finalString.concat(temp2);
    }
    if (WaitScreen) 
        WaitScreen.innerHTML = finalString;
    if (count <= Message.length) 
        setTimeout("ChangeColor2(\"" + Message + "\"," + (count + 1) + "," + RealCount + ")", 100);
}

function LoginMenuItemsRollOut(ElementID)
{
    if (document.getElementById('TEXT_' + ElementID) != null) 
    {
        document.getElementById('TEXT_' + ElementID).style.color = '#006';
    }
    if (document.getElementById('WYSIWYG_' + ElementID) != null) 
    {
        document.getElementById('WYSIWYG_' + ElementID).style.backgroundColor = '#fff';
        document.getElementById('WYSIWYG_' + ElementID).style.border = 'none';
    }
}

function LoginMenuItemsRollIn(ElementID)
{
    if (document.getElementById('TEXT_' + ElementID) != null) 
    {
        document.getElementById('TEXT_' + ElementID).style.color = '#FFCC00';
    }
    if (document.getElementById('WYSIWYG_' + ElementID) != null) 
    {
        document.getElementById('WYSIWYG_' + ElementID).style.cursor = 'pointer';
        document.getElementById('WYSIWYG_' + ElementID).style.backgroundColor = '#FFFFCC';
        document.getElementById('WYSIWYG_' + ElementID).style.border = 'dotted 1px #FFCC00';
    }
}

function update(ID)
{
    Output = document.getElementById(ID);
    Input = document.getElementById(ID + 'Edit');
    Output.value = Input.value;
}

// Trim Funktion da anscheinend keine in JavaScript existiert.
String.prototype.Trim = function(dir)
{
    switch (dir)
    {
        case 'r':
            return this.replace(/\s+$/g, '');
            break;
        case 'l':
            return this.replace(/^\s+/g, '');
            break;
        default:
            return this.replace(/(^\s+|\s+$)/g, '');
    }
};

/* Die Position des Footers veraendern, falls rechte Spalten
 zu lang werden sollten */
function TemplateFooterPosition()
{
    var LuyTemplateFooter = null;
    var RlyExtendedSideCol = null;
    var RlySideCol = null;
    var RlyMapControlPanel = null;
    var RlyTemplateHeader = null;
    
    var UserAgent = "";
    var IsGecko = false;
    var IsInternetExplorer5 = false;
    var IsInternetExplorer6 = false;
    var IsInternetExplorer = false;
    
    UserAgent = navigator.userAgent.toLowerCase();
    IsGecko = (UserAgent.indexOf('mozilla') != -1 && UserAgent.indexOf('compatible') == -1) ? true : false;
    IsInternetExplorer5 = ((UserAgent.indexOf("msie 5") > -1)) ? true : false;
    IsInternetExplorer6 = ((UserAgent.indexOf("msie 6") > -1)) ? true : false;
    IsInternetExplorer = IsInternetExplorer5 || IsInternetExplorer6;
    
    if (IsGecko) 
    {
        if (document.getElementById('TemplateFooter')) 
        {
            // Die linke obere Ecke des Footers bestimmen.
            LuyTemplateFooter = document.getElementById('TemplateFooter').offsetTop;
        }
        if (document.getElementById('ExtendedSideColId')) 
        {
            // Die rechte untere Ecke der ExtendedSideCol bestimmen.
            RlyExtendedSideCol = document.getElementById('ExtendedSideColId').offsetTop + document.getElementById('ExtendedSideColId').offsetHeight;
        }
        if (document.getElementById('SideColId')) 
        {
            // Die rechte untere Ecke der ExtendedSideCol bestimmen.
            RlySideCol = document.getElementById('SideColId').offsetTop + document.getElementById('SideColId').offsetHeight;
        }
        if (document.getElementById('MapControlPanel')) 
        {
            // Die rechte untere Ecke des MapControlPanel bestimmen.
            RlyMapControlPanel = document.getElementById('MapControlPanel').offsetTop + document.getElementById('MapControlPanel').offsetHeight;
        }
        if (document.getElementById('TemplateHeader')) 
            ;
                {
            // Die rechte untere Ecke des TemplateHeader bestimmen.
            RlyTemplateHeader = document.getElementById('TemplateHeader').offsetTop + document.getElementById('TemplateHeader').offsetHeight
        }
    }
    else 
    {
        if (document.all.TemplateFooter) 
        {
            // Die linke obere Ecke des Footers bestimmen.
            LuyTemplateFooter = document.getElementById('TemplateFooter').offsetTop;
        }
        if (document.all.ExtendedSideColId) 
        {
            // Die rechte untere Ecke der ExtendedSideCol bestimmen.
            RlyExtendedSideCol = document.getElementById('ExtendedSideColId').offsetTop + document.getElementById('ExtendedSideColId').offsetHeight;
        }
        if (document.all.SideColId) 
        {
            // Die rechte untere Ecke der SideCol bestimmen.
            RlySideCol = document.getElementById('SideColId').offsetTop + document.getElementById('SideColId').offsetHeight;
        }
        if (document.all.MapControlPanel) 
        {
            // Die rechte untere Ecke des MapControlPanel bestimmen.
            RlyMapControlPanel = document.getElementById('MapControlPanel').offsetTop + document.getElementById('MapControlPanel').offsetHeight;
        }
        if (document.all.TemplateHeader) 
        {
            // Die rechte untere Ecke des TemplateHeader bestimmen.
            RlyTemplateHeader = document.getElementById('TemplateHeader').offsetTop + document.getElementById('TemplateHeader').offsetHeight;
        }
    }
    
    // Wenn die eine oder andere Spalte zu lang sein sollte, dann verschiebe den Footer nach unten
    if ((RlyExtendedSideCol >= LuyTemplateFooter) || (RlySideCol >= LuyTemplateFooter) || (RlyMapControlPanel + RlyTemplateHeader >= LuyTemplateFooter)) 
    {
        // MapControlPanel ist zu lang => verschiebe Footer nach unten
        if ((RlyMapControlPanel + RlyTemplateHeader >= LuyTemplateFooter)) 
        {
            if (IsGecko) 
            {
                document.getElementById('TemplateFooter').style.marginTop = ((RlyMapControlPanel + RlyTemplateHeader) - LuyTemplateFooter) + 30 + 'px';
            }
            else 
            {
                if (document.all.TemplateFooter) 
                    document.all.TemplateFooter.style.marginTop = ((RlyMapControlPanel + RlyTemplateHeader) - LuyTemplateFooter) + 30;
            }
        }
        // ExtendedSideCol ist zu lang => verschiebe Footer nach unten
        else 
            if (RlyExtendedSideCol > RlySideCol) 
            {
                if (IsGecko) 
                {
                    document.getElementById('TemplateFooter').style.marginTop = ((RlyExtendedSideCol - LuyTemplateFooter) + 30) + 'px';
                }
                else 
                {
                    document.all.TemplateFooter.style.marginTop = ((RlyExtendedSideCol - LuyTemplateFooter) + 30);
                }
            }
            // SideCol ist zu lang => verschiebe Footer nach unten
            else 
                if (RlySideCol > RlyExtendedSideCol) 
                {
                    if (IsGecko) 
                    {
                        document.getElementById('TemplateFooter').style.marginTop = ((RlySideCol - LuyTemplateFooter) + 30) + 'px';
                    }
                    else 
                    {
                        document.all.TemplateFooter.style.marginTop = ((RlySideCol - LuyTemplateFooter) + 30);
                    }
                }
    }
}

function OpenUrlInPopUp(Url)
{
    var containerWidth = 800;
    var containerMaxHeight = 800;
    
    var blackdiv = document.createElement('div');
    document.body.appendChild(blackdiv);
    jQuery(blackdiv).css('top', 0).css('left', 0).css('position', 'absolute').css('z-index', 99998).width(jQuery(window).width()).height(jQuery(window).height()).css('background-color', '#333').css('opacity', 0.6);
    
    var ifrContainer = document.createElement('div');
    document.body.appendChild(ifrContainer);
    jQuery(ifrContainer).width(containerWidth).height(Math.min(containerMaxHeight, jQuery(window).height() - 48)).css('position', 'absolute').css('text-align', 'center').css('border', '1px solid #333').css('z-index', 99998).css('top', 24).css('left', (jQuery(window).width() - containerWidth) / 2).css('background-color', '#f2f2f2').css('overflow', 'hidden').css('-moz-border-radius', '8px').css('-webkit-border-radius', '8px');
    
    var ifr = document.createElement('iframe');
    ifr.frameBorder = 0;
    ifrContainer.appendChild(ifr);
    jQuery(ifr).width(containerWidth - 8).height(Math.min(containerMaxHeight, jQuery(window).height() - 48) - 32).css('margin', '20px auto 8px auto').css('border', 'none').attr('frameBorder', 0);
    
    
    var close = document.createElement('a');
    document.body.appendChild(close);
    jQuery(close).attr('href', '#').css('background-image', 'url(../../YMap/Layout/Images/Generic/Close_LightBox.png)').css('position', 'absolute').css('display', 'block').width(27).height(27).css('z-index', 99999).css('left', (jQuery(window).width() - containerWidth) / 2 + containerWidth).css('top', 13);
    
    function closeFunc()
    {
        ifrContainer.parentNode.removeChild(ifrContainer);
        blackdiv.parentNode.removeChild(blackdiv);
        close.parentNode.removeChild(close);
    }
    
    jQuery(blackdiv).click(function()
    {
        closeFunc();
        return false;
    });
    jQuery(close).click(function()
    {
        closeFunc();
        return false;
    });
    
    ifr.src = Url;
}

//Cookie erstellen.
function CreateCookieBT(name, value, days)
{
    if (days) 
    {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else 
        var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

//Cookie auslesen.
function ReadCookieBT(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) 
    {
        var c = ca[i];
        while (c.charAt(0) == ' ') 
            c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) 
            return decodeURIComponent(c.substring(nameEQ.length, c.length));
    }
    return null;
}

//Cookie löschen.
function DeleteCookieBT(name)
{
    CreateCookieBT(name, "", -1);
}

//Business-Twitter JS Content

//Default-Text für die Business-News Eingabeezeile.
var BTDefaultText = "Und was bieten Sie Ihren Kunden heute an?";
//bool das anzeigt, dass die Nachricht vom User eingegeben wurde, also kein Defaulttext ist.
var UserEnteredMessage = false;

(function()
{
    if (typeof jQuery !== 'function')
    {
        setTimeout(arguments.callee, 100);
        return;
    }

    var WebServiceURL = "../Home/HomeDefault.aspx";
    var CookieContentEnc = null;

    jQuery(window).ready(function() {
        //Weil Editables so super sind, dass man classnames nicht ändern kann.
        jQuery("#BusinessTweetsEditing form.Editing #ObjectListItemContentObjectDescription .InputField").addClass("DefaultValue");

        jQuery("#BusinessTweetsEditing form.Editing #ObjectListItemContentObjectDescription .InputField, #BusinessNewsInputBox #BusinessNews").val(BTDefaultText).blur(function() {
            if (jQuery(this).val() == "") {
                jQuery(this).val(BTDefaultText).addClass("DefaultValue");
                UserEnteredMessage = false;
            }
            else {
                UserEnteredMessage = true;
            }
        });

        var blackdiv;

        if (ReadCookieBT("BTInfo") != null) {
            jQuery("#MainContent-Header .Login").css("display", "none");
            jQuery("#BusinessNewsInputBox, #MainContent-Header #DatenPflegeLink, #MainContent-Header #LogoutLink").fadeIn("slow");

            var NameValuePairs = ReadCookieBT("BTInfo").split("&");
            for (var i = 0; i < NameValuePairs.length; i++) {
                if (NameValuePairs[i].indexOf("Surname=") == 0) {
                    var Surname = NameValuePairs[i].substring(8, NameValuePairs[i].length).replace("+", " ");
                    if (Surname) {
                        if (Surname.length > 20) {
                            Surname = Surname.substring(0, 17) + "...";
                        }
                        jQuery("#MainContent-Header #BTWelcomeText").html(jQuery("#MainContent-Header #BTWelcomeText").html() + Surname).fadeIn("slow");
                    }
                }
                else
                    if (NameValuePairs[i].indexOf("S=") == 0) {
                    CookieContentEnc = NameValuePairs[i].substring(2, NameValuePairs[i].length);
                }
            }

            jQuery("#BusinessNewsInputBox button").click(function(e) {
                var Message = jQuery("#BusinessNewsInputBox #BusinessNews").val();
                if (UserEnteredMessage && Message.length > 0 && CookieContentEnc && CookieContentEnc.length > 0) {
                    var RequestParams = {};
                    RequestParams.msg = encodeURIComponent(Message);
                    RequestParams.S = CookieContentEnc;

                    $.ajax(
                    {
                        url: WebServiceURL,
                        type: 'POST',
                        data: RequestParams,
                        success: function(Result) {
                            alert("Aktualisierung Ihrer Business News erfolgreich durchgefüht!");
                            jQuery("#BusinessNewsInputBox #BusinessNews").val("Und was bieten Sie Ihren Kunden heute an?").addClass("DefaultValue");
                            jQuery("#BusinessNewsCurrInputLength").html(BusinessTwitterMaxInputLength);
                            if (Result != null && typeof Result === "object") {
                                return;
                            }
                        }
                    });
                }
                e.stopPropagation();
                return false;
            });

            jQuery("#BusinessNewsInputBox .DefaultValue, #BusinessTweetsEditing form.Editing #ObjectListItemContentObjectDescription .InputField").focus(function() {
                if (jQuery(this).hasClass("DefaultValue"))
                    jQuery(this).val("").removeClass("DefaultValue");
            });

            jQuery("#MainContent-Header #LogoutLink").click(function() {
                DeleteCookieBT("BTInfo");
            });
        }
        else {
            jQuery("#BusinessNews").removeClass("Active").addClass("Inactive").attr("readonly", "readonly");
            jQuery("#BusinessNewsInputBox").removeClass("BusinessNewsActive").addClass("BusinessNewsInActive");

            blackdiv = document.createElement('div');

            jQuery("#BusinessNewsInputBox button").click(function(e) {
                document.body.appendChild(blackdiv);
                jQuery(blackdiv).css('top', 0).css('left', 0).css('position', 'absolute').css('z-index', 102).width(jQuery(window).width()).height(jQuery(window).height()).css('background-color', '#333').css('opacity', 0.6);
                jQuery("#BusinessNewsLightBox").fadeIn(170);
                jQuery("#BusinessNewsLightBox").css('top', (jQuery(window).height() / 2) - (jQuery("#BusinessNewsLightBox").height() / 2)).css('left', (jQuery(window).width() / 2) - (jQuery("#BusinessNewsLightBox").width() / 2));
                var box = jQuery("#BusinessNewsLightBox")[0];
                box.parentNode.removeChild(box);
                document.body.appendChild(box);
                e.stopPropagation();
                return false;
            });
        }

        /* Business Lightbox */
        var blackdiv = document.createElement('div');
        jQuery(".BusinessNewsInActive input[name='ItemContentObjectDescription']").click(function() {
            // Hintergrund abdunkeln.
            document.body.appendChild(blackdiv);
            jQuery(blackdiv).css('top', 0).css('left', 0).css('position', 'absolute').css('z-index', 102).width(jQuery(window).width()).height(jQuery(window).height()).css('background-color', '#333').css('opacity', 0.6);
            jQuery("#BusinessNewsLightBox").fadeIn(170);
            jQuery("#BusinessNewsLightBox").css('top', (jQuery(window).height() / 2) - (jQuery("#BusinessNewsLightBox").height() / 2)).css('left', (jQuery(window).width() / 2) - (jQuery("#BusinessNewsLightBox").width() / 2));
            var box = jQuery("#BusinessNewsLightBox")[0];
            box.parentNode.removeChild(box);
            document.body.appendChild(box);
        });
        // Klick aufs "Kreuzchen" innerhalb der Lightbox
        jQuery("#BusinessNewsLightBox span").click(function() { jQuery("#BusinessNewsLightBox").fadeOut(0); blackdiv.parentNode.removeChild(blackdiv); });

        //Business-Twitter
        if (jQuery("#BusinessNews").length == 1 && jQuery("#BusinessNewsCurrInputLength").length == 1) {
            jQuery("#BusinessNewsCurrInputLength").html(BusinessTwitterMaxInputLength);

            var CounterFunc = function() {
                var newContent = jQuery("#BusinessNews").val();
                jQuery("#BusinessNewsCurrInputLength").html(BusinessTwitterMaxInputLength - newContent.length);
            };

            jQuery("#BusinessNews").attr("maxlength", BusinessTwitterMaxInputLength).keyup(CounterFunc).keydown(CounterFunc);
        }

        // Für die Datenpflege. Anzeige der restlichen Zeichen
        if (jQuery("#BusinessTweetsEditing form.Editing #ObjectListItemContentObjectDescription .InputField").length == 1 && jQuery("#BusinessNewsCurrInputLength").length == 1) {
            jQuery("#BusinessNewsCurrInputLength").html(BusinessTwitterMaxInputLength);

            var CounterFunc = function() {
                var newContent = jQuery("#BusinessTweetsEditing form.Editing #ObjectListItemContentObjectDescription .InputField").val();
                jQuery("#BusinessNewsCurrInputLength").html(BusinessTwitterMaxInputLength - newContent.length);
            };

            jQuery("#BusinessTweetsEditing form.Editing #ObjectListItemContentObjectDescription .InputField").attr("maxlength", BusinessTwitterMaxInputLength).keyup(CounterFunc).keydown(CounterFunc);
        }

        // Für die Datenpflege. Ein- bzw. Ausschalten der alten Tweets
        jQuery("#ToggleOldBusinessTweets a").click(function() {
            if (jQuery("#OldBusinessTweets").css("display") == "none") {
                jQuery("#OldBusinessTweets").css("display", "block");
                jQuery("#ToggleOldBusinessTweets a").html("&#9650 Ältere Nachrichten ausblenden");
            }
            else {
                jQuery("#OldBusinessTweets").css("display", "none");
                jQuery("#ToggleOldBusinessTweets a").html("&#9660 Ältere Nachrichten einblenden");
            }
            return false;
        });

        //Ein/Ausblenden des Infotextes zum '?'
        //Wird komplett (inkl. Text) in JS erstellt, da es sonst immer
        //in jedem Info.aspx-Aufruf mitkommen würde
        var QuestionMark = jQuery("#Questionmark");
        // Position des ? feststellen
        var QuestionMarkPosition = QuestionMark.offset();

        if (QuestionMark.length == 1) {
            //Wunderschön
            var Content = "<div class=\"QMInfoBox\">";
            Content += "<div class=\"Closebutton\">X</div>";
            Content += "<div style=\"position: relative; float: left; z-index: 2; width: 360px;\">";
            Content += "<divstyle=\"margin: 0px 0px 3px 0px;\"><strong>Was steckt hinter der neuen Funktion \"Business News & Lokale Angebote\"?</strong>";
            Content += "<div>Ganz einfach: YellowMap vereint die bekannte Twitter Technologie mit der Newszeile eines WerbeEintrags";
            Content += "– mit steigendem Mehrwert für den Kunden. Warum? Sie können Meldungen zu tagesaktuellen Geschehnissen und Angeboten jetzt schnell und einfach veröffentlichen.";
            Content += " YellowMap steigert die Reichweite für Sie.</div>";
            Content += "<div style=\"margin: 3px 0px;\"><strong>Wie funktioniert Business News?</strong></div>";
            Content += "Loggen Sie sich mit Ihren Zugangsdaten ein. Direkt auf der Startseite können Sie im Eingabefeld im Kopfbereich Ihre Meldung eingeben.";
            Content += " Klicken Sie auf \"Senden\" und die Meldung wird in Ihrem Eintrag sowie im Twitter Account von Business News veröffentlicht.";
            Content += "<div style=\"margin: 3px 0px;\"><strong>Hinweis:</strong></div>";
            Content += "Um diese Funktion nutzen zu können, benötigen Sie keinen eigenen Twitter Account.</div>";
            Content += "</div>";
            Content += "<div style=\"clear: both;\"></div>";
            Content += "</div>";

            // Box ans Ende der Seite stellen damit Sie nicht von anderen Elementen überlagert wird.
            jQuery("body").append(Content);

            /*QuestionMark.click(function(e) {
                if (jQuery(".QMInfoBox:visible").length == 0) {
                    jQuery(".QMInfoBox").show(300);
                    jQuery(".QMInfoBox").attr("style", "left: " + QuestionMarkPosition.left + "px; top: " + (QuestionMarkPosition.top + 17) + "px"); //left: QuestionMarkPosition.left });
                }
                e.cancelBubble = true;
                e.stopPropagation();
                return false;
            });*/

            jQuery(".Closebutton").click(function() {
                jQuery(".QMInfoBox").hide(300);
            });
        }
    });
})();
