YAHOO.util.Event.onDOMReady(function() {
    YAHOO.util.Event.addListener($E('select[name=type]'), 'change', function() {
        YAHOO.util.Dom.addClass($$('.searchFields.visible'), 'hidden');
        YAHOO.util.Dom.removeClass($$('.searchFields.' + this.value), 'hidden');
        YAHOO.util.Dom.addClass($$('.searchFields.' + this.value), 'visible');
    });

    var initial = $E('select[name=channel_id]').value;

    if (initial != 0 && $(initial)) {
        $E('select[name=category_id]').innerHTML = $(initial).innerHTML
    }

    YAHOO.util.Event.addListener($E('select[name=channel_id]'), 'change', function() {
        if ($(this.value)) {
            $E('select[name=category_id]').innerHTML = $(this.value).innerHTML
        } else {
            $E('select[name=category_id]').innerHTML = '<option value="0">Please choose a Channel first</option>';
        }
    });

    if ($('SearchPageButton')) {
        var SearchButton = new YAHOO.widget.Button('SearchPageButton');

        SearchButton.addListener('click', search);

        searchListener = new YAHOO.util.KeyListener('searchForm', {
            'keys'  : 13
        }, {
            'fn'    : search
        });

        searchListener.enable();
    }
});

function search() {
    var type    = $E('select[name=type]').value;
    var keyword = $E('input[name=keyword]').value;
    var sort    = $E('select[name=sort]').value;
    var order   = $E('select[name=order]').value;
    var city	= $E('input[name=city_nice_name]').value;
    if (keyword == '') {
        keyword = '*';
    }

    var _url = uri.link + 'search/';
    switch (type) {
        case 'text':
            redirect(_url + 'text/'+ keyword + '/' + sort + '/' + order + '/' + city);
            break;

        case 'category':
            var category   = $E('select[name=category_id]').value;

            if (category == '' || category == 0) {
                message('Error', 'Please Choose a Category');
            } else {
                redirect(_url + 'category/' + category + '/' + keyword + '/' + sort + '/' + order + '/' + city);
            }
            break;

        case 'tags':
            redirect(_url + 'tag/' + keyword + '/' + sort + '/' + order + '/' + city);
            break;
    }
}
