function GetE(id) {
    return document.getElementById(id);
}

/**
 * Für Ajax
 */
function statusReady()
{
    try {
        document.getElementById("loaderContainer").style.display = "none";
    }
    catch (e)	{}

}
function statusLoading()
{
    try {
        document.getElementById("loaderContainer").style.display = "";
    }
    catch (e)	{}
}

/**
 * Für Textfeld in Bausteinen
 */
function insert(aTag, eTag, formname, elementname) {
    var input = document.forms[formname].elements['CMS_VAR['+elementname+']'];
    input.focus();

    /* für Internet Explorer */
    if(typeof document.selection != 'undefined') {
        /* Einfügen des Formatierungscodes */
        var range = document.selection.createRange();
        var insText = range.text;
        range.text = aTag + insText + eTag;

        /* Anpassen der Cursorposition */
        range = document.selection.createRange();

        if (insText.length == 0) {
            range.move('character', -eTag.length);
        }
        else {
            range.moveStart('character', aTag.length + insText.length + eTag.length);
        }

        range.select();
    }

    /* für neuere auf Gecko basierende Browser */
    else if(typeof input.selectionStart != 'undefined') {
        /* Einfügen des Formatierungscodes */
        var start = input.selectionStart;
        var end = input.selectionEnd;
        var insText = input.value.substring(start, end);
        input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);

        /* Anpassen der Cursorposition */
        var pos;

        if (insText.length == 0) {
            pos = start + aTag.length;
        }
        else {
            pos = start + aTag.length + insText.length + eTag.length;
        }

        input.selectionStart = pos;
        input.selectionEnd = pos;
    }

    /* für die übrigen Browser */
    else {
        /* Abfrage der Einfügeposition */
        var pos;
        var re = new RegExp('^[0-9]{0,3}$');

        while(!re.test(pos)) {
            pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
        }

        if(pos > input.value.length) {
            pos = input.value.length;
        }

        /* Einfügen des Formatierungscodes */
        var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
        input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
    }
}






/**
 * Allgemeine Ajax-Abrage
 * @param link - Link der Abzufragenden Seite mittels GET
 * @param id - wenn null, dann wird das Ergebnis aus Rückgabewert der
 *             Funktion ausgegeben, sonst an document.getElementById(id).innerHTML
 * @param string - Wenn id null, dann Rückgabe, sonst bool
 */
var lastResult = "";
var lastId = "";

function getByAjax(link, id, alternativeReturn)
{
    //alert(link);

    statusLoading();
    // globale Instanz von XMLHttpRequest
    var xmlHttp = false;

    // XMLHttpRequest-Instanz erstellen
    // ... für Internet Explorer
    try {
        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            xmlHttp  = false;
        }
    }
    // ... für Mozilla, Opera und Safari
    if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
        xmlHttp = new XMLHttpRequest();
    }


    if (xmlHttp)
    {
        xmlHttp.open('GET', link, true);

        xmlHttp.onreadystatechange = function ()
        {
            if (xmlHttp.readyState == 4)
            {
                // Loginzeit verstrichen, dann enthält responseText die gesamte Loginseite
                // --> also weiterleiten auf sich selbst, um ausgeloggt zu werden
                var re = /^\s*<!DOCTYPE/gi;
                if(re.exec(xmlHttp.responseText)) {
                    window.location.href='content.php';
                    return;
                }

                if(alternativeReturn)
                {
                    lastResult = xmlHttp.responseText;
                    lastId = id;
                    eval(alternativeReturn + "();");
                    lastResult = "";
                    lastId = "";
                }
                else
                {
                    document.getElementById(id).innerHTML = xmlHttp.responseText;
                    activeTree = false;
                }
                statusReady();
            }
        };
    }

    xmlHttp.send(null);

}



/**
 * Für Verlinkungsblock
 * diffInput - Werden mehrere Link Bausteine verwendet muss teilweise nicht das aktuelle serializedArr an den Request übergeben werden, sondern eine vorherige Version.
 */
