// www.brutolerestaurant.com JavaScript Document
var intGallery ;
var loadComplete = 0 ;
var photoLoadCount = 1 ;
var images ;
var photos ;
var menu ; 
var pages ;
var total ;
var timer ;
var flashHidden = 0 ;
var loadedImg = 0 ;

function hideFlash() {
    $("#flash-wrapper").hide() ;
    flashHidden++ ;
    if(loadedImg == 100) {
        setFunctions() ;
    }
}
$(document).ready(function() {

    $("#body-content > div").hide() ;
    $("#background-pages > div").hide() ;
    timer = setInterval("checkLoad()", 1000) ;
    photos = Array("home", "chef-ilias", "chef-nick", "gift", "reservations", "function", "hours", "contact", "news") ;
    menu = $("div[id^='background-menu']") ;
    pages = $("#body-content > div") ;
    /* Load general images */
    $.preloadCssImages();
});
function updateTotal(images) {
    total = images + photos.length + menu.length + 11 + pages.length ;
}
function updateLoading() {
    loadedImg = ((photoLoadCount * 100) /total).toFixed(0) ;
    $("#status").css({"background-position": "-" + (100 - loadedImg + 'px 50%')}) ;
    $("#textStatus").html("Loading..." + loadedImg + "%"); 
}
function checkLoad() {
    //alert(total + " " + photoLoadCount) ;
    if((total) == photoLoadCount-1 && flashHidden == 1) {
        clearInterval(timer) ;
        setFunctions() ;
    }
}
function loadContinue() {
    loadComplete++ ;
    loadPagePhotos() ;
}
/* Load pages photos */
function loadPagePhotos() {
    var x = 1 ;
    $(photos).each(function() {
        loadPhoto(this) ;
        if(photos.length == x) {
            loadMenuPhotos() ;
        }
        x++ ;
    }) ;

}
/* Load menu photos */
function loadMenuPhotos() {
    var x = 1 ;
    $(menu).each(function() {
        loadPhoto(this.id.substring(11), "menu") ;
        if(menu.length == x) {
            loadGalleryPhotos() ;
        }
        x++ ;
    });
}

/* Load gallery photos */
function loadGalleryPhotos() {
    for(x = 1 ; x < 12 ; x++) {
        number = x ;
        if(x < 10) {
            number = '0' + x ;
        }
        loadPhoto("gallery_" + number, "gallery") ;
        if(x == 11) {
            loadPagesHtml() ;
        }
    }
}
/* Load pages HTML */
function loadPagesHtml() {
    var x = 1 ;
    $(pages).each(function() {
        loadHtml(this.id) ;
        x++ ;
    });
}
    //alert(photos.length + "+" + menu.length + "+11+" + pages.length + "=" + total) ; 
    //init() ;

