/**
 * Info tooltips
 */

window.addEvent( 'domready', function() {
    initBouwsteenTips();
});

function initBouwsteenTips() {
    $$('a.bouwsteenlink').each (function (el,i) {
        if (el.retrieve ('tip:text') == undefined) {
            var bouwsteen_id = el.get ('bouwsteen_id');
            el.store ('tip:text', 'html/bouwsteen/info?id='+bouwsteen_id);
        }
    });

    var tips = new Tips ('a.bouwsteenlink', {
        className: 'bouwsteenTip',
        fixed: true,
        hideDelay: 500,
        showDelay: 800
    });

    tips.addEvent ('show', function(tipcontainer) {
        //alert(tip.get('tip:title'));
        tipcontainer.getChildren('.tip').each(function (tip, i) {
            tip.getChildren('.tip-text').each(function (tiptext, i) {
                var url = tiptext.get('html');
                tiptext.set('html', 'Laden...')

                tiptext.set('load', {method: 'get'});
                tiptext.load(url);
            });
        });
    });
}


/**
 * Sortable list
 */

var studentsortlist = false;
window.addEvent( 'domready', initSortList);
function initSortList() {
    if ($('studentsortlist')) {
        studentsortlist = new SortList({
            elements: $$('#studentsortlist .sortlist_item'),
            sortLinks: $$('#studentsortlist .sorttagselect'),
            sortTag: 'voornaam',
            sortDirection: 'up'
        });
    }
    if ($('opdrachtenlijst')) {
        var opdrachtsortlist = new SortList({
            elements: $$('#opdrachtenlijst .sortlist_item'),
            sortLinks: $$('#opdrachtenlijst .sorttagselect'),
            sortTag: 'titel',
            sortDirection: 'up'
        });
    }
}


/**
 * Search Overlay functies
 */

var search_overlay = false;
var search_overlay_cache = {};

function search( value, filter ) {
    if( value == "" ) {
        search_overlay.set( { styles: { display: 'none'} } );
        return;
    }

    search_overlay.set( { styles: { display: 'block'} } );

    var cache_id = value + ',' + filter;
    if( $chk( search_overlay_cache[ cache_id ] ) ) {
        search_overlay.set( 'html', search_overlay_cache[ cache_id ] );
        search_overlay.retrieve('onLoad')();
    } else {
        search_overlay.set( 'html', '<center><img src="assets/img/ajax.gif" /></center>' );

        search_overlay.store( 'search', value );
        search_overlay.store( 'filter', filter );
        search_overlay.store( 'cache_id', cache_id );
        var currentModuleId = search_overlay.retrieve( 'currentModuleId');
        search_overlay.load( 'html/index/search?search='+encodeURIComponent( value )+'&filter='+encodeURIComponent( filter )+'&currentModuleId='+encodeURIComponent( currentModuleId ) );
    }
}

function search_filter(filter) {
    var value = $('search_bar_value').get('value');

    $('search_filter').set('value', filter);
    search( value, filter );
}

/**
 * Zoek functies
 */
 
var searchTimeOut = false
 
window.addEvent( 'domready', function() {
    if( $('right_column') ) {
        search_overlay = new Element( 'div', {
            'id': 'overlay_search',
            'class': 'overlay_search' } ).inject( $('right_column') );

        $( document.body ).addEvent( 'click', function(event) {
            //search_overlay.set( { styles: { display: 'none'} } );
            //this.hide();
            var coord = search_overlay.getCoordinates();
            if ((event.page.x < coord.left) ||
                (event.page.x > coord.right) ||
                (event.page.y < coord.top) ||
                (event.page.y > coord.bottom)) {
                search_overlay.hide();
            }
    	}, true);

        search_overlay.store( 'onLoad', function(event) {
            $(this).getElements('.search_filter').addEvent('click', function(event) {
                search_filter($(this).get('filtername'));
                new Event(event).stop();
            });
            search_overlay.show();
        }.bind( search_overlay ));
        search_overlay.get( 'load' ).addEvent( 'success', function( responseTree, responseElements, responseHTML ) {
            search_overlay_cache[ this.retrieve( 'cache_id' ) ] = responseHTML;
            search_overlay.retrieve('onLoad')();
        }.bind( search_overlay ) );
        
        new OverText( $('search_bar_value') );

        $('search_bar_form').addEvent( 'submit', function(e) {
            e.stop();

            search( $('search_bar_value').get('value') );
        } );

        $('search_bar_value').addEvent( 'keyup', function(e) {
            e.stop();

            if( $chk( searchTimeOut ) ) {
                $clear( searchTimeOut );
            }
            var value = $('search_bar_value').get('value');
                    var filter = $('search_filter').get('value');
            searchTimeOut = search.delay( 400, false, new Array( value, filter ) );
        } );

        var currentModuleId = $('search_bar_form').getAttribute('currentModuleId');
        search_overlay.store('currentModuleId', currentModuleId);
    }
} );

function make_blocks_clickable() {
    $$('.block').each( function(obj) {
        var a = obj.getElement('a');
        if( a ) {

            var dis = obj.getElement('.disabled');
            if( dis ) {
               obj.addClass( 'block_disabled' );
               obj.set( 'title', 'Niet beschikbaar in deze demo' );
            } else {
               obj.addClass( 'block_hover' );
               obj.addEvent( 'click', function() {
                  document.location.href = $('base').get('href') + a.get('href');
               });
            }
        }
    });
}

iqLIB.addEvent('preShowQuestion', function(q) {
    iqLIB.setWrapper( 'main' );
    $('left_column').setStyles( { visibility: 'hidden'} );
    $('right_column').setStyles( { visibility: 'hidden'} );
} );

iqLIB.addEvent('showQuestion', function(q) {
   q.getWindow('question').getElement().setStyles({left: 42, top: (screen.height<1000?-68:0)});
});