function loadLinkContent(lang, id, show, param, diffInput)
{
    if(typeof diffInput == 'undefined' || diffInput == null)
        diffInput = serializedArr;

    // globale Instanz von XMLHttpRequest
    var xmlHttp = false;

    // XMLHttpRequest-Instanz erstellen
    // ... für Internet Explorer
    try {
        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            xmlHttp  = false;
        }
    }
    // ... für Mozilla, Opera und Safari
    if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
        xmlHttp = new XMLHttpRequest();
    }


    if (xmlHttp)
    {
        if(window.linkerBase)
            var lb = window.linkerBase;
        else
            var lb = '';

        xmlHttp.open('GET', lb+'linker.php?lang='+lang+'&input='+diffInput+'&show='+show+'&param='+param, true);
        xmlHttp.onreadystatechange = function ()
        {
            if (xmlHttp.readyState == 4)
            {
                var tempText = xmlHttp.responseText;
                // Try... catch block verhindert, dass beim IE ein Fehler angezeigt wird.
                try {
                    document.getElementById(id).innerHTML=tempText;
                } catch(e) {}

                if(show == 8)
                    LoadAnchorNamesAndIds();
            }
        };
        xmlHttp.send(null);
    }
}


/**
 * Für Verlinkungsblock
 */
function loadLinkBox(myValue, newPJs, serializedArr)
{
    if(typeof newPJs == 'undefined' || newPJs == null)
        newPJs = pJs;

    loadLinkContent(con_lang,'linkContent'+newPJs+'_1',myValue,0, serializedArr);
    loadLinkContent(con_lang,'linkContent'+newPJs+'_2',0,0, serializedArr);

    if(myValue == 1 || myValue == 2)
    {
        loadLinkContent(con_lang,'linkContent'+newPJs+'_3',200,0);
    }
    else
    {
        loadLinkContent(con_lang,'linkContent'+newPJs+'_3',0,0);
    }
}


/**
 * Für Verlinkungsblock
 */
function OnUrlChange(pJs)
{
    var textbox = document.getElementById(pJs + '_link');
    var protokollbox = document.getElementById(pJs + '_protokoll');

    var oRegex = new Object() ;
    oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;
    oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;


    var sUrl = textbox.value ;
    var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;

    if ( sProtocol )
    {
        sUrl = sUrl.substr( sProtocol[0].length ) ;
        textbox.value = sUrl ;
        protokollbox.value = sProtocol[0].toLowerCase() ;
    }
    else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )
    {
        protokollbox.value = '' ;
    }
}


/**
 * Für Verlinkungsblock
 */
function showHidePopUpData(myValue,boxName)
{
    if(myValue == 2)
        document.getElementById(boxName).style.display='block';
    else
        document.getElementById(boxName).style.display='none';
}








/**
 * Findet Verwendung beim "PreSave"
 */
function show_that(jname,jpos,jmark,jmax)
{
    //document.write("Name: "+jname+" POS: "+jpos+" Mark: "+jmark+" MAX: "+jmax);
    for(i=1;i<=jmax;i++)
    {
        document.getElementById(jname+"_"+jpos+"_"+i).style.display='none';
    }
    document.getElementById(jname+"_"+jpos+"_"+jmark).style.display='';
}






/**
 * Details in Baustein
 */
function show_more_settings (id)
{
    document.getElementById('hiddn_'+id).style.display='';
    document.getElementById('c_lnk_'+id).style.display='';
    document.getElementById('o_lnk_'+id).style.display='none';
}
function show_less_settings (id)
{
    document.getElementById('hiddn_'+id).style.display='none';
    document.getElementById('c_lnk_'+id).style.display='none';
    document.getElementById('o_lnk_'+id).style.display='';
}






/**
 * Hauptmenue Backend
 */
function menue(id, anz)
{
    for(i=1;i<=anz;i++)
    {
        if(document.getElementById('buta'+i))
        {
            document.getElementById('buta'+i).style.display='none';
            document.getElementById('buti'+i).style.display='';
            document.getElementById('men'+i).style.display='none';
        }
    }

    document.getElementById('buti'+id).style.display='none';
    document.getElementById('buta'+id).style.display='';
    document.getElementById('men'+id).style.display='';
}

