function Sinke()
{
    this.site = null;
    this.goldbarLeft = null;
    this.goldbarRight = null;
    this.menu = null;

    this.onDomReady = function(){
        this.site = $(document.body).getElement("div.site");

        this.goldbarLeft = new Element("div");
        this.goldbarLeft.addClass("goldbarLeft");
        this.goldbarLeft.inject(this.site,"top");

        this.goldbarRight = new Element("div");
        this.goldbarRight.addClass("goldbarRight");
        this.goldbarRight.inject(this.site,"top");

        this.menu = $(document.body).getElement("div.header ul");

        this.onWindowResize();
        this.fixMenu();
        this.fixBarItemOpeners();
        this.fixFaq();
    }

    this.onWindowResize = function(){

        var barWidth = this.site.getLeft();
        if( barWidth > 195 )
        {
            barWidth = 195;
        }
        else if( barWidth < 0 )
        {
            barWidth = 0;
        }

        this.goldbarLeft.setStyle("width",barWidth);
        this.goldbarLeft.setStyle("left",-(barWidth+1));
        this.goldbarRight.setStyle("width",barWidth);
    }

    this.fixMenu = function(){

        var activeMenuItem = $(document.body).getElement("div.site div.header ul.menu li.active");
        if( activeMenuItem == null )
        {
            this.menu.activeMenuItemLeft = -30;
            this.menu.setStyle("background-position","-30px 0px");
            return;
        }

        this.menu.activeMenuItemLeft = this.getMenuItemArrowPosition(activeMenuItem);
        this.menu.fx = new Fx.Tween(this.menu,{wait:false});
        this.menu.setStyle("background-position",this.menu.activeMenuItemLeft + "px 0px");

        var menuItems = $(document.body).getElements("div.site div.header ul.menu li");
        for( var i = 0; i < menuItems.length; i++ )
        {
            menuItems[i].instance = this;
            menuItems[i].addEvent("mouseover",function(){
                this.instance.menu.fx.start("background-position",this.instance.getMenuItemArrowPosition(this) + "px 0px")
            });
            menuItems[i].addEvent("mouseout",function(){
                this.instance.menu.fx.start("background-position",this.instance.menu.activeMenuItemLeft + "px 0px")
            });
        }
    }

    this.fixBarItemOpeners = function(){
        var barItemOpenersAccordion = new Fx.Accordion($$('dl.baritems dd div.opener'), $$('dl.baritems dd div.body'), {
            alwaysHide: true
        });
    }

    this.fixFaq = function(){
        var faqAccordion = new Fx.Accordion($$('dl.faq dd h3'), $$('dl.faq dd div'),{
            alwaysHide: true,
            onActive: function(toggler,element){
                toggler.addClass("open");
            },
            onBackground: function(toggler,element){
                toggler.removeClass("open");
            }
        });
    }

    this.getMenuItemArrowPosition = function(menuItem){
        var left = menuItem.getLeft() - this.menu.getLeft();
        left += menuItem.getWidth()/2;
        return Math.floor(left)-10;
    }

    this.frmContactSubmit = function(form){
        var sendForm = $(form).getElement("input[name=sendForm]");
        var name = $(form).getElement("input[name=name]");
        var email = $(form).getElement("input[name=email]");
        var requestMessage = $(form).getElement("textarea[name=requestMessage]");
        var submitButton = $(form).getElement("button[type=submit]");
        var buttonSubmitLoading = $(form).getElement("div.buttonSubmitLoading");

        if( (name.value = name.value.trim()).length < 2 )
        {
            alert("Vul aub uw naam in.");
            name.focus();
            return false;
        }

        if(
            ( (email.value = email.value.trim()).length < 5 ) ||
            ( email.value.indexOf("@") == -1 ) ||
            ( email.value.indexOf(".") == -1 )
        )
        {
            alert("Vul aub uw e-mailadres in.");
            email.focus();
            return false;
        }

        if( (requestMessage.value = requestMessage.value.trim()).length < 8 )
        {
            alert("Vul aub uw aanvraag in.");
            requestMessage.focus();
            return false;
        }
        
        submitButton.setStyle("display","none");
        buttonSubmitLoading.setStyle("display","block");
        sendForm.value = "True";

        return true;
    }

    this.frmOfferSubmit = function(form){
        var sendForm = $(form).getElement("input[name=sendForm]");
        var name = $(form).getElement("input[name=name]");
        var email = $(form).getElement("input[name=email]");
        var startName = $(form).getElement("input[name=startName]");
        var startCity = $(form).getElement("input[name=startCity]");
        var startAddress = $(form).getElement("input[name=startAddress]");
        var startTelephone = $(form).getElement("input[name=startTelephone]");
        var endName = $(form).getElement("input[name=endName]");
        var endCity = $(form).getElement("input[name=endCity]");
        var endAddress = $(form).getElement("input[name=endAddress]");
        var endTelephone = $(form).getElement("input[name=endTelephone]");
        var notice = $(form).getElement("textarea[name=notice]");

        var submitButton = $(form).getElement("button[type=submit]");
        var buttonSubmitLoading = $(form).getElement("div.buttonSubmitLoading");

        if( (name.value = name.value.trim()).length < 2 )
        {
            alert("Vul aub uw naam in.");
            name.focus();
            return false;
        }

        if(
            ( (email.value = email.value.trim()).length < 5 ) ||
            ( email.value.indexOf("@") == -1 ) ||
            ( email.value.indexOf(".") == -1 )
        )
        {
            alert("Vul aub uw e-mailadres in.");
            email.focus();
            return false;
        }

        if( (startName.value = startName.value.trim()).length < 2 )
        {
            alert("Vul aub de startlocatie in.");
            startName.focus();
            return false;
        }

        if( (startCity.value = startCity.value.trim()).length < 2 )
        {
            alert("Vul aub de startlocatie in.");
            startCity.focus();
            return false;
        }

        if( (startAddress.value = startAddress.value.trim()).length < 2 )
        {
            alert("Vul aub de startlocatie in.");
            startAddress.focus();
            return false;
        }

        startTelephone.value = startTelephone.value.trim();
        /*
        if( (startTelephone.value = startTelephone.value.trim()).length < 10 )
        {
            alert("Vul aub het telefoonnummer van de startlocatie in.");
            startAddress.focus();
            return false;
        }
        */

        if( (endName.value = endName.value.trim()).length < 2 )
        {
            alert("Vul aub de eindlocatie in.");
            endName.focus();
            return false;
        }

        if( (endCity.value = endCity.value.trim()).length < 2 )
        {
            alert("Vul aub de eindlocatie in.");
            endCity.focus();
            return false;
        }

        if( (endAddress.value = endAddress.value.trim()).length < 2 )
        {
            alert("Vul aub de eindlocatie in.");
            endAddress.focus();
            return false;
        }

        endTelephone.value = endTelephone.value.trim();
        /*
        if( (endTelephone.value = endTelephone.value.trim()).length < 10 )
        {
            alert("Vul aub het telefoonnummer van de eindlocatie in.");
            endTelephone.focus();
            return false;
        }
        */

        notice.value = notice.value.trim();

        submitButton.setStyle("display","none");
        buttonSubmitLoading.setStyle("display","block");
        sendForm.value = "True";

        return true;
    }
}

var sinke = new Sinke();

window.addEvent("domready",function(){
    sinke.onDomReady();
});

window.addEvent("resize",function(){
    sinke.onWindowResize();
});
