var b   = 720;  /* Breite des Slideouts */

function activateMenuitem(strItem)
{
    if (typeof activateMenuitem.activeItem == 'undefined') {
        activateMenuitem.activeItem = strItem;
        menuSwitch();
    }
        
    activateMenuitem.activeItem = strItem;

    if (!slide.isActive)
    {
        slide();
    }
}

function headlineSwitch()
{
        document.getElementById('content').innerHTML = '<div id="headline"></div>';

        if (activateMenuitem.activeItem == 'home')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_home.png)';
            document.getElementById('headline').className = 'headline_home';
            
        }
        else if (activateMenuitem.activeItem == 'programm')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_programm.png)'; 
            document.getElementById('headline').className = 'headline_programm';
        }
        else if (activateMenuitem.activeItem == 'galerie' | activateMenuitem.activeItem == 'visuals')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_galerie.png)'; 
            document.getElementById('headline').className = 'headline_galerie';
        }
        else if (activateMenuitem.activeItem == 'tapas')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_tapas.png)'; 
            document.getElementById('headline').className = 'headline_galerie';
        }
        else if (activateMenuitem.activeItem == 'weinproben')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_weinproben.png)'; 
            document.getElementById('headline').className = 'headline_weinproben';
        }
        else if (activateMenuitem.activeItem == 'kaffee_und_weinhandlung')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_weinhandlung.png)';
            document.getElementById('headline').className = 'headline_weinhandlung';
        }
        else if (activateMenuitem.activeItem == 'vermietung')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_vermietung.png)'; 
            document.getElementById('headline').className = 'headline_vermietung';
        }
        else if (activateMenuitem.activeItem == 'newsletter')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_newsletter.png)'; 
            document.getElementById('headline').className = 'headline_newsletter';
        }
        else if (activateMenuitem.activeItem == 'kontakt')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_kontakt.png)'; 
            document.getElementById('headline').className = 'headline_kontakt';
        }
        else if (activateMenuitem.activeItem == 'anfahrt')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_anfahrt.png)'; 
            document.getElementById('headline').className = 'headline_anfahrt';
        }
        else if (activateMenuitem.activeItem == 'impressum')
        {
            document.getElementById('headline').style.backgroundImage = 'url(gfx/headline_impressum.png)'; 
            document.getElementById('headline').className = 'headline_impressum';
        }
}

function menuSwitch()
{
        headlineSwitch();

        if (activateMenuitem.activeItem == 'home')
        {
            AJAX_Request('inc/ajax_request.php?page=home');
        }
        else if (activateMenuitem.activeItem == 'programm')
        {
            AJAX_Request('inc/ajax_request.php?page=programm');
        }
        else if (activateMenuitem.activeItem == 'galerie' | activateMenuitem.activeItem == 'visuals')
        {
            AJAX_Request('inc/ajax_request.php?page=visuals');
        }
        else if (activateMenuitem.activeItem == 'tapas')
        {
            AJAX_Request('inc/ajax_request.php?page=tapas');
        }
        else if (activateMenuitem.activeItem == 'weinproben')
        {
            AJAX_Request('inc/ajax_request.php?page=weinproben');
        }
        else if (activateMenuitem.activeItem == 'kaffee_und_weinhandlung')
        {
            AJAX_Request('inc/ajax_request.php?page=kaffee_und_weinhandlung');
        }
        else if (activateMenuitem.activeItem == 'vermietung')
        {
            AJAX_Request('inc/ajax_request.php?page=vermietung');
        }
        else if (activateMenuitem.activeItem == 'newsletter')
        {
            AJAX_Request('inc/ajax_request.php?page=newsletter');
        }
        else if (activateMenuitem.activeItem == 'kontakt')
        {
            AJAX_Request('inc/ajax_request.php?page=kontakt');
        }
        else if (activateMenuitem.activeItem == 'anfahrt')
        {
            AJAX_Request('inc/ajax_request.php?page=anfahrt');
        }
        else if (activateMenuitem.activeItem == 'impressum')
        {
            AJAX_Request('inc/ajax_request.php?page=impressum');
        }
}

function slide()
{
    var obj = document.getElementById('contentWrapper');
    var w   = parseInt(obj.style.width.substr(0, obj.style.width.length-2));
       
    slide.isActive = true;  /* Nur einen Zugriff erlauben */
    
    if (!slide.direction || w == 0)
    {
        slide.direction = 'out';
    }
    else if (w == b)
    {
        slide.direction = 'in';
    }

    if (slide.direction == 'out')
    {
        w += 20;
        
        obj.style.display = 'block';
        obj.style.width   = w.toString() + 'px';
        
        if (w < b)
        {
            window.setTimeout("slide()", 10);
        }
        else
        {
            slide.isActive = false;           
            fadeIn();
        }
    }
    else if (slide.direction == 'in')
    {
        if (!fadeOut.isActive)
        {
            fadeOut();
        }
        else
        {
            w -= 20;
        
            obj.style.width = w.toString() + 'px';
            
            if (w > 0)
            {
                window.setTimeout("slide()", 10);
            }
            else
            {
                slide.isActive = false;
                fadeOut.isActive = false;
                if (!slideIn.isActive)
                {
                    slide.direction = 'out';
                    slide();
                }
                else
                {
                    slideIn.isActive = false;
                }
            }
        }
    }
}