function execCommand (command) {
    if (document.execCommand) {
        if (a.P.contains(document.selection.createRange().parentElement()))
            document.execCommand(command);
    }
}






/**
 * Für den Mouseovereffekt an den Tabellen im Backend
 */
function changecolor(tablerowid, reset, restore_color)
{
    theCells = document.getElementById(tablerowid).getElementsByTagName('td');
    rowCellsCnt = theCells.length;

    for (c = 0; c < rowCellsCnt; c++)
    {
        // Mouseover
        if (reset == false)
        {
            theCells[c].style.backgroundColor = '#CBE5B9';
        }

        // Mouseout
        else
        {
            if(restore_color != "")
            {
                theCells[c].style.backgroundColor = restore_color;
            }
            else
            {
                if (theCells[c].className == "ct_dark")
                {
                    theCells[c].style.backgroundColor = '#B9DCFC';
                }
                else
                {
                    theCells[c].style.backgroundColor = '#DAECFE';
                }
            }

        }
    }
}



/**
 * Setzt alle CSS-Klassen der Elemente eines bestimmten >type< unterhalb
 * eines Elementes >parentId< auf >defaultClass<. Das element mit der
 * >elementId< wird jedoch auf >elementClass< gesetzt.
 * NUTZEN:
 * Z.B. Hovereffekt. Alle Elemente sollen wieder auf die Standardklasse
 * gesetzt werden, die den Button unsichtbar erscheinen lassen, ein be-
 * stimmtes jedoch auf die markante Klasse, um es sichtbar werden zu
 * lassen.
 * (Wird z.B. in ArticleProperties eingesetzt)
 */
function classChanger(type, parentId, elementId, defaultClass, elementClass, langFlagSupport) {
    var parentE = document.getElementById(parentId);
    var selfE = document.getElementById(elementId);
    var elements = parentE.getElementsByTagName(type);
    for (var i=0;i<elements.length;i++){
        if(in_array(elements[i],parentE.childNodes)) {
            if(elements[i] == selfE) {
                elements[i].className = elementClass;
            } else {
                elements[i].className = defaultClass;
            }
        }
    }

    if(langFlagSupport) {
        var Ausdruck = /.*?([0-9]+)$/;
        Ausdruck.exec(elementId);
        var target = document.getElementById(langFlagSupport + RegExp.$1);

        var specialStyle = 'languageSwitcherActive';
        var normalStyle  = 'languageSwitcher';

        var links = target.parentNode.getElementsByTagName('a');
        for (i=0;i<links.length;i++) {
            links[i].className = normalStyle;
        }
        target.className = specialStyle;
    }
}


function in_array(item,arr) {
    for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
    return false;
}









/**
 * Standard-MM-Funktionen
 */
function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments;
    document.MM_sr=new Array;
    for(i=0;i<(a.length-2);i+=3)
        if ((x=MM_findObj(a[i]))!=null){
            document.MM_sr[j++]=x;
            if(!x.oSrc) x.oSrc=x.src;
            x.src=a[i+2];
        }
}
function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr;
    for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d=document;
    if(d.images){
        if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
        for(i=0; i<a.length; i++)
            if (a[i].indexOf("#")!=0){
                d.MM_p[j]=new Image;
                d.MM_p[j++].src=a[i];
            }
        }
}

function MM_findObj(n, d) { //v4.0
    var p,i,x;
    if(!d) d=document;
    if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document;
        n=n.substring(0,p);
    }
    if(!(x=d[n])&&d.all) x=d.all[n];
    for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && document.getElementById) x=document.getElementById(n);
    return x;
}

function tmt_findObj(n){
    var x,t;
    if((n.indexOf("?"))>0&&parent.frames.length){
        t=n.split("?");
        x=eval("parent.frames['"+t[1]+"'].document.getElementById('"+t[0]+"')");
    }else{
        x=document.getElementById(n)
        }
        return x;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) {
    window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) {
        v=args[i+2];
        if (obj.style) {
            obj=obj.style;
            v=(v=='show')?'visible':(v=='hide')?'hidden':v;
        }
        obj.visibility=v;
    }
}