function init() {

}
function loadHtml(page) {
    $("#" + page).load(page + ".html",'', function() {
        updateLoading() ; 
        photoLoadCount++ ;  
    });
}
function loadPhoto(page, dir) {
    var subdir = '';
    if(dir) {
        subdir = dir + "/" ;
    }
    var img = new Image();
    img.src = "photos/" + subdir + page + ".jpg" ;
    $(img).load(function() {
        updateLoading() ;   
        photoLoadCount++ ;  
    });

    if(dir == "gallery") {
        page = "gallery" ;
    }
    $("#background-" + page).append(img) ;
    if(page.substring(0,4) == 'chef') {
        $("#"+page).prepend(img) ;
    }

}
function setFunctions() {
    $("#load-wrapper").hide() ;
    goContact() ;
    $("#inner-wrapper").show() ;
    $("#background-home").show() ;
    $("#background-home").css({'opacity':0.0}).animate({opacity:1.0}, 1500, function () {}) ;
    $("a.nav-link:not(.subnav-link)").click(function() {
        $(".menu-subnav-subsection").removeClass("show") ;
        $("ul.subnav.subnav-open").removeClass("subnav-open") ;
        page = this.id.substring(4) ;
        $("a.nav-link").removeClass("selected") ;
        $(this).addClass("selected") ;
        loadPage(page, page) ;
        if(page == 'gift') {
            goGift() ;
        }
        if(page == 'gallery') {
            goGallery() ;
        }
        return false ;
    });
    $("a.nav-external").click(function() {
        $("ul.subnav.subnav-open").removeClass("subnav-open") ;
        window.open(this.href, '_blank') ;
        return false ;
    });
    /* dropdown */
    $("a.nav-link.subnav-link").click(function() {
        $("ul.subnav.subnav-open").removeClass("subnav-open") ;
        $("#sub" + this.id).addClass("subnav-open") ;
        return false ;
    });
    /* Menu main sections */
    $("a.menu-subnav-link").click(function() {
        $("a.nav-link").removeClass("selected") ;
        $("a#nav-menu").addClass("selected") ;
        $(".menu-subnav-subsection a").removeClass("selected") ;
        $("#menu-subnav a[name='" + this.name + "']").addClass("selected") ;
        $(".menu-subnav-subsection").removeClass("show") ;
        subnav = this.id.substring(4) ;
        image = subnav ;
        if(this.id.substring(0, 8) == "nav-menu") {
            image = $("#page-" + subnav + " a#" + subnav + "-selected")[0].name ;
        }
        selectedItem(subnav) ;
        loadPage(subnav, image) ;
        $("#subnav-" + subnav).addClass("show") ;
    });
    /* Menu subsections */
    $(".menu-subnav-subsection a").click(function() {
        $(".menu-subnav-subsection a").removeClass("selected") ;
        $(this).addClass("selected") ;
        subsection = this.name.substring(4) ;

        image = $("#page-" + subsection + " a#" + subsection +"-selected")[0].name ;

        selectedItem(subsection) ;
        loadPage(subsection, image) ;

    });
    /* Load menu item photo */
    $(".menu-items a").click(function() {
        $(".menu-items a").removeClass("selected") ;
        $(this).addClass("selected") ;
       loadImg(this.name, this.name) ;
    });
    /* switch photo/text */
    $("#switch-photo").click(function() {
        $("#content-background-placeholder").addClass("hide") ;
        $("#body-content").addClass("hide") ;
    });
    $("#switch-text").click(function() {
        showText() ;
    });
}
function selectedItem(subsection) {
    $("#page-" + subsection + ".menu-items a").removeClass("selected") ;
    $(".menu-items a#" + subsection + "-selected").addClass("selected") ;
}
/* Loads page */
function loadPage(page, image) {
    showText() ;
    $("ul.subnav.subnav-open").removeClass("subnav-open") ;
    clearInterval(intGallery) ;
    $("#background-pages > div").stop() ;
    $("#page-body").removeClass()
    $("#background-pages > div").hide() ;
    $("#body-content > div").hide() ;
    $("#page-body").addClass("page-" + page) ;
    $("#page-" + page).show();
    if(page == "menu-wine" || page == "menu-wine-white" || page == "news") {
        $("#page-" + page + " > div").jScrollPane({showArrows:true, scrollbarWidth:16, dragMaxHeight:50}) ;
    }
    $("#background-" + image).show() ;
    $("#chef-ilias").css({'opacity':0.0}).animate({opacity:1.0}, 1500, function () {});
    $("#chef-nick").css({'opacity':0.0}).animate({opacity:1.0}, 1500, function () {});
    $("#background-" + image).css({'opacity':0.0}).animate({opacity:1.0}, 1500, function () {}) ;
    $("#background-chef div").show() ;
}
function loadImg(item) {
    $("#background-pages > div").stop() ;
    $("#background-pages > div").hide() ;
    $("#background-" + item).show() ;
    $("#background-" + item).css({'opacity':0.0}).animate({opacity:1.0}, 1500, function () {}) ;

}
/* Gift section */
function goGift() {
    $("#gift-purchase").click(function() {
        $("#body-content > div").hide() ;
        $("#page-gift-purchase").show() ;
    });
}
/* Gallery section */
function goGallery() {
    $("#background-gallery img").removeClass("active") ;
    $("#gallery-first").addClass("active") ;
    slideSwitch();
    intGallery = setInterval( "slideSwitch()", 5000 );
    $("#gallery-control").click(function() {
        if(intGallery != 0) {
            clearInterval(intGallery) ;
            intGallery = 0 ;
            $("#gallery-control").addClass("play") ;
        } else {
            slideSwitch() ;
            intGallery = setInterval( "slideSwitch()", 5000 );
            $("#gallery-control").removeClass("play") ;
        }
    });
}

