window.addEvents({
    'domready': function() {
        initCenterElements();
        initFaq();
        initSearchForm();
    },
    'load': function() {

    }
});


/**
* initCenterElements
* Horizontally centers elements by comparing it to its parent element.
*
* @author Ralph Meeuws <ralph.meeuws{AT}efocus.nl>
* @return void
*/
function initCenterElements() {
	var arrCenters = $$('.center');
	if (arrCenters.length == 0) return false;

	arrCenters.each(function(elCenter) {
		var intParentWidth = elCenter.getParent().getWidth() - (elCenter.getParent().getStyle('padding-left').toInt() + elCenter.getParent().getStyle('padding-right').toInt());
		elCenter.setStyle('margin-left', (intParentWidth - elCenter.getWidth()) / 2);
	});
}


/**
* initFaq
* Adds an accordion-effect to the FAQ list.
*
* @author Ralph Meeuws <ralph.meeuws{AT}efocus.nl>
* @return void
*/
function initFaq() {
	if (!$('faq')) return false;

	new Fx.Accordion($('faq').getElements('h2'), $('faq').getElements('div.panel'), {
		show: -1,
		onActive: function(toggler) {
			$('faq').getChildren('li').removeClass('active');
			toggler.getParent().addClass('active');
		}
	});
}


/**
* initSearchForm
*
* initializes search form handling: enter en click
*
* 
* @author Mirjam <mirjam{AT}efocus.nl>
* @since 1.0, 02 dec 2009
* @return void
*/

function initSearchForm() {

    var forms = $$('div#searchresults fieldset.searchbox').combine($$('div#searchbox_holder fieldset.searchbox'));
    if (forms.length == 0) return false;

    forms.each(function(form) {

        var button = form.getElement('a.button');
        var arrFormfields = form.getElements('input').combine(form.getElements('select'));

        if (!form.getElement('input.searchUrl')) return false;
        var url = form.getElement('input.searchUrl').get('value');

        // enter in fields
        arrFormfields.each(function(elFormfield) {

            elFormfield.addEvents({
                'keypress': function(e) {
                    if (e.key == 'enter') {
                        e.stopPropagation();
                        e.preventDefault();
                        e.stop();
                        var newQString = createNewSearchUrl(arrFormfields);
                        window.location = url + "?" + newQString.substr(1);
                    }
                }
            });

        });

        // button

        button.addEvents({
            'click': function(e) {
                e.stop();
                var newQString = createNewSearchUrl(arrFormfields);
                window.location = url + "?" + newQString.substr(1);
            },
            'keyup': function(e) {
                if (e.key == 'enter') {
                    e.stop();
                    var newQString = createNewSearchUrl(arrFormfields);
                    window.location = url + "?" + newQString.substr(1);
                }
            }
        });

    });
}

/**
* createNewSearchUrl
*
* creates url from fields in specific fieldset
*
* 
* @author Mirjam <mirjam{AT}efocus.nl>
* @since 1.0, 02 dec 2009
* @return void
*/

function createNewSearchUrl(arrFormfields) {

    var strNewUrl = "";

    arrFormfields.each(function(elFormfield) {

        var strFieldName = elFormfield.get('name');
        var strFieldValue = elFormfield.get('value');

        if (strFieldName != "pageUrl" && strFieldName != "headerUrl" && strFieldName != '' && strFieldName != null && strFieldValue != '') {
            strNewUrl += "&" + strFieldName + "=" + strFieldValue;
        }

    });

    return strNewUrl;
    
}