/*
 * jQuery Text Read Plugin
 * Examples and documentation at: 
 * Copyright (c) 2010 AWM Interactive
 * Version: 1.0 (24/05/2010)
 * Dual licensed under the MIT and GPL licenses:
 * Requires: jQuery v1.2.6 or later
 *
 */

(function ($) {
    
    var defaults = {
        href: '#content',
        buttonUpSize: '',
        buttonDownSize: '',
        maxSize: '20px',
        minSize: '10px',
        buttonUpLineHeight: '',
        buttonDownLineHeight: '',
        maxLineHeight: '40px',
        minLineHeight: '10px;',
        buttonDefaultConstrast: '',
        buttonConstrast: '',
        contrastBackground: 'transparent|#000',
        contrastFontColor: '#333|#fff'       
    }
    
    var settings = '';
    
    /*Constructor*/
    textReadPublic = $.fn.textRead = function (option) {
        settings = $.extend(defaults,option);
        textReadPublic.init();
        return this;
    };
    
    /*Method Startup*/
    textReadPublic.init = function() {
        textReadPublic.setEvents();
    }
    
    /*Text Zoom*/
    textReadPublic.setZoomText = function() {
        size = $(settings.href).css('fontSize');
        size = size.replace('px','');
        if(parseInt(size) < parseInt(settings.maxSize.replace('px',''))) {
            $(settings.href).css('fontSize', (parseInt(size) + 2) + 'px');
        }        
    }
    
    /*Text Down Zoom*/
    textReadPublic.setDownZoomText = function() {      
        size = $(settings.href).css('fontSize');
        size = size.replace('px','');
        if(parseInt(size) > parseInt(settings.minSize.replace('px',''))) {
            $(settings.href).css('fontSize', (parseInt(size) - 2) + 'px');
        }        
    }
    
    /*Text Up Line Height*/
    textReadPublic.setUpLineHeight = function() {         
        size = $(settings.href).css('lineHeight');
        size = size.replace('px','');
    
        if(parseInt(size) < parseInt(settings.maxLineHeight.replace('px',''))) {
            $(settings.href).css('lineHeight', (parseInt(size) + 2) + 'px');
        }        
    }
    
    /*Text Down Line Height*/
    textReadPublic.setDownLineHeight = function() {         
        size = $(settings.href).css('lineHeight');
        size = size.replace('px','');
    
        if(parseInt(size) > parseInt(settings.minLineHeight.replace('px',''))) {
            $(settings.href).css('lineHeight', (parseInt(size) - 2) + 'px');
        }        
    }
    
    /*Text set Constrast*/
    textReadPublic.setDefaultContrast = function() {         
        bcks = settings.contrastBackground.split("|"); 
        colors = settings.contrastFontColor.split("|");                 
        $(settings.href).css('backgroundColor',bcks[0]);     
        $(settings.href).css('color',colors[0]); 
    }
    
    /*Text Constrast*/
    textReadPublic.setContrast = function() {         
        bcks = settings.contrastBackground.split("|"); 
        colors = settings.contrastFontColor.split("|");                 
        $(settings.href).css('backgroundColor',bcks[1]);     
        $(settings.href).css('color',colors[1]); 
    }
    
    /*EVENTS*/
    textReadPublic.setEvents = function() {
        if(settings.buttonUpSize != '') {
            $(settings.buttonUpSize).live('click', function() {              
                textReadPublic.setZoomText();
            });
        }
        if(settings.buttonDownSize != '') {
            $(settings.buttonDownSize).live('click', function() {
                textReadPublic.setDownZoomText();
            });
        }
        if(settings.buttonUpLineHeight != '') {
            $(settings.buttonUpLineHeight).live('click', function() {
                textReadPublic.setUpLineHeight();
            });
        }
        if(settings.buttonDownLineHeight != '') {
            $(settings.buttonDownLineHeight).live('click', function() {
                textReadPublic.setDownLineHeight();
            });
        }       
        if(settings.buttonDefaultConstrast != '') {
            $(settings.buttonDefaultConstrast).live('click', function() {
                textReadPublic.setDefaultContrast();
            });
        }
        if(settings.buttonConstrast != '') {
            $(settings.buttonConstrast).live('click', function() {
                textReadPublic.setContrast();
            });
        }
    }
    
})(jQuery);

  
