/* Settings */
// form rules
var ruleArray = {
    rules: {
        naam: {
            required: true,
            minlength: 2
        },
        email: {
            required: true,
            email: true
        },
        opmerking: "required"
    },
    messages: {
        naam: {
            required: "",
            minlength: jQuery.format("Voer minstens {0} karakters in")
        },
        email: {
            required: "",
            email: "Vul een geldig e-mail adres in"
        },
        opmerking: ""
    },
    onfocusout: true,
    onkeyup: false,
    errorClass: "important",
    highlight: function(element, errorClass){
        $(element).addClass(errorClass);
    }
};
if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(elt /*, from*/){
        var len = this.length;
        
        var from = Number(arguments[1]) || 0;
        from = (from < 0) ? Math.ceil(from) : Math.floor(from);
        if (from < 0) 
            from += len;
        
        for (; from < len; from++) {
            if (from in this &&
            this[from] === elt) 
                return from;
        }
        return -1;
    };
}
// banner image settings
var aBanners = new Array("img/banners/banner_01.jpg", "img/banners/banner_02.jpg", "img/banners/banner_03.jpg", "img/banners/banner_04.jpg", "img/banners/banner_05.jpg", "img/banners/banner_06.jpg", "img/banners/banner_07.jpg", "img/banners/banner_08.jpg", "img/banners/banner_09.jpg");

var aSlogans = new Array("#sl1", "#sl2", "#sl3");

// img preloader
function preloadImages(){
    for (var i = 0; i < aBanners.length; i++) {
        image = new Image();
        image.src = aBanners[i];
    }
}

/* ONLOAD */
$(document).ready(function(){
    $(document).pngFix();
    preloadImages();
    $("#contactform").validate(ruleArray);
    currentImage = aBanners.indexOf($("#ban1").attr('src'));
    currentSlogan = 0;
    bannerCycle();
    
    $("a.gallery").lightBox({fixedNavigation:true});
});

function bannerCycle(){
    // scroll image naar boven
    $(getCurrentImgId()).animate({
        top: -440
    }, 21000, "linear", bannerFadeOut);
    // reset andere afbeelding
    $(getOtherImgId()).css('top', 0);
}

function bannerFadeOut(){
    // voor de animatie alles goedzetten
    $(getCurrentImgId()).css({
        zIndex: 4
    });
    $(getOtherImgId()).css({
        zIndex: 3,
        display: 'block'
    });
    
    if ((currentImage + 2) % 3 == 0) {
        switchSlogans();
    }
    
    // fade image
    $(getCurrentImgId()).animate({
        opacity: "hide"
    }, 500, bannerChangeImage);
}

function bannerChangeImage(){
    // geef de volgende afbeelding een nieuwe src
    $(getCurrentImgId()).attr('src', aBanners[getNextBannerSrcId()]);
    
    // volgende afbeelding
    if (currentImage == aBanners.length - 1) 
        currentImage = 0;
    else 
        currentImage++;
    // begin weer van voor af aan
    bannerCycle();
}

function getNextBannerSrcId(){
    var cimg = currentImage;
    for (i = 0; i < 2; i++) {
        if (cimg == aBanners.length - 1) 
            cimg = 0;
        else 
            cimg++;
    }
    return cimg;
}

function switchSlogans(){
    $(aSlogans[currentSlogan]).animate({
        opacity: "hide"
    }, 800, function(){
        currentSlogan = getNextSloganSrcId(currentSlogan);
        $(aSlogans[currentSlogan]).animate({
            opacity: "show"
        }, 800);
    });
}

function getNextSloganSrcId(slid){
    cimg = slid;
    if (cimg == aSlogans.length - 1) 
        cimg = 0;
    else 
        cimg++;
    return cimg;
}

// getters
function getCurrentImgId(){
    return $("#ban1").attr('src') == aBanners[currentImage] ? "#ban1" : "#ban2";
}

function getOtherImgId(){
    return $("#ban1").attr('src') == aBanners[currentImage] ? "#ban2" : "#ban1";
}

$("a.infotop").click(function(e){
    if ($(e.target).parent()[0].className.indexOf("active") != -1) {
        $(e.target).parent().children("ul").slideUp(function(){
            $(this).parent().removeClass("active");
        });
    }
    else {
        $("li.infotop.active ul").slideUp();
        $("li.infotop.active").removeClass("active");
        $(e.target).parent().children("ul").slideDown();
        $(e.target).parent().addClass("active");
    }
});
$("#contactform input, #contactform textarea").focus(function(e){
	$(e.target).addClass("selected");
});
$("#contactform input, #contactform textarea").blur(function(e){
	$(e.target).removeClass("selected");
});