/**
 * ********************************
 * Funktionen der KategorieListe
 */


/**
 * RESPONSE - Sichtbarkeit
 */
function toggleVisibility()
{
    result = lastResult;
    picArr = lastId.getElementsByTagName('img');

    if(result == 1)	{
        picArr[0].src = 'images/admin/minibut_str_xauge.gif';
    }
    else if(result == 0)	{
        picArr[0].src = 'images/admin/minibut_str_auge.gif';
    }
}

/**
 * RESPONSE - Geschützter Bereich
 */
function toggleProtection()
{
    result = lastResult;
    picArr = lastId.getElementsByTagName('img');

    if(result == 1)	{
        picArr[0].src = 'images/admin/minibut_str_schloss.gif';
    }
    else if(result == 0)	{
        picArr[0].src = 'images/admin/minibut_str_xschloss.gif';
    }
}

/**
 * RESPONSE und RELOAD - Hochschieben
 */
function moveup()
{
    getByAjax(lastResult, lastId);
}

/**
 * RESPONSE und RELOAD - Runterschieben
 */
function movedown()
{
    getByAjax(lastResult, lastId);
}

/**
 * RESPONSE und RELOAD - Runterschieben
 */
function farMoving()
{
    getByAjax(lastResult, lastId);
}

/**
 * RESPONSE und RELOAD - Löschen
 */
function deleteCat()
{
    if(lastResult == "1")
        alert('Diese Kategorie kann nicht gelöscht werden, weil Unterkategorien vorhanden sind!');
    else if(lastResult == "2")
        alert('Diese Kategorie kann nicht gelöscht werden, weil Artikel enthalten sind!');
    else
        getByAjax(lastResult, lastId);
}


/*
	var Arr=new Array();
	var tab=document.getElementById("Id_der_Tabelle");
	var tbdy=tab.getElementsByTagName("tbody")[0];
	var nzeilen=tbdy.getElementsByTagName("tr").length;
	var nspalten=tbdy.getElementsByTagName("tr")[0].getElementsByTagName("td").length;

	// hin
	for(var z=0;z<nzeilen;z++)
	{
		var zeile=tbdy.getElementsByTagName("tr")[z].getElementsByTagName("td");
		Arr[z]=new Array(nspalten);

		for(var s=0;s<nspalten;s++)
			Arr[z][s]=zeile[s].firstChild.nodeValue;
	}

	// und zurück:
	for(var z=0;z<nzeilen;z++)
	{
		var zeile=tbdy.getElementsByTagName("tr")[z].getElementsByTagName("td");
		for(var s=0;s<nspalten;s++)
			zeile[s].firstChild.nodeValue=Arr[z][s];
	}
	*/






/* Directedit */
function setElements()
{
    if (document.getElementById('directedit_settings'))
    {
        obj        = document.getElementById('directedit_settings');
        objOverlay = document.getElementById('directedit_overlay');

        var newWidth  = (document.documentElement.clientWidth / 2) - 290;
        var newHeight = (((document.documentElement.clientHeight - 51) / 2) - 310) + 51;

        if (newWidth < 0)
        {
            newWidth = 0;
        }

        if (newHeight < 0)
        {
            newHeight = 0;
        }

        obj.style.top = newHeight+'px';
        obj.style.left = newWidth+'px';

        objOverlay.style.position = 'absolute';
        objOverlay.style.zIndex = '998';
        objOverlay.style.left = '0';
        objOverlay.style.top = '51px';
        objOverlay.style.width = document.documentElement.clientWidth+"px";
        objOverlay.style.height = document.documentElement.clientHeight - 51+"px";
    }
}

function initSettings()
{
    if (document.getElementById('directedit_settings'))
    {
        var obj        = document.getElementById('directedit_settings');
        var objOverlay = document.getElementById('directedit_overlay');

        setElements(obj, objOverlay);

        if (obj.style.display == 'none' || obj.style.display == '')
        {
            obj.style.display = 'block';
            objOverlay.style.display = 'block';
        }
        else
        {
            obj.style.display = 'none';
            objOverlay.style.display = 'none';
        }
    }
}

