function fixCollapseableRegisterForm()
{
    var elements = $(document.body).getElements("div.boxed div.contentholder.collapseable fieldset");
    for( var i = 0; i < elements.length; i++ )
    {
        elements[i].requiredHeight = elements[i].getHeight();
        elements[i].fx = new Fx.Tween(elements[i],{wait:false});
        elements[i].fx.set("height",20);
        elements[i].currentIndex = i;
        
        var selects = elements[i].getChildren("select");
        
        for( var j = 0; j < selects.length; j++ )
        {
            selects[j].currentIndex = i;
            selects[j].addEvent("change",function(e){
                openNextCollapseableRegisterFormFieldset(this.currentIndex);
            });
        }

        var radiobuttons = elements[i].getElements("input[type=radio]");
        for( j = 0; j < radiobuttons.length; j++ )
        {
            radiobuttons[j].currentIndex = i;
            radiobuttons[j].addEvent("mouseup",function(e){
                e = new Event(e);
                e.stop();
                openNextCollapseableRegisterFormFieldset(this.currentIndex);
            });
        }

        var label = elements[i].getElement("label");
        label.currentIndex = i;
        label.addEvent("click",function(){
            openNextCollapseableRegisterFormFieldset(this.currentIndex-1);
        });
    }

    openNextCollapseableRegisterFormFieldset(-1);
}

function fixLoginPopup()
{
    var loginHere = $("loginHere");
    if( loginHere == null )
    {
        return;
    }

    loginHere.addEvent("click",function(){
        
        this.addClass("visible");

		  if (document.getElementById('indexNotice')) {
			document.getElementById('indexNotice').style.display='none';
		  }
    });
}

function openNextCollapseableRegisterFormFieldset(currentIndex)
{
    var elements = $(document.body).getElements("div.boxed div.contentholder.collapseable fieldset");
    /*
    for( var i = 0; i < elements.length; i++ )
    {
        if( elements[i].hasClass("missingFormValue") == false )
        {
            elements[i].fx.start("height",20);
        }
    }
    */
    if( currentIndex+1 < elements.length )
    {
        elements[currentIndex+1].fx.start("height",elements[currentIndex+1].requiredHeight);
    }
}

function openCollapseableRegisterFormFieldset(index)
{
    var elements = $(document.body).getElements("div.boxed div.contentholder.collapseable fieldset");
    if( index < elements.length )
    {
        if( elements[index].hasClass("missingFormValue") == false )
        {
            elements[index].fx.start("height",elements[index].requiredHeight);
        }
    }
}

function onWindowClick(e)
{
    e = new Event(e);

    var el = $(e.target);
    
    while( el != null )
    {
        if( el.hasClass("loginbox") == true )
        {
            return false;
        }
        el = el.getParent();
    }

    var loginHere = $("loginHere");
    if( loginHere == null )
    {
        return;
    }

    loginHere.removeClass("visible");
}

function getSelectedRadio(buttonGroup)
{
    // returns the array number of the selected radio button or -1 if no button is selected
    if( buttonGroup[0] )
    {
        for( var i = 0; i < buttonGroup.length; i++ )
        {
            if( buttonGroup[i].checked )
            {
                return i
            }
        }
    }
    else
    {
        if( buttonGroup.checked )
        {
            return 0;
        }
    }

    return -1;
}

function getSelectedRadioValue(buttonGroup)
{
    var i = getSelectedRadio(buttonGroup);
    if( i == -1 )
    {
        return "";
    }
    else
    {
        if( buttonGroup[i] )
        {
            return buttonGroup[i].value;
        }
        else
        {
            return buttonGroup.value;
        }
    }
}

function markLabelAsMissingForElement(el)
{
    var parent = el.getParent();
    parent.addClass("missingFormValue");
}

