/**** Add a fade effect for use in dialogs.  Odd that it's missing from jqueryui 1.8 ****/
/* copy-pasted from effects.fade.js, itself downloaded from http://dev.jqueryui.com/attachment/ticket/4416/effects.fade.js */
$.effects.fade = function(o) {

	return this.queue(function() {

		// Create element
		var el = $(this);

		// Set options
		var speed = o.options.speed || 230;
		var mode = o.options.mode || 'show'; // Set Mode

		// Animate
		if (mode == 'show') {
			el.fadeIn(speed);
		} else {
			el.fadeOut(speed);
		};
		el.queue('fx', function() { el.dequeue(); });
		el.dequeue();
	});
};

/******** Datepicker ********/
$('.date').datepicker();

/***** use dialog boxes for a.dialog *****/
$(document).ready(function(){
	
    var cedialog = {
        'default_width' : 400,
        'default_height' : 300,
        'init' : function(){
            $('a.thickbox, a.dialog').click(function(e){
                var $link = $(this);
                cedialog.create($link);
                cedialog.current.load($link.attr('href') + ' #pagebody').dialog('open');
                e.preventDefault();
            });
            $('ul.button_menu a').button(); // often use 'buttons' to bring up dialog
        },
        'create' : function(lnk){
            var $link = $(lnk);
            var $href = $link.attr('href');
            var $qs = $href.substr($href.indexOf('?')).split('&');
            var $height = cedialog.default_height;
            var $width = cedialog.default_width;
            for(i=0;i<$qs.length;i++){
                $kv = $qs[i].split('=');
                if($kv[0]=='height' && $kv[1]) $height = parseInt($kv[1]);
                if($kv[0]=='width' && $kv[1]) $width = parseInt($kv[1]);
            }
            var $dialog = $('<div></div>')
                    .dialog({
                        autoOpen: false,
                        title: $link.attr('title'),
                        height: ($link.hasClass('use_close_button') ? $height + 150 : $height + 80),
                        width: ($width + 100),
                        modal: ($link.attr('rel') == 'modal'),
                        closeOnEscape: true,
                        show: 'fade',
                        hide: 'fade'
                    });
            if($link.hasClass('use_close_button')) {
                $dialog.dialog('option','buttons', { 'Close': function(){$dialog.dialog('close'); } });
            }
            cedialog.current = $dialog;
        },
        'current' : {}
    }    
    cedialog.init();
    
	$('form.search').live('submit',function(){
		$('.progress-text').removeClass('hidden');
		$('.loading-image').removeClass('hidden');
		$(this).find('input:submit').hide();
	});
});