function uploader() {
    if (document.getElementById('upload_form')) {
        document.getElementById('upload_form').style.display = 'none';
        document.getElementById('loader').style.display = 'block';
    }
    return;
}

function getFlash(filename, filename_bild, width, height, transparent, qualitaet)
{
    document.write('<object type="application/x-shockwave-flash" data="'+filename+'" width="'+width+'" height="'+height+'">');

    if (transparent = '1')
    {
        document.write('<param name="wmode" value="transparent">');
    } else {
        document.write('<param name="wmode" value="opaque">');
    }

    document.write('<param name="movie" value="'+filename+'">');
    document.write('<param name="quality" value="'+qualitaet+'">');
    document.write('<img src="'+filename_bild+'" width="'+width+'" height="'+height+'" border="0">');
    document.write('</object>');
}

function ShowSettingsByCatType(value) {
    if (value == '1') {
        document.getElementById('eins').style.display='block';
        document.getElementById('zwei').style.display='none';
        document.getElementById('drei').style.display='none';
        document.getElementById('vier').style.display='none';
    } else if (value == '2') {
        document.getElementById('eins').style.display='none';
        document.getElementById('zwei').style.display='block';
        document.getElementById('drei').style.display='none';
        document.getElementById('vier').style.display='none';
    } else if (value == '3') {
        document.getElementById('eins').style.display='none';
        document.getElementById('zwei').style.display='none';
        document.getElementById('drei').style.display='block';
        document.getElementById('vier').style.display='none';
    } else if (value == '4') {
        document.getElementById('eins').style.display='none';
        document.getElementById('zwei').style.display='none';
        document.getElementById('drei').style.display='none';
        document.getElementById('vier').style.display='block';
    }
}

function popup(url, name, width, height) {
    if (!name) {
        name = 'popup';
    }
    window.open(url, name, 'width='+width+', height='+height+', menubar=no, status=no, toolbar=no, scrollbars=no, location=no');
}

function languageframe(lang, attributes, file)
{
    document.getElementById('frame').src = file + '?con_lang=' + lang + '&' + attributes;
}


function changeLanguage(con_lang)
{
    var elements = document.getElementsByName('multilang');
    var count = elements.length;

    for (i=0; i<count; i++) {
        if (elements[i].id == con_lang) {
            elements[i].style.display = 'block';
            document.getElementById('flag_'+elements[i].id).style.borderBottom = '2px #f00 solid';
        } else {
            elements[i].style.display = 'none';
            document.getElementById('flag_'+elements[i].id).style.borderBottom = 'none';
        }
    }
}

window.onresize = setElements;



//Funktion für die Auswahl eines Ankers
var bHasAnchors ;

function LoadAnchorNamesAndIds()
{
    var FCKTools = oEditor.FCKTools ;
    // Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon
    // to edit them. So, we must look for that images now.
    var aAnchors = new Array() ;
    var i ;
    var oImages = oEditor.FCK.EditorDocument.getElementsByTagName( 'IMG' ) ;
    for( i = 0 ; i < oImages.length ; i++ )
    {
        if ( oImages[i].getAttribute('_fckanchor') )
            aAnchors[ aAnchors.length ] = oEditor.FCK.GetRealElement( oImages[i] ) ;
    }

    // Add also real anchors
    var oLinks = oEditor.FCK.EditorDocument.getElementsByTagName( 'A' ) ;
    for( i = 0 ; i < oLinks.length ; i++ )
    {
        if ( oLinks[i].id && ( oLinks[i].id.length > 0 ) )
            aAnchors[ aAnchors.length ] = oLinks[i] ;
    }

    //bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ;
    bHasAnchors = ( aAnchors.length > 0) ;

    for ( i = 0 ; i < aAnchors.length ; i++ )
    {
        var sName = aAnchors[i].id ;
        if ( sName && sName.length > 0 )
            FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;
    }

    var selList = GetE('cmbAnchorName');
    var currAnchor = GetE('cmbCurrentAnchorName');

    if(currAnchor != null) {
        for(var i=0; i<= selList.length-1; i++)
        {
            if(selList.options[i].text == currAnchor.value) {
                selList.selectedIndex = i;
                break;
            }
        }
    }

    ShowE( 'divSelAnchor'	, bHasAnchors ) ;
    ShowE( 'divNoAnchor'	, !bHasAnchors ) ;
}

