/* jQuery Accessibility Plugin (ability) - A jQuery plugin to provide accessibility functions
 * Author: Tane Piper (digitalspaghetti@gmail.com)
 * Website: http://code.google.com/p/ability/
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
 *
 * === Changelog ===
 * Version 1.0 (20/07/2007)
 * Initial version.
 * Modifies text size to one of 4 CSS styles
 * Change page Style
 * Reset function
 */
(function($) {

    $.fn.extend({
    /* ability: function(settings)
     * The constructor method
     * Example: $().ability();
     */
        ability: function(settings) {
            var version = "0.1";
            /* Default Settings*/
            settings = jQuery.extend({
                textsizer: true,
                textsizeclasses: ['m', 'l', 'xl'],
                savecookie: true
            },settings);

            return this.each(function(){
                controlbox = this;
                    
                var output = '';
                var classPrepend = 'textsize-';

                var curtextsize = jQuery.cookie('textsize');

                if (settings.textsizer == true) {
                    if (curtextsize) { jQuery('body').removeClass().addClass(curtextsize); }
                    var textsizer = '<div class="fontsize"><h4 id="schriftgroesse">Schrift vergrößern:</h4>';
             
                    $.each(settings.textsizeclasses, function()
                    {
                        textsizer += '<a href="#" class="' + classPrepend + this + '">A</a>'
                    }); 
                    textsizer += '</div>';
                    output += textsizer;
                }

                jQuery(controlbox).html(output);

                jQuery('.fontsize a').bind('click', function(ev){
                    var cl = jQuery(this).attr('class');
                    var size = cl.replace(classPrepend, '');
                    $.each(settings.textsizeclasses, function(index, value)
                    {
                        $('body').removeClass(value);
                    });
                    
                    $('body').addClass(size);
                    
                    if (settings.savecookie == true) {
                        jQuery.cookie('textsize', size, { expires: 365, path: '/' } );
                    }
                    
                    ev.preventDefault();
                });
            });
        }
    });
})(jQuery);
