window.addEvents({
    'domready': function() {
        initSearchForm($$('div.search'), false);
        initContactFormHelp();
    },
    'load': function() {
    }
});

/**
 * initialises help spans on page
 * shows popup on hover, uses title tag to generate message
 * @author Rocco Janse, <rocco@efocus.nl>
 * @since 16/08/2010, version 1.0
 * @return void
 */
function initContactFormHelp() {
    
    var arrTriggers = $$('span.help');
    if (arrTriggers.length == 0) return;
  
    arrTriggers.each(function(trigger) {
        
        // get msg and remove title property
        var message = trigger.getProperty('title');
        trigger.removeProperty('title');
        
        // create popup
        var helpElement = new Element('div', {'class' : 'helppanel' });
        helpElement.set('html', message);
        
        // position and hide
        helpElement.setStyles({
            'position': 'absolute',
            'top': (trigger.getPosition().y).toInt()+'px',
            'left': (trigger.getPosition().x+20).toInt()+'px'
        });
        helpElement.fade('hide');
        
        // add functionality
        trigger.addEvents({
            'mouseenter': function() {
                helpElement.fade('in');
            },
            'mouseleave': function() {
                helpElement.fade('out');
            }
        })
        
        // add element to body
        helpElement.inject($(document.body));
    })
}

/**
* initSearchForm
*
* initializes search form handling: enter en click
*
* 
* @author Mirjam <mirjam{AT}efocus.nl>
* @author lowen <lowen{AT}efocus.nl>
* @since 1.0, 25 jun 2010
* @return void
*/

function initSearchForm(forms, isNews) {
    if (forms.length == 0) return false;
		
    forms.each(function(form) {
	
        var button = form.getElement('a.button_search');
        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({
                'keydown': function(e) {
                    if (e.key == 'enter') {
                        if (elFormfield.get('value') != '' && elFormfield.get('value') != elFormfield.defaultText) {
							e.stop();
							var newQString = createNewSearchUrl(arrFormfields);
							window.location = url + "?" + newQString.substr(1);
                       }
                    }
                }
            });
        });

        // button
        var button = form.getElements('a.button_search');
		
		//button.store(allowSubmit, false);
		var elSearchTerm = button.getParent().getElement('input.searchterm');
		
        button.addEvents({

            'click': function(e) {
               if (elSearchTerm.get('value') != '' && elSearchTerm.get('value') != elSearchTerm.retrieve('defaultText')[0]) {
					e.stop();
					var newQString = createNewSearchUrl(arrFormfields);
					window.location = url + "?" + newQString.substr(1);
				}
            },
            'keyup': function(e) {
                if (e.key == 'enter') {
	               if (elSearchTerm.get('value') != '' && elSearchTerm.get('value') != elSearchTerm.retrieve('defaultText')[0]) {
						e.stop();
						var newQString = createNewSearchUrl(arrFormfields);
						window.location = url + "?" + newQString.substr(1);
					}
                }
            }
        });

        if (isNews == true) {
            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;
        }

    });

    // paginator?
    var elPaginator = document.getElement('div.paginator_holder');
    if (elPaginator) {
        var arrPaginatorFields = elPaginator.getElements('input').combine(elPaginator.getElements('select'));

        arrPaginatorFields.each(function(elPaginatorfield) {

            var strFieldName = elPaginatorfield.get('name');
            var strFieldValue = elPaginatorfield.get('value');
            
            if (strFieldName != '' && strFieldName != null && strFieldValue != '') {
                strNewUrl += "&" + strFieldName + "=" + strFieldValue;
            }

        });
    }
    return strNewUrl;
}