function show_addresses(){
    var i,ret = false;
    // Ausblenden
    for(i=0;i<=10;i++){
        if(document.getElementById('hide_addresses_'+i) && document.getElementById('hide_addresses_'+i).style.display == ''){
            document.getElementById('hide_addresses_'+i).style.display = 'none';
            ret = true;
        }
    }
    if(ret)
        return
    // Einblenden
    for(i=0;i<=10;i++){
        if(document.getElementById('hide_addresses_'+i)){
            document.getElementById('hide_addresses_'+i).style.display = '';
        }
    }
}

/**
 * prüft ob Flash Aktiviert ist
 */
function checkFlash()
{
    if(typeof(navigator.plugins["Shockwave Flash"]) == "object") {
        return true;
    }
    else if(typeof(ActiveXObject) == "function") {
        for(var i = 8; i < 15; i ++) {
            try {
                if(typeof(new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)) == "object"){
                    return true;
                }
            }catch(error){}
        }
    }
    return false;
}

function openImageEditPopup(fileName, folderName)
{
    var url = 'media_edit_image.php?file=' + fileName + '&folder=' + folderName;
    var editPopup = window.open(url, 'editImagePopup', 'resizable=yes,scrollbars=yes,width=990,height=780');

    maximizeWindow(editPopup);

    try {
        editPopup.focus();
    } catch(e) {}

    return false;
}

function maximizeWindow(windowElement) {
    try {
        windowElement.moveTo(0, 0);
    } catch(e) {
        return;
    }

    if (document.all) {
        window.resizeTo(screen.availWidth,screen.availHeight);
    } else if (windowElement.document.layers || windowElement.document.getElementById) {
        if (windowElement.outerHeight < screen.availHeight || windowElement.outerWidth < screen.availWidth) {
            windowElement.outerHeight = screen.availHeight;
            windowElement.outerWidth = screen.availWidth;
        }
    }
}

function addPrettyPhoto( obj, srcTitle )
{
    srcTitle = (srcTitle = srcTitle || 'Quelle').indexOf(':') != srcTitle.length - 1 ? srcTitle+': ' : srcTitle;

    var $obj = $j(obj),
        $img = $obj.find('img'),
        aHref = $obj.attr('href'),
        imgTitle = $img.attr('alt'),
        imgDesc = $img.attr('title');

    longDesc = imgDesc.split("\n");
    if( longDesc.length > 1 )
    {
        imgDesc = '<strong>' + longDesc[0] + '</strong><br/>' + longDesc[1];
        if( longDesc.length > 2 )
            imgDesc += '<span class="author">' + srcTitle + longDesc[2] + '</span>';
    }

    $j.prettyPhoto.open( aHref , imgTitle , imgDesc );

    return;
}