/* Slideshow by Jon Raasch, mdified - http://jonraasch.com/blog/a-simple-jquery-slideshow*/

function slideSwitch() {
    var $active = $('#background-gallery img.active');

    if ( $active.length == 0 ) $active = $('#background-gallery img:last');

    var $next =  $active.next().length ? $active.next()
        : $('#background-gallery img:first');

    $active.addClass('last-active');
    $next.addClass('active') ;
    $next.css({opacity: 0.0})
        .animate({opacity: 1.0}, 1500, function() {
            $active.removeClass('active last-active');
        });
}
/* Contact section functions */

function goContact() {
    /* newsletter */
    $("#newsletter").submit(function() {
        $("#newsletter-status").html('Sending...') ;
        if(validateEmail($("#newsletter-email").val())) {
            sendNewsletter() ;
        } else {
            $("#newsletter-status").html('Please enter a valid e-mail') ;
        }
        return false ;
    });
    /* feedback */
    $("#contact").submit(function() {
        var error = 0 ;
        var errorName = '' ;
        var errorEmail = '' ;
        var errorMessage = '' ;
        $("#contact-status").html('Sending...') ;
        if(!$.trim($("#contact-name").val())) {
            error++ ;
            errorName = '- your name ' ;
        }
        if(!validateEmail($("#contact-email").val())) {
            error++ ;
            errorEmail = '- a valid e-mail ' ;
        }
        if(!$.trim($("#contact-message").val())) {
            error++ ;
            errorMessage = '- a message' ;
        }
        if(error) {
            $("#contact-status").html('Please enter ' + errorName + errorEmail + errorMessage) ;
        } else {
            sendContact() ;
        }
        return false ;
    });
}
function sendNewsletter() {
    var emailNewsletter = $("#newsletter-email").val() ;
    $.ajax({
        type: 'POST',
        url: 'contact.php',
        data: 'type=newsletter&email=' + emailNewsletter,
        success: function(result){
            if(result == 'ok') {
                $("#newsletter-status").html('Sent successfully') ;
                $("#newsletter-email").val('') ;            
            } else {
                alert('An error occurred while processing your request. Please try again later. We apollogize for the inconveniences.') ;
            }
        }
    });
}
function sendContact() {
    var emailContact = $("#contact-email").val() ;
    var nameContact = $("#contact-name").val() ;
    var messageContact = $("#contact-message").val() ;
    $.ajax({
        type: 'POST',
        url: 'contact.php',
        data: 'type=contact&email=' + emailContact + '&name=' + nameContact + '&message=' + messageContact,
        success: function(result){
            if(result == 'ok') {
                $("#contact-status").html('Sent successfully') ;
                $("#contact-name").val('') ;
                $("#contact-email").val('') ;
                $("#contact-message").val('') ;
            } else {
                alert('An error occurred while processing your request. Please try again later. We apollogize for the inconveniences.') ;
            }
        }
    });
}
function showText() {
    $("#content-background-placeholder").removeClass("hide") ;
    $("#body-content").removeClass("hide") ;
}
/* Validate E-mail */
function validateEmail(email) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if(reg.test(email)) {
        return true;
    } else {
        return false ;
    }
}