function fadeIn()
{
    var obj = document.getElementById('content');
    
    if (!fadeIn.opacity)
    {
        fadeIn.opacity = 0;
        obj.style.filter  = 'alpha(opacity=0)';
        obj.style.display = 'block';
    }    
    
    obj.style.opacity = (fadeIn.opacity / 100);
    obj.style.filter  = 'alpha(opacity=' + fadeIn.opacity + ')';
    
    if (fadeIn.opacity < 100)
    {
        fadeIn.opacity += 10;
        window.setTimeout('fadeIn()', 10);
    }
    else
    {
        fadeIn.opacity = null;
    }
}

function fadeOut()
{
    var obj = document.getElementById('content');
    
    if (!fadeOut.opacity)
    {
        fadeOut.isActive = true;
        fadeOut.opacity = 100;
    }    
           
    fadeOut.opacity -= 10;
    obj.style.opacity = (fadeOut.opacity / 100);
    obj.style.filter  = 'alpha(opacity=' + fadeOut.opacity + ')';


    if (fadeOut.opacity > 0)
    {
        window.setTimeout('fadeOut()', 10);
    }
    else
    {
        menuSwitch();    
    
        fadeOut.opacity   = null;
        obj.style.display = 'none';
        slide.direction   = 'in';
        slide();
    }
}

function fadeBG(intPic)
{
    var cntPics = 5; /* Anzahl der Bilder */

    var next_pic = intPic + 1;
    if (next_pic > cntPics) {
        intPic   = cntPics;
        next_pic = 1;
    }
    
    if (!fadeBG.pic)
    {
        fadeBG.pic = intPic;
    }               
        
    var pic1 = document.getElementById('fade'+(intPic).toString());
    var pic2 = document.getElementById('fade'+(next_pic).toString());

    /* pic1 wird ausgefadet
       pic2 wird eingefadet
    */
        
    if (pic2.style.display != 'block')
    {   
        for (var i=1; i<=cntPics; i++)
        {
            document.getElementById('fade'+i.toString()).style.display = 'none';
            if (pic1.id != ('fade'+i.toString()) & pic2.id != ('fade'+i.toString()))
            {
                document.getElementById(('fade'+i.toString())).style.opacity = 0.0;
                document.getElementById(('fade'+i.toString())).style.filter  = 'alpha(opacity=0)';
                
                document.getElementById(('fade'+i.toString())).style.display = 'none';
            }
        }
   
        pic1.style.display = 'block';
        pic1.style.opacity = 1.0;
        pic1.style.filter  = 'alpha(opacity=100)';

        pic2.style.display = 'block';
        pic2.style.opacity = 0.0;
        pic2.style.filter  = 'alpha(opacity=0)';

        pic1.style.zIndex = 1;
        pic2.style.zIndex = 2;
    }

    pic2.style.opacity = (parseFloat(pic2.style.opacity) + 0.025);
    pic2.style.filter  = 'alpha(opacity=' + (parseFloat(pic2.style.opacity)*100 + 2.5)+')';
    
    if (pic2.style.opacity < 1.0)
    {
        window.setTimeout('fadeBG('+intPic+')', 100);
    } 
    else
    {           
        if (++intPic > cntPics)
        {
            intPic = 1;
        }
        fadeBG.pic = null;
        window.setTimeout('fadeBG('+(intPic)+')', 8000);
    }
}

function init()
{
    preload();
}

function preload()
{
    if (document.getElementById('preload_last_pic').complete)
    {
        document.getElementById('loading').style.display   = 'none';
        document.getElementById('preloader').style.display = 'none';
               
        document.getElementById('innerWrapper').style.opacity    = 0.0;
        document.getElementById('innerWrapper').style.visibility = 'visible';

        fadeIn_InnerWrapper();        
    }
    else
    {
        window.setTimeout('preload()', 100);
    }
}

function fadeIn_InnerWrapper()
{
    document.getElementById('innerWrapper').style.opacity = parseFloat(document.getElementById('innerWrapper').style.opacity) + 0.1;
    
    if (document.getElementById('innerWrapper').style.opacity < 1.0)
    {
        window.setTimeout('fadeIn_InnerWrapper()', 10);
    }
    else
    {
        window.setTimeout('fadeBG(1)', 8000);
    }
}