function addPrettyPhotoImg( img )
{
    srcTitle = 'Quelle: ';

    var $img = $j(img),
        aHref = $img.attr('src').replace(/\/\.\d\//,'/.2/'),
        imgTitle = $img.attr('alt'),
        imgDesc = $img.attr('title');

    longDesc = imgDesc.split("\n");
    if( longDesc.length > 1 )
    {
        imgDesc = '<strong>' + longDesc[0] + '</strong><br/>' + longDesc[1];
        if( longDesc.length > 2 )
            imgDesc += '<span class="author">' + srcTitle + longDesc[2] + '</span>';
    }

    $j.prettyPhoto.open( aHref , imgTitle , imgDesc );

    return;
}

function loadEvents(date,layerid)
{
    $j.ajax({
        type: "POST",
        url: "ajax.php",
        data: "action=listEvent&date="+date,
        success: function(html) {
            $j('#'+layerid).html(html).fadeIn('slow');
        }
    });
}

/**
 * Change the Google Maps View of the map
 * @param google.maps.Map map
 * @param google.maps.Marker[] markers
 * @return void
 */
function gmapChangeView( map, markers ) {
    if(markers.length == 1) {
        var curBnd = markers[0].getPosition();
        var center = new google.maps.LatLng(curBnd.lat(), curBnd.lng());
        map.setCenter(center);
    }
    else {
        var bounds = gmapFindBounds(markers);
        southwest = new google.maps.LatLng(bounds["South"], bounds["West"]);
        northeast = new google.maps.LatLng(bounds["North"], bounds["East"]);

        var view = new google.maps.LatLngBounds(southwest, northeast);
        map.fitBounds(view);
    }
}

/**
 * Find the Bounds of the given Markers
 * @param google.maps.Marker[] markers
 * @return Array{"South","West","North","East"}
 */
function gmapFindBounds(markers) {

    var bounds = {
        West: 175.0000000,
        East: -175.0000000,
        North: -85.0000000,
        South: 85.0000000
    }

    for(i = 0; i < markers.length; i++) {
        curBnd = markers[i].getPosition();
        if(curBnd.lng() < bounds["West"]) {
            bounds["West"] = curBnd.lng();
        }

        if(curBnd.lng() > bounds["East"]) {
            bounds["East"] = curBnd.lng();
        }

        if(curBnd.lat() < bounds["South"]) {
            bounds["South"] = curBnd.lat();
        }

        if(curBnd.lat() > bounds["North"]) {
            bounds["North"] = curBnd.lat();
        }
    }
    return bounds;
}

function bindMapToggle(mapId, googleCoords, adrInfo) {
    var $mapContainer = $j('#map_canvas_' + mapId + '_container');

    $j('.map-toggle-' + mapId).toggle(function() {
        $mapContainer.css('visibility', 'visible').animate({
            'height': '306px'
        });
    }, function() {
        $mapContainer.animate({
            'height': '0'
        }, function() {
            $j(this).css('visibility', 'hidden')
        });
    });

    var latlng = new google.maps.LatLng(googleCoords[0], googleCoords[1]);

    var myOptions = {
        zoom: 15,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById('map_canvas_' + mapId), myOptions);

    // Inhalt des Info Fenster zusammensetzen...
    var infCont = '';
    if(adrInfo.name != '') {
        infCont += '<strong>' + adrInfo.name + '</strong><br/><br/>';
    }

    if(adrInfo.street != '') {
        infCont += adrInfo.street + '<br/>';
    }

    infCont += adrInfo.postal + ' ' + adrInfo.city + '<br/>';

    if(adrInfo.contact != '') {
        infCont += 'Ansprechpartner: ' + adrInfo.contact + '<br/>';
    }

    if(adrInfo.phone != '') {
        infCont += 'Telefon: ' + adrInfo.phone + '<br/>';
    }

    if(adrInfo.email != '') {
        infCont += 'E-Mail: <a href="mailto:' + adrInfo.email + '">' + adrInfo.email + '</a><br/>';
    }

    if(adrInfo.homepage != '') {
        infCont += 'Homepage: <a href="' + adrInfo.homepage + '">' + adrInfo.homepage + '</a>';
    }

    var infowindow = new google.maps.InfoWindow({
        content: infCont
    });

    var marker = new google.maps.Marker({
        position: latlng,
        map: map
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
    });
}

function toggleChkBoxs( classname )
{
    $j('.'+classname).each(function(){
        if( $j(this).data('checked') != true )
        {
            $j(this).attr('checked','checked');
            $j(this).data('checked',true);
        }
        else
        {
            $j(this).attr('checked','');
            $j(this).data('checked',false);
        }
    });
}

function toggleDiv( obj , classname )
{
    $j('.'+classname).animate({
        opacity: 'toggle',
        height: 'toggle'
    },'fast', function(){
        //if( $j('.'+classname).css('display') == 'none' )
        //    $j(".toggle_lnk").html('Suche einblenden');
        //else
        //    $j(".toggle_lnk").html('Suche ausblenden');
    });
}

function setEndDate( newDate )
{
    $j(".start_date").datepicker( "setDate" , new Date() );
    $j(".end_date").datepicker( "setDate" , newDate );
}
