113 lines
3.1 KiB
JavaScript
113 lines
3.1 KiB
JavaScript
/************************************************/
|
|
/* IPB3 Javascript */
|
|
/* -------------------------------------------- */
|
|
/* ips.board.js - Board index code */
|
|
/* (c) IPS, Inc 2008 */
|
|
/* -------------------------------------------- */
|
|
/* Author: Rikki Tissier */
|
|
/************************************************/
|
|
|
|
var _search = window.IPBoard;
|
|
|
|
_search.prototype.search = {
|
|
checks: [],
|
|
|
|
/*------------------------------*/
|
|
/* Constructor */
|
|
init: function()
|
|
{
|
|
Debug.write("Initializing ips.search.js");
|
|
|
|
document.observe("dom:loaded", function(){
|
|
// set up calendars
|
|
if( $('date_start') && $('date_start_icon') )
|
|
{
|
|
$('date_start_icon').observe('click', function(e){
|
|
ipb.search.calendar_start = new CalendarDateSelect( $('date_start'), { year_range: 6, time: true, close_on_click: true } );
|
|
});
|
|
}
|
|
|
|
if( $('date_end') && $('date_end_icon') )
|
|
{
|
|
$('date_end_icon').observe('click', function(e){
|
|
ipb.search.calendar_start = new CalendarDateSelect( $('date_end'), { year_range: 6, time: true, close_on_click: true } );
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
initSearchForm: function()
|
|
{
|
|
// Get all checkboxes
|
|
$$('input.filter').each( function(check){
|
|
appID = check.identify().match('select_app_(.*)')[1];
|
|
if( appID && appID != 'all' )
|
|
{
|
|
if( $('app_filter_' + appID) )
|
|
{
|
|
$('app_filter_' + appID ).wrap('div', { id: 'app_filter_' + appID + '_wrap' } ).hide(); //Wrap it in a div because scriptaculous is funky with fieldsets
|
|
}
|
|
ipb.search.checks.push( appID );
|
|
}
|
|
$( check ).observe('click', ipb.search.doFilters );
|
|
});
|
|
|
|
if( $('author') )
|
|
{
|
|
// Autocomplete stuff
|
|
document.observe("dom:loaded", function(){
|
|
var url = ipb.vars['base_url'] + 'secure_key=' + ipb.vars['secure_hash'] + '&app=core&module=ajax§ion=findnames&do=get-member-names&name=';
|
|
var ac = new ipb.Autocomplete( $('author'), { multibox: false, url: url, templates: { wrap: ipb.templates['autocomplete_wrap'], item: ipb.templates['autocomplete_item'] } } );
|
|
});
|
|
}
|
|
},
|
|
|
|
doFilters: function(e)
|
|
{
|
|
elem = Event.element(e);
|
|
appid = elem.id.replace('select_app_', '');
|
|
|
|
//if( !ipb.search.checks.length ){ return; }
|
|
|
|
if( $( elem ) && $( elem ).id == 'select_app_all' )
|
|
{
|
|
if( $('select_app_all').checked )
|
|
{
|
|
ipb.search.checks.each( function(check){
|
|
if( $('select_app_' + check) ){
|
|
$('select_app_' + check).checked = false;
|
|
}
|
|
if( $('app_filter_' + check + '_wrap') )
|
|
{
|
|
new Effect.BlindUp( $('app_filter_' + check + '_wrap' ), { duration: 0.3 } );
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
// No change
|
|
}
|
|
}
|
|
else if( $( elem ) )
|
|
{
|
|
if( $(elem).checked )
|
|
{
|
|
// Uncheck everything
|
|
$('select_app_all').checked = false;
|
|
|
|
if( $('app_filter_' + appid + '_wrap' ) && !$('app_filter_' + appid + '_wrap').visible() )
|
|
{
|
|
new Effect.BlindDown( $('app_filter_' + appid + '_wrap' ), { duration: 0.3 } );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if( $('app_filter_' + appid + '_wrap' ) && $('app_filter_' + appid + '_wrap' ).visible() )
|
|
{
|
|
new Effect.BlindUp( $('app_filter_' + appid + '_wrap' ), { duration: 0.3 } );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ipb.search.init(); |