window.addEvent('domready', function(){

    $$('input.focus-clear').addEvent('focus', function(ev){
        ev.target.value = ''; 
    });    
    

    if($('search_name')) {
	   new Autocompleter.Request.JSON($('search_name'), 'include/ajax/name_autocomplete.php', {
            'delay' : 200
	   });
	}
	
	if($('search_age')) {
        $('search_age').addEvent('change', function(ev){
            var val = $('search_age').options[$('search_age').selectedIndex].value;
            var vis = (val == 2 || val == 3);
            $('search_height_available').style.display = (!vis ? 'none' : '');
            $('search_height_unavailable').style.display = (vis ? 'none' : '');
        });
        
        $('search_age').fireEvent('change');
    }
    
    $$('.dog-result-item').addEvents({
        'mouseover': function(ev){
            this.addClass('dog-result-item-hover');
        },
        
        'mouseout': function(ev) {
            this.removeClass('dog-result-item-hover');
        }
    });
    
    $$('#dog-search-form input[type=radio][name=age]').addEvents({
        'click': toggle_height_available,
        'change': toggle_height_available
    });
    
    toggle_height_available();
});

function toggle_height_available() {
    var inputs = $$('#dog-search-form input[type=radio][name=age]');
    
    for(var i = 0; i < inputs.length; i++) {
        if(inputs[i].checked) {
            var val = inputs[i].value;
            var vis = (val != '0' && val != '1');
            $('search-height-available').style.display = (!vis ? 'none' : '');
            $('search-height-unavailable').style.display = (vis ? 'none' : '');
        }
    }
}

function convert_to_add_favorite(elm, id, token) {
    elm.removeEvents('mouseover');
    elm.removeEvents('mouseout');
    elm.removeEvents('click');
    elm.empty();
    
    img = new Element('img', {
        src: 'images/star-empty.gif',
        alt: 'Verwijderen'
    });
    
    img.inject(elm);
    elm.appendText(' Toevoegen aan favorieten');
    
    elm.addEvents({
        mouseover: function() {
            img.set('src', 'images/star-empty-add.gif');
        },
        mouseout: function() {
            img.set('src', 'images/star-empty.gif');
        },
        
        click: function() {
            new Request({
                url: 'include/ajax/favorite.php?add=' + id + '&token=' + token,
                method: 'get',
                timeout: 5000,    
                noCache: true,
                onSuccess: function(response){
                    if(response == '1') {
                        convert_to_remove_favorite(elm, id, token);
                    } else {
                        window.location.href = '?p=favorited_dogs&add=' + id + '&token=' + token;
                    }
                },
                
                onTimeout: function(){
                    window.location.href = '?p=favorited_dogs&add=' + id + '&token=' + token;
                },
                
                onFailure: function(){
                    window.location.href = '?p=favorited_dogs&add=' + id + '&token=' + token;
                }
            }).send();
            
            convert_to_loading(elm);
            
            return false;
        }
    });
}

function convert_to_remove_favorite(elm, id, token) {
    elm.removeEvents('mouseover');
    elm.removeEvents('mouseout');
    elm.removeEvents('click');
    elm.empty();
    
    img = new Element('img', {
        src: 'images/star.gif',
        alt: 'Verwijderen'
    });
    
    img.inject(elm);
    elm.appendText(' Verwijderen uit favorieten');
    
    elm.addEvents({
        mouseover: function() {
            img.set('src', 'images/star-remove.gif');
        },
        
        mouseout: function() {
            img.set('src', 'images/star.gif');
        },
        
        click: function() {
            convert_to_loading(elm);
            new Request({
                url: 'include/ajax/favorite.php?remove=' + id + '&token=' + token,
                method: 'get',
                timeout: 5000,   
                noCache: true, 
                onSuccess: function(response){
                    if(response == '1') {
                        convert_to_add_favorite(elm, id, token);
                    } else {
                        window.location.href = '?p=favorited_dogs&remove=' + id + '&token=' + token;
                    }
                },
                
                onTimeout: function(){
                    window.location.href = '?p=favorited_dogs&remove=' + id + '&token=' + token;
                },
                
                onFailure: function(){
                    window.location.href = '?p=favorited_dogs&remove=' + id + '&token=' + token;
                }
            }).send();
            
            return false;
        }
    });
}

function convert_to_loading(elm) {
    elm.removeEvents('mouseover');
    elm.removeEvents('mouseout');
    elm.removeEvents('click');
    elm.empty();
    
    new Element('img', {
        src: 'images/loading.gif',
        alt: 'Laden'
    }).inject(elm);
    
    elm.appendText(' Bezig...');
}
