// Funktion GeI als Abkuerzung fuer getElementById
function GeI(i) {return (x=document.getElementById(i))?x:null;}
// Globale Variable speichert die aktuelle Slide (prefix)
var aktslide=-1;
// user status object
if (typeof userStatus == 'undefined') {
   userStatus = new Object();
   userStatus.loggedIn = false;
}  
// info for tooltip in topnavi layer handling
var langToolTipVisible = false;
if (typeof month == 'undefined') {
  month = new Array( 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');
  smonth = new Array( 'Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez');
}
var mondays = new Array( 31,28,31,30,31,30,31,31,30,31,30,31 );
var monback = new Array();
monback[smonth[0]] = 0; monback[smonth[1]] = 1; monback[smonth[2]] = 2; monback[smonth[3]] = 3; monback[smonth[4]] = 4; monback[smonth[5]] = 5;
monback[smonth[6]] = 6; monback[smonth[7]] = 7; monback[smonth[8]] = 8; monback[smonth[9]] = 9; monback[smonth[10]] = 10; monback[smonth[11]] = 11;
var aktd=0,aktm=0,akty=0;
var curd=0,curm=0,cury=0;
// events in calendar
var rwekEvents = new Array();
var rwekEventTry = new Array();
var eventListInitTimer;
var eventListInitMaxTries = 30;
var eventListInitWait = 100;
// url param access
$.extend({
  getUrlParams: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlParam: function(name){
    return $.getUrlParams()[name];
  }
});
/*
var EventNum = new Array();
var EventArr = new Array();
*/
$(document).ready(function(){
    // Flash Animation
    //     flashembed('StartAni',{src:'common/flash/startpage_fullflash.swf',wmode:'opaque'});
    initForms();
    initLoginForm();
   
    // Kalender initialisieren
    kalinit();
   
    // Carousel initialisieren
    try {
      jQuery('#teaserSushi').jcarousel({
          start:2,
          scroll:4,
          animation: 'slow'
      });
    } catch (err) { /* ignore */ }
    // alle Slides displayen
    $('.MainSlide').show();
    // jScrollPane initialisieren
    try {
      $('.colscroll').jScrollPane({showArrows:true,arrowSize:7,dragMinHeight:55,dragMaxHeight:55,animateStep:15,scrollbarWidth:7,scrollbarMargin:7});
    } catch (err) { /* ignore */ }
    // alle slides verstecken
    try {
    $("#imageJukeboxNaviContainer #jukeboxNaviContainer img").reflect({height: 0.5,opacity: 0.15});
    $(".jukeboxNaviimage").each(function(i,e){
      if(minJukeboxNaviimage == -1){
        minJukeboxNaviimage = Number($(e).attr("arrrayCounter"));
      }
      $("div#jukeboxNaviimage" + $(e).attr("arrrayCounter")).css("zIndex", 1000-i);
      maxJukeboxNaviimage = Number($(e).attr("arrrayCounter"));
    })
	} catch(err) {
	}
    $('.MainSlide').hide();
    // Social Bookmarks
    $('#socBookLyr').hide();
    $('#socBookLink').hover( function(event) { $('#socBookLyr').show(); GeI('socBookLink').className='socBookOn'; }, function(event) { $('#socBookLyr').hide();GeI('socBookLink').className='';});
    $('#socBookLyr').hover( function(event) { $('#socBookLyr').show(); GeI('socBookLink').className='socBookOn'; }, function(event) { $('#socBookLyr').hide(); GeI('socBookLink').className='';});
    
    $('#socBookLyr_en').hide();
    $('#socBookLink_en').hover( function(event) { $('#socBookLyr_en').show(); GeI('socBookLink_en').className='socBookOn'; }, function(event) { $('#socBookLyr_en').hide();GeI('socBookLink_en').className='';});
    $('#socBookLyr_en').hover( function(event) { $('#socBookLyr_en').show(); GeI('socBookLink_en').className='socBookOn'; }, function(event) { $('#socBookLyr_en').hide(); GeI('socBookLink_en').className='';});
    // Fuer die Buttons im Hauptmenu den hover definieren
    $('.butt').hover(function(event) {    
        if(this.className.match(/aktbutt/)) return;
        // Zunaechst die id speichern (Zeichen 1-4 variabel)
        var i=this.id.substr(0,4);
        // Neue Klasse fuer aktiven Button
        this.className='butt abutt';
        // aktslide == -1 falls Slide geschlossen, also oeffnen
        if (aktslide==-1) {
            $('#'+i+'Slide').slideDown('fast');
        }
        // Falls Slide offen, war anderer Menupunkt aktiv, also den alten deaktivieren und slides faden
        else {
            GeI(aktslide+'Butt').className='butt';
            $('#'+i+'Slide').fadeIn('fast');
            $('#'+aktslide+'Slide').fadeOut('fast');
        }
        // diese id als aktive speichern
        aktslide=i;
        if (aktslide == 'kale') {
            $('.kalcontent').jScrollPane({showArrows:true,arrowSize:7,dragMinHeight:55,dragMaxHeight:55,animateStep:15,scrollbarWidth:7,scrollbarMargin:7});       
        }
        
    });
    // Event fuer das Verlassen der gesamten Navi incl. offener Slide, slide schliessen und aktiven Menupunkt deaktivieren
    $('#MainNavi').hover(
             0,
             
             function(event) {
                 if (!langToolTipVisible) {
                     $('#'+aktslide+'Slide').slideUp('fast');
                     if (x=GeI(aktslide+'Butt'))x.className='butt';
                     aktslide=-1;
                 }
                 
             });
    /*
    // Suche
    $('#suchOpt').hide();
    $('#suchBody').hide();
    $('#suchInput').focus(function(event){
        $('#suchOpt').slideDown('fast');
    });
    $('#suchPfeil').click(function(event){
    AjaxSuche( 'suchergebnis.html', '#suchform' );
    $('#suchOpt').slideDown('fast');
    $('#suchOpt').queue(function(){
        $('#suchBody').slideDown('normal');
        $(this).dequeue();
    });
    });
    $('#suchArrL').click(function(event){
        var prev=$('#suchBodyI input:hidden[name="prev"]').val();
        if (prev) AjaxSuche(prev,'#suchform');
    });
    $('#suchArrR').click(function(event){
        var prev=$('#suchBodyI input:hidden[name="next"]').val();
        if (prev) AjaxSuche(prev,'#suchform');
    });
    $('#suchClose,#suclo').click(function(event){
        $('#suchBody').slideUp('normal');
        $('#suchBody').queue(function(){
            $('#suchOpt').slideUp('fast');
            $(this).dequeue();
        });
    });
    */
    initToolTips();
    // googlemaps initialisieren
    if (GeI('colOrte')) {
        loadGoogleMapApi();
    }
   
	
	//Examples of how to assign the ColorBox event to elements
	try {
	 $(".lightbox").colorbox({transition:"fade"});
	} catch(err) {
	}
	
	var mediaLink = $.getUrlParam("mediaLink");
	if (mediaLink != null) {
    mediaLink = unescape(mediaLink);
    //$.fn.colorbox({href:mediaLink,open:true});
	}
  
  var lightImgFound = false;
    $("a.lightbox").each(function() {
      var lightImgUrl = $(this).attr('href');
      var lightImgTitle = $(this).attr('title');
      if (mediaLink == lightImgUrl) {
      lightImgFound = true;
        $.fn.colorbox({href:lightImgUrl,title:lightImgTitle,open:true});
      }
    });
    if (!lightImgFound && mediaLink != null) {
    $.fn.colorbox({href:mediaLink,open:true});
    }
    
    $("#tabPanel_2 #jukeboxContainer .jukeboximage a.lightbox").click(function () {
    if ($(this).attr('title') == null) {
      var lightBU = $(this).next().children("span:not(.copytxt)").text();
      $(this).attr('title', lightBU);
      }
    });
});
function AjaxSuche(url,formid) {
    jQuery.post(url,$(formid).serialize(), function(data){               
        $('#suchBodyI').html(data);
        var prev=$('#suchBodyI input:hidden[name="prev"]').val();
        var next=$('#suchBodyI input:hidden[name="next"]').val();
        if (!prev) $('#suchArrL').hide();
        else $('#suchArrL').show();
        if (!next) $('#suchArrR').hide();
        else $('#suchArrR').show();
    });
};
// small helper functions
function isDigit (c) {
  return ((c >= "0") && (c <= "9"))
}
function hasClassName(obj, cssClass){
  if (typeof obj != 'object') {
    obj = document.getElementById(obj);
  }
  if (obj) {
    return (obj.className.indexOf(cssClass) != -1);
  }
  return false;
}
function removeClassName(obj, cssClass){
  if (typeof obj != 'object') {
    obj = document.getElementById(obj);
  }
  if (obj && hasClassName(obj, cssClass)) {
    obj.className = obj.className.replace(new RegExp(cssClass), '');
  }
}
function addClassName(obj, cssClass){
  if (typeof obj != 'object') {
    obj = document.getElementById(obj);
  }
  if (obj && !hasClassName(obj, cssClass)) {
    obj.className += ' ' + cssClass;
  }
}
function setClassName(obj,nameOfClass) {
  if (typeof obj != 'object') {
    obj = document.getElementById(obj);
  }
  if (obj) {
    obj.className = nameOfClass;
  }
}
// forms: check layout and optional field handling
function setOptMarkers(ccode) {
      if (ccode == 'IE') {
        changeOptMarkers(true, true);
      } else if (ccode == 'CA' || ccode == 'US' || ccode == 'IN' ||
                 ccode == 'AU' || ccode == 'CN' || ccode == 'BR' ||
                 ccode == 'MX' || ccode == 'IT') {
        changeOptMarkers(false, false);
      } else {
        changeOptMarkers(true, false);
      }
}
function changeOptMarkers(regionOpt, postalCodeOpt) {
    changeOptMarker('optMarker_postalCode', postalCodeOpt);
    changeOptMarker('optMarker_region', regionOpt);
}
function changeOptMarker(elementId, optElem) {
    if (optElem) {
      setVisibility( elementId, null, 'inline')
    } else {
      setVisibility( elementId, null, 'none')
    }
}
function initForms() {
    // country dependencies
    var couElem = document.getElementById('country_input');
    if (couElem != null) {
        setOptMarkers(couElem.value);
    $('#country_input').change(function() {
      setOptMarkers(this.value);
    });
}
    // checkboxen
    $('.checkB').click(function() {
        this.className=this.className.match(/checked/)?'checkB':'checkB checked';
        var t=this.firstChild.nextSibling
        t.checked=t.checked?false:true;
    });
    // radio buttons
    $('.radioB').click(function() {
        var s=this.firstChild.nextSibling;
        var name = s.id;
        var idx = name.length;
        while(isDigit(name.charAt(idx-1))) idx--;
        var buttonNum = eval(name.substring(idx));
        name = name.substring(0, idx);
        for (var i=1;;i++) { // reset all other fields
          if (i == buttonNum) {
            continue;
          }
          var t=GeI(name+i);
          if (!t) {
            break;
          }
          t.checked=false;
          removeClassName(t.parentNode,"rchecked");     
        }
        addClassName(s.parentNode, "rchecked");
        s.checked = true;   
    });
}
// calendar functions...
function kalinit() {
    // write the content
    var t=new Date();
    curd=15;aktd=t.getDate();
    curm=aktm=t.getMonth();
    cury=akty=t.getFullYear();
    mos=aktm<10?'0'+(aktm+1):aktm+1;
    SetDate(t);
    displayDayEvents(akty, aktm+1, aktd);
   
    // init the events
    $('#kalArrL').click(function() {
        curm--; if (curm<0) { curm+=12; cury--; }
        SetDate(new Date(cury,curm,curd));
    });
    $('#kalArrR').click(function() {
        curm++; if (curm>11) { curm-=12; cury++; }
        SetDate(new Date(cury,curm,curd));
    });
    $('.kalB > p').click(function() {
        var mo=monback[$(this).html().substr(0,3)];
        var ye=parseInt($(this).html().substr(4,4));
        curm = mo;
        cury = ye;
        var t=new Date(ye,mo,15);
        SetDate(t);
    });
    $('.kalM > p').click(function(event) {
        $('.aktkal').removeClass('aktkal');
        $(this).addClass('aktkal');
        akty = cury;
        if (!$(this).parent().hasClass('kalL')) {
            tm=curm+1;
            if (tm==12) {
                tm=0;
                akty=cury+1;
            }
        } else {
            tm=curm;
        }
        //        $('.kalcontent > div:visible').addClass('invis');
        var nn=parseInt($(this).html()),dd;
        if (nn<10) dd='0'+nn; else dd=nn;
        if (tm<9) mm='0'+(tm+1); else mm=tm+1;
        aktd=nn; aktm=tm;
       
        displayDayEvents(akty,mm,dd);
        // init scroll pane does only work when div is visible!
        $('.kalcontent').jScrollPane({showArrows:true,arrowSize:7,dragMinHeight:55,dragMaxHeight:55,animateStep:15,scrollbarWidth:7,scrollbarMargin:7});       
    });
};
function loadScript(scriptLink) {
    try {
        var e = document.createElement("script");
        e.src = scriptLink;
        e.type="text/javascript";
        document.getElementsByTagName("head")[0].appendChild(e);
    } catch (err) {
        /* might be caused if a old browsers does not support this */
    }
}
function SetDate(t) {
    var d=t.getDate();
    var m=t.getMonth();
    var y=t.getFullYear();
    var wd=t.getDay();
    var sd=wd-(d%7);
    if (sd<0) sd+=7;
    var kal;
    initMonthEvents(y,m+1);
    $('#kalender > * > h4:first').html(month[m]+' '+y);
    WriteMonth($('#kalender > * > p:first'),d,sd,m,y);
    var nm=(m==11)?0:m+1;
    var ny=(m==11)?y+1:y;
    var nmdt=new Date(ny,nm,15);
    var sd2=nmdt.getDay()-(nmdt.getDate()%7);
    if(sd2<0)sd2+=7;
    initMonthEvents(ny,nm+1);
    $('#kalender > * > h4:last').html(month[nm]+' '+ny);
    WriteMonth($('#kalender > .kalM:last > p:first'),nmdt.getDate(),sd2,nm,ny);
    var fmon=$('#kalender > .kalB > p:first');
    for (i=m-6;i<m+8;i++) {
        var ii=i,yy=y; if (i<0) { ii+=12; yy--; } else if (i>11) { ii-=12; yy++; }
        fmon.html( smonth[ii]+' '+yy );
        if ( ( ii == m && yy == y ) || ( ii == nm && yy==ny)  ) fmon.addClass('akt');
        else if (fmon.hasClass('akt')) fmon.removeClass('akt');
        fmon=fmon.next();
    };
};
function WriteMonth(fday,d,sd,m,y) {
    var akt=0;
    for(;akt<sd;akt++) {
        fday.html('&nbsp;');
        fday.addClass('inakt');
        if(fday.hasClass('aktkal')) fday.removeClass('aktkal');
        fday=fday.next();
    }
    var maxdays=m==1&&y%4==0&&(y%100!=0||y%400==0)?29:mondays[m];
    for(i=0;i<maxdays;i++) {
        fday.html(i+1);
        if(fday.hasClass('inakt')) fday.removeClass('inakt');
        if((i==aktd-1)&&m==aktm&&y==akty) fday.addClass('aktkal');
        else if(fday.hasClass('aktkal')) fday.removeClass('aktkal');
        fday=fday.next(); 
    }
    akt+=i;
    for(;akt<42;akt++) {
        fday.html('&nbsp;');
        fday.addClass('inakt');
        if(fday.hasClass('aktkal')) fday.removeClass('aktkal');
        fday=fday.next();
    }
};
function initMonthEvents(year, month) {
    var yearStr = ''+year;
    var monthStr = ''+month;
    if (monthStr.length < 2) monthStr = '0'+monthStr;
    var monthEvents = rwekEvents[year+''+month];
    if (typeof monthEvents != 'object') {
        if (typeof loadEventLink == 'string') {
            var scriptLink = loadEventLink;
            scriptLink = scriptLink.replace(/\$\{year\}/g, yearStr);
            scriptLink = scriptLink.replace(/\$\{month\}/g, monthStr);
            loadScript(scriptLink);
        } else {
            // alert("loadEventLink not defined");
            rwekEvents[year+''+month] = new Array();
        }
    }
}
function displayDayEvents(aYear, aMonth, aDay) {
    var txt = '';
    var year = ''+aYear;
    var month = ''+aMonth;
    var day = ''+aDay;
    if (month.length < 2) month = '0'+month;
    if (day.length < 2) day = '0'+day;
    //txt = ''+year + month + day;
    var monthId = year+''+month;
    var monthEvents = rwekEvents[monthId];
    if (typeof monthEvents == 'object') {
        var theDay = year+''+month+''+day;
        var hadImage = false;
        for(var i=0; i<monthEvents.length; i++) {
            if (monthEvents[i].start <= theDay && monthEvents[i].end >= theDay) {
                var addToTop = false;
                var ttxt = '<table><tr>';
                if (!hadImage && monthEvents[i].imgUrl && monthEvents[i].imgUrl.length > 0) {
                    // Only one event with image is shown at the first pos
                       addToTop = true;
                       hadImage = true;
                    ttxt = ttxt + '<td><img src="'+monthEvents[i].imgUrl+'"';
                    if (monthEvents[i].imgWidth > 0) {
                        ttxt = ttxt + ' width="'+monthEvents[i].imgWidth+'"';
                    }
                    if (monthEvents[i].imgHeight > 0) {
                        ttxt = ttxt + ' height="'+monthEvents[i].imgHeight+'"';
                    }
                    ttxt = ttxt + '/></td>';
                }
                ttxt = ttxt + '<td><h3>'+monthEvents[i].title+'</h3>';
                ttxt = ttxt + '<p><a href="'+monthEvents[i].url+'" class="arr"><img src="/common/img/t.gif" width="10" height="7" />';
                ttxt = ttxt + monthEvents[i].text +'</a></p></td></tr></table>';
               
                if (addToTop) {
                    txt = ttxt + txt;
                } else {
                    txt = txt + ttxt;
                }
            }
        }
    } else {
        if (typeof rwekEventTry[monthId] != 'number') {
            rwekEventTry[monthId] = 0;
        }
        if (rwekEventTry[monthId] < eventListInitMaxTries) {
            clearTimeout(eventListInitTimer);
            rwekEventTry[monthId]++;
            eventListInitTimer = setTimeout('displayDayEvents("'+year+'","'+month+'","'+day+'")', eventListInitWait);
        } else {
            rwekEvents[year+''+month] = new Array();
        }
    }
    $('#veranstaltungen').html(txt);
}
// Login form / user status handling
function getTargetUrlAfterLogin() {
   var targetUrl = $.getUrlParam("target");
   if (targetUrl != null) {
      targetUrl = unescape($.getUrlParam("target"));
   }
   return targetUrl;
}
var selectInitVal = "";
function checkInputForm(formName){
  var formIsValid = true;
  var setFocus = true;
  var targetSet = false;
  $("#" + formName + " input").each(function(i, e){
    var inputIsValid = false;
    if($(e).val() != ""){
      inputIsValid = true;
    }
    if(inputIsValid){
      $(e).removeClass("textinputError");
    }else{
      if(setFocus){
        setFocus = false;
        $(e).focus();
      }
      formIsValid = false;
      $(e).addClass("textinputError");
    }
  });
  return formIsValid;
};
function initLoginForm() {
 
  var loginForm = document.getElementById('loginform');
  if (loginForm != null) {
    $(".loginSubmit").click(function(){
      if (checkInputForm("loginform")) {
        $("#loginform").submit();
      } else {
        return false;
      }
    });
    var loginTargetUrl = getTargetUrlAfterLogin();
    if (loginTargetUrl == null) {
    loginTargetUrl = window.location.href;
    }
    loginForm.action = loginForm.action + "?target="+escape(loginTargetUrl);
  }
/* 
  function loginResponse(responseText, statusText) {
    userStatus = eval('(' + responseText + ')');
    if (userStatus.loggedIn) {
        var targetUrl = getTargetUrlAfterLogin();
        if (targetUrl != null) {
          if (targetUrl.indexOf('/') == 0) {
            window.location.href = window.location.protocol + '//'+window.location.host + targetUrl;
            return;
          } else if (targetUrl.indexOf('http://'+window.location.host+'/') == 0 || targetUrl.indexOf('https://'+window.location.host+'/') == 0) {
            window.location.href = targetUrl;
            return;
          }
        }
        if (doAfterStatusChange()) {
          // open the my data links layer
          setVisibility('loggedInLinks', null, 'block');
          // reset the login form
          o = document.getElementById('username');
          removeClassName(o, 'textinputError');
          o.value='';
          o = document.getElementById('password');
          removeClassName(o, 'textinputError');
          o.value='';
        }
    } else {
        addClassName('username', 'textinputError');
        addClassName('password', 'textinputError');
    }
  }
  */
  checkUserStatus();
}
function checkUserStatus() {
  function statusResponse(responseText, statusText) {
    userStatus = eval('(' + responseText + ')');
    initStatusLayer();
  }
  var loginForm = document.getElementById('loginform');
  if (loginForm != null && (typeof ajaxStatusUrl != 'undefined')) {
    var statusUrl = ajaxStatusUrl;
    if (window.location.href.indexOf(";jsessionid=") > 0) {
      // statusUrl = statusUrl + window.location.href.substring(window.location.href.indexOf(";jsessionid="));
      if (statusUrl.indexOf('?') > 0) {
        statusUrl = statusUrl.substring(0, statusUrl.indexOf('?'));
      }
      if (statusUrl.indexOf('#') > 0) {
        statusUrl = statusUrl.substring(0, statusUrl.indexOf('#'));
      }
    }
    statusUrl = statusUrl+"?rnd="+Math.random();
    if (statusUrl.indexOf("://") > 0) {
        statusUrl = statusUrl.substring(statusUrl.indexOf("/", 9));
    }
    var options = {
           url          :   statusUrl,
           type         :   'GET',
           timeout      :   10000000,
           success      :   statusResponse
    };
    $.ajax(options);
  }
}
function logout(logoutUrl) {
  function logoutResponse(responseText, statusText) {
    userStatus = new Object();
    userStatus.loggedIn = false;
    doAfterStatusChange();
  }
  if (logoutUrl.indexOf("://") > 0) {
    logoutUrl = logoutUrl.substring(logoutUrl.indexOf("/", 9));
  }
  var options = {
         url          :   logoutUrl+"?rnd="+Math.random(),
         type         :   'GET',
         timeout      :   10000000,
         success      :   logoutResponse
  };
  $.ajax(options);
}
function doAfterStatusChange() {
  initStatusLayer();
  if (typeof reloadAfterStatusChange != 'undefined' && reloadAfterStatusChange) {
    var pageUrl = window.location.href;
    if (pageUrl.indexOf('rnd=') > 0) {
      pageUrl = pageUrl.substring(0, pageUrl.indexOf('rnd=') -1);
    }
    var paramSep = pageUrl.indexOf('?') > 0 ? '&' : '?';
    window.location.href = pageUrl + paramSep + "rnd="+Math.random()
    return false;
  }
  return true;
}
function initStatusLayer() {
  if (userStatus.loggedIn) {
    initLoggedInStatus();
    // also init links with registration info layer
    $("a.regInfoLink").each(function() {
      $(this).removeAttr("onclick");
    });
  } else {
    initLoggedOutStatus();
    $("a.regInfoLink").each(function() {
      $(this).tooltip({
        tip: '#regInfoLayer',
        offset: [-30, -60],
        onBeforeShow: function(){
           return !userStatus.loggedIn;
        }
      });
      $(this).bind('click', function() {
        return false;
      });
    });
  }
}
function initLoggedInStatus() {
  addClassName('Artikel','loggedIn');
  // init the logged in layer
  var o = document.getElementById('usersName');
  if (o != null) {
    o.innerHTML = userStatus.givenName + ' ' + userStatus.familyName;
    setVisibility('loginLinks', null, 'none');
    setVisibility('loginFields', null, 'none');
    setVisibility('loggedInLinks', null, 'none');
    setVisibility('loggedIn', null, 'block');
  }
}
function initLoggedOutStatus() {
  removeClassName('Artikel','loggedIn');
  setVisibility('loggedIn', null, 'none');
  setVisibility('loggedInLinks', null, 'none');
  setVisibility('loginLinks', null, 'block');
  if ($.getUrlParam("target") != null) {
    setVisibility('loginFields', null, 'block');
  } else {
    setVisibility('loginFields', null, 'none');
  }
}
// language / info layer
function initToolTips() {
 try {
  initLangInfoLayer('en');
  initLangInfoLayer('tr');
  initLangInfoLayer('hu');
    if ((typeof currentLanguage != 'undefined' && currentLanguage.length == 2 && currentLanguage == 'hu') || (typeof currentLanguage != 'undefined' && currentLanguage.length == 2 && currentLanguage == 'tr')) {
      jQuery('.jukeboxNaviimage a').each(function() {
        $(this).removeAttr("title");
      });
    }
    if (typeof currentLanguage != 'undefined' && currentLanguage.length == 2 && currentLanguage != 'de') {
    jQuery('a:not(div#StdNaviLague a, div.langInfoLayerBg a)')
      .filter(function(index){
        var aLink = $(this).attr("href");
        if (aLink != null && aLink != '' && aLink != '#') {
          var prtclIdx = aLink.indexOf(":");
          if (prtclIdx > 0) {
            if (aLink.indexOf("http") == 0) {
              var pathIdx = aLink.indexOf("/", prtclIdx+3);
              if (pathIdx > 0) {
                var linkHost = aLink.substring(prtclIdx+3, pathIdx > 0 ? pathIdx : aLink.length);
                if (window.location.host != linkHost) {
                  return false;
                }
                aLink = aLink.substring(pathIdx);
              }
            } else {
              return false; // no http link
            }
          }
          var linkPath = aLink.split("/");
          if (linkPath.length > 2) {
            // todo ignore download links
            if (linkPath[1] == 'rwe') {
              if (linkPath[2].length == 2 && linkPath[2] != currentLanguage) {
                return true;
              }
            }
          }
        }
        return false;
      })
      .tooltip({
         tip: '#langInfoLayer',
         offset: [0, 20],
         lazy: false,
         onBeforeShow: function(){
            langToolTipVisible = true;
         },
         onHide: function(){
            langToolTipVisible = false;
         }
      }).dynamic( {
           bottom: {
            direction: 'down'
          }
      });
  }
 } catch(err) { /* ignore */ }
}
function initLangInfoLayer(alang) {
  var aLink = $('a.'+alang+'Dis');
  if (aLink != null) {
    aLink.tooltip({
      tip: '#langInfoLayer_'+alang,
      offset: [100, 60]
    });
  }
}
// Google Maps loading
var gmapScriptsToLoad = new Array();
var gmapScriptLoadingChecks = new Array();
var gmapScriptCurrent = -1;
var gmapLoadingTries = 0;
var gmapLoadingTimer;
function loadGoogleMapApi() {
  try {
    var googleAjaxUrl='';
    if (location.href.match(/prev-energiekulturruhr.rwe.com/)) googleAjaxUrl='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAzcXCgy4KPYecOW5X6rkBrxTDDY2-k4LRr3M5CDMUaapyWJFFfhTW4jwoaASECMJkTVBCL8ftmsmlmQ&async=2&callback=loadNextGoogleScript';
    else if (location.href.match(/int-energiekulturruhr.rwe.com/)) googleAjaxUrl='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA4jQRwcXLTJNFfc58jx9mphTxvwH8piAjrFfqJK9N-Bjvg16gABQOetx2zF6CB2ReQIul12eyX3gUNw&async=2&callback=loadNextGoogleScript';
    else if (location.href.match(/energiekulturruhr.de/)) googleAjaxUrl='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAzcXCgy4KPYecOW5X6rkBrxSzhqeqnbOFXqJC-Vt_iH7QtpT41xQgl0GhEEaHFc86W7aM2q-65MZqow&async=2&callback=loadNextGoogleScript';
    else googleAjaxUrl='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAzcXCgy4KPYecOW5X6rkBrxSz-9n2sxhct-a5FNLFvyZpkTqZUBQXo27RWfRiMItWy0EzYU4STyTNZA&async=2&callback=loadNextGoogleScript';
    gmapScriptCurrent = 0;
    gmapScriptsToLoad[gmapScriptCurrent]=googleAjaxUrl;
    gmapScriptLoadingChecks[gmapScriptCurrent]="";
    if (typeof gmapExtinfoLink == 'string') {
        gmapScriptCurrent++;
        gmapScriptsToLoad[gmapScriptCurrent]=gmapExtinfoLink;
        gmapScriptLoadingChecks[gmapScriptCurrent]="typeof extinfowindowLoaded";
    }
    if (typeof gmapLargemapLink == 'string') {
        gmapScriptCurrent++;
        gmapScriptsToLoad[gmapScriptCurrent]=gmapLargemapLink;
        gmapScriptLoadingChecks[gmapScriptCurrent]="typeof extralargemapCtrlLoaded";
    }
    gmapScriptCurrent = -1;
    loadNextGoogleScript();
  } catch (err) {
    /* ignore */
  }
}
function loadNextGoogleScript() {
    try {
        if (gmapLoadingTries > 0) {
            if ('undefined' == eval(gmapScriptLoadingChecks[gmapScriptCurrent])) {
                gmapLoadingTries++;
                if (gmapLoadingTries < 100) {
                    // wait
                    clearTimeout(gmapLoadingTimer);
                    gmapLoadingTimer = setTimeout('loadNextGoogleScript()', 30);
                    return;
                }
            }
        }
        // load next
        gmapLoadingTries = 0;
        gmapScriptCurrent++;
        if (gmapScriptCurrent < gmapScriptsToLoad.length) {
            loadScript(gmapScriptsToLoad[gmapScriptCurrent]);
            // if the script check is empty, this function is called by callback
            if (gmapScriptLoadingChecks[gmapScriptCurrent] != "") {
                gmapLoadingTries = 1;
                clearTimeout(gmapLoadingTimer);
                gmapLoadingTimer = setTimeout('loadNextGoogleScript()', 30);
            }
        } else {
            googleMapInit();
        }
    } catch(e) {
        /* ignore. maybe google is not available */
        //alert(e.name + "\n" + e.message);
    }
}
function parseXML( xml ) {
    if( window.ActiveXObject && window.GetObject ) {
        var dom = new ActiveXObject( 'Microsoft.XMLDOM' );
        dom.loadXML( xml );
        return dom;
    }
    if( window.DOMParser )
        return new DOMParser().parseFromString( xml, 'text/xml' );
    throw new Error( 'No XML parser available' );
}
// Google Maps Init
function googleMapInit() {
  try {
    var maplls=new Array();
    var maptis=new Array();
    var maptxs=new Array();
    var mapmarks=new Array();
    var max=0;
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("googleMap"),{size:new GSize(652,382)});
        map.setCenter(new GLatLng(51.42533,7.041206), 12);
        // geocoder = new GClientGeocoder();
        map.addMapType(G_PHYSICAL_MAP);
        map.removeMapType(G_NORMAL_MAP);
        map.removeMapType(G_SATELLITE_MAP);
        map.removeMapType(G_HYBRID_MAP);
        // Remove MapType.G_HYBRID_MAP
        /*customUI.maptypes.physical = true;
        customUI.maptypes.hybrid = false;
        customUI.maptypes.normal = false;
        customUI.maptypes.satellite = false;*/
        var mapControl = new GMapTypeControl();
        //    map.addControl(mapControl);
        //    var customUI = map.getDefaultUI();   
        //    map.setUI(customUI);
        var extLargeMapControl = new ExtLargeMapControl();
        map.addControl(extLargeMapControl);
        var bIcon = new GIcon(G_DEFAULT_ICON);
        bIcon.image = imgMapMarker;
        bIcon.iconSize = new GSize(43,45);
        bIcon.iconAnchor = new GPoint(21,22);
        bIcon.infoWindowAnchor = new GPoint(30, 5);
        function createMarker(point, index) {
            var lIcon = new GIcon(bIcon);
       
            // Set up our GMarkerOptions object
            markerOptions = { icon:lIcon };
            var marker = new GMarker(point, markerOptions);
       
            GEvent.addListener(marker, "click", function() {
                var aktinfo = marker.openExtInfoWindow(map, "mapinfowin", "<b>" + maptis[index] + "</b><br />" + maptxs[index],{paddingX:130,paddingY:130} );
                //            marker.openInfoWindowHtml("<b>" + maptis[index] + "</b><br />" + maptxs[index] );
            });
            return marker;
        }
        // Parse the KML File for the links
        if (typeof loadLocationsLink == 'string') {
            $.get(loadLocationsLink, null, function(data){
                var da;
                /*if ($.browser.mozilla && $.browser.version.substr(0,3).match(/1.8/)) {
                    $('#xmls').html(data);
                    da=$('#xmls');
                    alert(da.html());
                }
                else*/ da = parseXML(data);
                var $da = $(da);
               
                //var $da = $(data);
               
                //alert($da.find('Placemark').size());
                $da.find('Placemark').each(function(i){
                  //IE
                  if (window.ActiveXObject) {
                    maptis[i]=$(this).find('name')[0].xml;
                    maplls[i]=$(this).find('coordinates').text();
                    maptxs[i]=$(this).find('description')[0].xml;
                  } else { // code for Mozilla, Firefox, Opera, etc.
                    var xmlSerializer = new XMLSerializer();
                    maptis[i]=xmlSerializer.serializeToString($(this).find('name')[0]);
                    maplls[i]=$(this).find('coordinates').text();
                    maptxs[i]=xmlSerializer.serializeToString($(this).find('description')[0]);
                  }
                  max=i;
                  var lon=parseFloat(maplls[i].split(',')[0]);
                  var lat=parseFloat(maplls[i].split(',')[1]);       
                  var point = new GLatLng(lat,lon);
                  map.addOverlay((mapmarks[i]=createMarker(point, i)));
                  $('#colOrte .colscroll').append('<a href="javascript:;" num="'+i+'">'+maptis[i]+'</a><br />');
                  $('#colOrte .colscroll a').click( function() {
                    var i=parseInt(this.getAttribute('num'));
                    var lon=parseFloat(maplls[i].split(',')[0]);
                    var lat=parseFloat(maplls[i].split(',')[1]);       
                    var point = new GLatLng(lat,lon);
                    //                map.setCenter(point);
                    //                mapmarks[i].openInfoWindowHtml("<b>" + maptis[i] + "</b><br />" + maptxs[i] );
                    var aktinfo = mapmarks[i].openExtInfoWindow(map, "mapinfowin", "<b>" + maptis[i] + "</b><br />" + maptxs[i],{paddingX:130,paddingY:130} );
                    //                aktinfo.resize();
                    //        alert(point);
                    });
                });
            },'html');
        }
    }
  } catch(e) {
    /* ignore. maybe google is not available */
    //alert(e.name + "\n" + e.message);
  }
}
/* handle display and visisbility */
function setVisibility( objId, visibility, display, initialSet ) {
if ( typeof objId != 'object' ) {
 objId = document.getElementById( objId );
}
if ( objId ) {
 if ( typeof visibility == 'undefined' && typeof display == 'undefined' ) {
 var currentState = getDivInformation( objId, 'visibility' );
 var currentDisplayState = getDivInformation( objId, 'display' );
 if ( currentState == '' ) {
 if ( initialSet ) {
 currentState = 'visible';
 } else {
 currentState = 'hidden';
 }
 }
 if ( currentDisplayState == '' ) {
 if ( initialSet ) {
 currentDisplayState = initialSet;
 } else {
 currentDisplayState = 'none';
 }
 }
 if ( currentState == 'hidden' ) {
 objId.style.visibility = 'visible';
 } else if ( currentState == 'visible' ){
 objId.style.visibility = 'hidden';
 }
 if ( currentDisplayState == 'none' ) {
 objId.style.display = 'block';
 objId.style.visibility = 'visible';
 } else if ( currentDisplayState == 'block' || currentDisplayState == 'inline' ) {
 objId.style.display = 'none';
 }
 } else if( visibility == 1 ) {
 objId.style.visibility = 'visible';
 } else if( visibility == 0 ) {
 objId.style.visibility = 'hidden';
 }
 if( display ) {
 objId.style.display = display;
 }
}
}
function handleWatchlist(baseUrl, contentId, showBtnId, hideBtnId, reload) {
$.ajax({
 type: "GET",
 url: baseUrl + '?contentId=' + contentId + '&rnd='+Math.random(),
 success: function() {
 if (reload === true) {
 window.location.reload(true);
 } else {
 if (GeI(showBtnId)) {
 GeI(showBtnId).style.display = 'block';
 }
 if (GeI(hideBtnId)) {
 GeI(hideBtnId).style.display = 'none';
 }
 }
 }
});
}