function registerSubmit(form)
{
    var nickname = form.getElement("input[name=nickname]");
    var password = form.getElement("input[name=wachtwoord1]");
    var password2 = form.getElement("input[name=wachtwoord2]");
    var emailAddress = form.getElement("input[name=email]");
    var state = form.getElement("select[name=woonplaats]");
    var birth_day = form.getElement("select[name=dd]");
    var birth_month = form.getElement("select[name=mm]");
    var birth_year = form.getElement("select[name=jjjj]");
    var sex = form.getElements("input[name=geslacht]");
    var length = form.getElement("select[name=lengte]");
    var body = form.getElements("input[name=gewicht]");
    var eyes = form.getElements("input[name=kleur_ogen]");
    var education = form.getElements("input[name=opleiding]");
    var skin = form.getElements("input[name=huidskleur]");
    var hair = form.getElements("input[name=kleur_haar]");
    var smoking = form.getElements("input[name=roken]");
    var piercing = form.getElements("input[name=piercing]");
    var tattoo = form.getElements("input[name=tattoo]");
    var sexpref = form.getElements("input[name=sex_voorkeur]");
    var relationship = form.getElements("input[name=relatie]");
    var sm = form.getElements("input[name=sm]");
    var fsize = form.getElements("input[name=bh]");
    var msize = form.getElements("input[name=penis]");
    var shaved = form.getElements("input[name=geschoren]");
    var code = form.getElement("input[name=code]");

    var missingFormValueElements = $(document.body).getElements(".missingFormValue");
    for( var i = 0; i < missingFormValueElements.length; i++ )
    {
        missingFormValueElements[i].removeClass("missingFormValue");
    }

    var missingFields = false;

    if( (nickname.value = nickname.value.trim()).length < 2 )
    {
        openCollapseableRegisterFormFieldset(nickname.currentIndex);
        markLabelAsMissingForElement(nickname);
        missingFields = true;
    }

    if( ( password.value.length < 4 ) || ( password.value != password2.value ))
    {
        openCollapseableRegisterFormFieldset(password.currentIndex);
        markLabelAsMissingForElement(password);
        openCollapseableRegisterFormFieldset(password2.currentIndex);
        markLabelAsMissingForElement(password2);
        missingFields = true;
    }

    if(
        ( (emailAddress.value = emailAddress.value.trim()).length < 2 )||
        ( emailAddress.value.indexOf("@") == -1 ) ||
        ( emailAddress.value.indexOf(".") == -1 )
    )
    {
        openCollapseableRegisterFormFieldset(emailAddress.currentIndex);
        markLabelAsMissingForElement(emailAddress);
        missingFields = true;
    }

    if( state.value == "" )
    {
        openCollapseableRegisterFormFieldset(state.currentIndex);
        markLabelAsMissingForElement(state);
        missingFields = true;
    }

    if( birth_day.value == "" )
    {
        openCollapseableRegisterFormFieldset(birth_day.currentIndex);
        markLabelAsMissingForElement(birth_day);
        missingFields = true;
    }
    else if( birth_month.value == "" )
    {
        openCollapseableRegisterFormFieldset(birth_month.currentIndex);
        markLabelAsMissingForElement(birth_month);
        missingFields = true;
    }

    else if( birth_year.value == "" )
    {
        openCollapseableRegisterFormFieldset(birth_year.currentIndex);
        markLabelAsMissingForElement(birth_year);
        missingFields = true;
    }

    if( getSelectedRadioValue(sex) == "" )
    {
        openCollapseableRegisterFormFieldset(sex[0].currentIndex);
        markLabelAsMissingForElement(sex[0]);
        missingFields = true;
    }    

    if( length.value == "" )
    {
        openCollapseableRegisterFormFieldset(length.currentIndex);
        markLabelAsMissingForElement(length);
        missingFields = true;
    }

    if( getSelectedRadioValue(body) == "" )
    {
        openCollapseableRegisterFormFieldset(body[0].currentIndex);
        markLabelAsMissingForElement(body[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(eyes) == "" )
    {
        openCollapseableRegisterFormFieldset(eyes[0].currentIndex);
        markLabelAsMissingForElement(eyes[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(education) == "" )
    {
        openCollapseableRegisterFormFieldset(education[0].currentIndex);
        markLabelAsMissingForElement(education[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(skin) == "" )
    {
        openCollapseableRegisterFormFieldset(skin[0].currentIndex);
        markLabelAsMissingForElement(skin[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(hair) == "" )
    {
        openCollapseableRegisterFormFieldset(hair[0].currentIndex);
        markLabelAsMissingForElement(hair[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(smoking) == "" )
    {
        openCollapseableRegisterFormFieldset(smoking[0].currentIndex);
        markLabelAsMissingForElement(smoking[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(piercing) == "" )
    {
        openCollapseableRegisterFormFieldset(piercing[0].currentIndex);
        markLabelAsMissingForElement(piercing[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(tattoo) == "" )
    {
        openCollapseableRegisterFormFieldset(tattoo[0].currentIndex);
        markLabelAsMissingForElement(tattoo[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(sexpref) == "" )
    {
        openCollapseableRegisterFormFieldset(sexpref[0].currentIndex);
        markLabelAsMissingForElement(sexpref[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(relationship) == "" )
    {
        openCollapseableRegisterFormFieldset(relationship[0].currentIndex);
        markLabelAsMissingForElement(relationship[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(sm) == "" )
    {
        openCollapseableRegisterFormFieldset(sm[0].currentIndex);
        markLabelAsMissingForElement(sm[0]);
        missingFields = true;
    }

    if(( getSelectedRadioValue(fsize) == "" ) && ( getSelectedRadioValue(msize) == "" ))
    {
        openCollapseableRegisterFormFieldset(fsize[0].currentIndex);
        openCollapseableRegisterFormFieldset(msize[0].currentIndex);
        markLabelAsMissingForElement(fsize[0]);
        markLabelAsMissingForElement(msize[0]);
        missingFields = true;
    }

    if( getSelectedRadioValue(shaved) == "" )
    {
        openCollapseableRegisterFormFieldset(shaved[0].currentIndex);
        markLabelAsMissingForElement(shaved[0]);
        missingFields = true;
    }

    if( missingFields == true )
    {
        alert("Niet alle velden zijn ingevuld.");
        return false;
    }

    if( (code.value = code.value.trim()).length < 4 )
    {
        alert("Vul aub de veiligheidscode in.");
        code.focus();
        return false;
    }
    
    return trie;
}

function fixHomeScroller()
{
    var scrollContainer = $(document.body).getElement("dl.listing dd.scrollcontainer");
    var scroller = $(document.body).getElement("dl.listing dd.scrollcontainer dl.scroller");
    var scrollMore = $(document.body).getElement("dl.listing dd.more");
    if(( scrollContainer == null ) || ( scroller == null ) || ( scrollMore == null ))
    {
        return;
    }

    var elements = scroller.getElements("dd");
    var numElements = elements.length;

    scroller.setStyle("width",numElements*121);
    scroller.fx = new Fx.Tween(scroller,{wait:false});

    scrollMore.scroller = scroller;
    scrollMore.currentRight = 0;
    scrollMore.addEvent("click",function(){
        if( (scrollMore.currentRight -= 120) < -this.scroller.getWidth()+(120*4) )
        {
            scrollMore.currentRight = 0;
        }
        this.scroller.fx.start("right",scrollMore.currentRight);
        return false;
    });
    
}

window.addEvent("domready",function(){
    fixCollapseableRegisterForm();
    fixLoginPopup();
    fixHomeScroller();

    $(document.body).addEvent("click",function(e){
        onWindowClick(e);
    });
});