function slideIn()
{
    var obj = document.getElementById('contentWrapper');
    var w   = parseInt(obj.style.width.substr(0, obj.style.width.length-2));

    if (w == b)
    { 
        delete activateMenuitem.activeItem;
        slideIn.isActive = true;
        slide.direction  = 'in';
        slide();
    }
}

/********
 * AJAX *
 ********/

var objAjax = getXMLHttpObj();

function getXMLHttpObj() {
    if(typeof(XMLHttpRequest) != 'undefined')
        return new XMLHttpRequest();

    var axO=['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'], i;
    for(i=0;i<axO.length;i++) {
        try {
            return new ActiveXObject(axO[i]);
        } catch(e) {
        }
    }
    return null;
}

function AJAX_Request(url) {
        objAjax.open('GET', url, true);
        objAjax.onreadystatechange = AJAX_Show;
        objAjax.send(null);
}

function AJAX_Show() {
    if (objAjax.readyState == 4) {
        if (objAjax.status == 200) {
            headlineSwitch();
            document.getElementById('content').innerHTML += objAjax.responseText;
            if (activateMenuitem.activeItem == 'visuals' | activateMenuitem.activeItem == 'galerie') showGalary();            
        }
    }
}


function isEmailValid(s)
{
  var a = false;
  var res = false;
  if(typeof(RegExp) == 'function')
    {
    var b = new RegExp('abc');
    if(b.test('abc') == true){a = true;}
    }

  if(a == true)
    {
    reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                     '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                     '(\\.)([a-zA-Z]{2,4})$');
    res = (reg.test(s));
    }
  else
    {
    res = (s.search('@') >= 1 &&
           s.lastIndexOf('.') > s.search('@') &&
           s.lastIndexOf('.') >= s.length-5)
    }
  return(res);
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}

function sendContactForm() {

    var name     = document.getElementById('name').value;
    var email    = document.getElementById('email').value;
    var betreff  = document.getElementById('betreff').value;
    var text     = document.getElementById('nachricht').value;
    
    var err_name     = false;
    var err_email    = false;
    var err_betreff  = false;
    var err_text     = false;
    
    document.getElementById('err_name').innerHTML = '';
    document.getElementById('err_email').innerHTML = '';
    document.getElementById('err_betreff').innerHTML = '';
    document.getElementById('err_text').innerHTML = '';
    
    if (name.length < 2)        { err_vorname = true; document.getElementById('err_name').innerHTML = 'Geben Sie bitte Ihren Namen ein.'; }
    if (!isEmailValid(email))   { err_email = true; document.getElementById('err_email').innerHTML = 'Die E-Mail-Adresse ist ung&uuml;ltig.'; }
    if (betreff.length < 2)     { err_betreff = true; document.getElementById('err_betreff').innerHTML = 'Geben Sie bitte einen Betreff ein.'; }
    if (text.length < 2)        { err_text = true; document.getElementById('err_text').innerHTML = 'Geben Sie bitte Ihre Nachricht ein.'; }
    
    text = str_replace("\n", "<br>", text);
    
    if (!err_name & !err_email & !err_betreff & !err_text) {
        AJAX_Request('inc/ajax_kontakt.php?name='+name+'&email='+email+'&betreff='+betreff+'&text='+text);
    }
}

function sendNewsletterFormSubscribe() {

    var name     = document.getElementById('name').value;
    var email    = document.getElementById('email').value;
    
    var err_name     = false;
    var err_email    = false;

    document.getElementById('err_name').innerHTML = '';
    document.getElementById('err_email').innerHTML = '';
    
    if (name.length < 2)        { err_vorname = true; document.getElementById('err_name').innerHTML = 'Geben Sie bitte Ihren Namen ein.'; }
    if (!isEmailValid(email))   { err_email = true; document.getElementById('err_email').innerHTML = 'Die E-Mail-Adresse ist ung&uuml;ltig.'; }
    
    if (!err_name & !err_email) {
        AJAX_Request('inc/ajax_newsletter.php?action=subscribe&name='+name+'&email='+email);
    }
}

function sendNewsletterFormUnsubscribe() {

    var email    = document.getElementById('email').value;
    
    var err_email    = false;

    document.getElementById('err_name').innerHTML = '';
    document.getElementById('err_email').innerHTML = '';
    
    if (!isEmailValid(email))   { err_email = true; document.getElementById('err_email').innerHTML = 'Die E-Mail-Adresse ist ung&uuml;ltig.'; }
    
    if (!err_email) {
        AJAX_Request('inc/ajax_newsletter.php?action=unsubscribe&email='+email);
    }
}

function showGalary()
{
    if (document.getElementById('preload_img_visuals') && document.getElementById('preload_img_visuals').complete) {
        initLytebox();
        document.getElementById('pics_preload').style.display = 'none';
        document.getElementById('pics_content').style.display = 'block';
    } else {
        window.setTimeout("showGalary()", 1000);
    }    
}