// JavaScript Document

/*
jQuery Meerkat Plugin :: Version 1.0
Copyright (c) 2009 Jarod Taylor (http://www.jarodtaylor.com)
Licensed under the MIT (license.txt)
*/

function meerkat(options) {
        
        this.settings = {
                showMeerkatOnLoad: 'false',
                close: 'none',
                dontShow: 'none',
                dontShowExpire: 0,
                removeCookie: 'none',
                meerkatPosition: 'bottom',
                animation: 'slide',
                animationSpeed: 'slow',
                height: 'auto',
                background: 'none'
        }

        if(options){
                jQuery.extend(this.settings, options);
        }
        
        var settings = this.settings;
        var cookieExpiration = settings.dontShowExpire;
        
        function createCookie(name,value,days) {
                if (days) {
                        var date = new Date();
                        date.setTime(date.getTime()+(days*24*60*60*1000));
                        var expires = "; expires="+date.toGMTString();
                }
                else { 
                        var expires = "";
                }
                document.cookie = name+"="+value+expires+"; path=/";
        }
        
        function readCookie(name) {
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for(var i=0;i < ca.length;i++) {
                        var c = ca[i];
                        while (c.charAt(0)==' ') c = c.substring(1,c.length);
                        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
                }
                return null;
        }
        
        function eraseCookie(name) {
                createCookie(name,"",-1);
        }
        
        jQuery(settings.removeCookie).click(function(){ eraseCookie('meerkat')});
        
        if(readCookie('meerkat') != 'dontshow')
        {
                jQuery('html, body').css({'margin':'0', 'padding':'0', 'height':'100%'});
                jQuery('#meerkat').show().wrap('<div id="meerkat-wrap"><div id="meerkat-container">' + '</div></div>');
        
                jQuery('#meerkat-wrap').css({'position':'fixed', 'width':'100%', 'height': settings.height}).css(settings.meerkatPosition,"0");
                jQuery('#meerkat-container').css({'background': settings.background, 'height': settings.height});
                //Give the close and dontShow elements a cursor (there's no need to use a href)
                jQuery(settings.close+","+settings.dontShow).css({"cursor":"pointer"});
                
                
                if(jQuery.browser.msie && jQuery.browser.version <= 6){
                        jQuery('html, body').css({'height':'100%', 'width':'100%', 'overflow':'hidden'});
                        jQuery('#meerkat-wrap').css({'position':'absolute', 'bottom':'-1px'});                          
                        
                        jQuery("body").children()
                                .filter(function (index) {
                                        return jQuery(this).attr("id") != "meerkat-wrap";
                                })
                        .wrapAll('<div id="ie6-content-container">', '</div>');
                        jQuery('#ie6-content-container').css({'position':'relative', 'overflow':'auto', 'width':'100%', 'height':'100%'});
                        //Check if ie6-content-container has a scrollbar present. If it does we need to move the meerkat container over 17px
                        var element = document.getElementById('ie6-content-container');
                        if ((element.clientHeight < element.scrollHeight)&&(settings.height != 100+'%')) {
                                jQuery('#meerkat-container').css({'margin-right':'17px'});              
                        }
                        var bodyStyle = document.body.currentStyle;     
                        var bodyBgStyles = bodyStyle.backgroundColor +" "+ bodyStyle.backgroundImage +" "+ bodyStyle.backgroundRepeat +" "+ bodyStyle.backgroundAttachment +" "+ bodyStyle.backgroundPositionX +" "+ bodyStyle.backgroundPositionY;
                        jQuery('body').css({'background-image' : 'none'});
                        jQuery('#ie6-content-container').css({'background' : bodyBgStyles});
                }
                
                if((settings.animation == "slide")&&(settings.showMeerkatOnLoad != "true")){                    
                        jQuery('#meerkat-wrap').hide().slideDown(settings.animationSpeed);
                        jQuery(settings.close).click(function(){
                                jQuery("#meerkat-wrap").slideUp();                                                      
                        });
                        
                        jQuery(settings.dontShow).click(function () {
                                createCookie('meerkat','dontshow', cookieExpiration);
                                jQuery("#meerkat-wrap").slideUp();      
                        });
                } else if((settings.animation == "fade")&&(settings.showMeerkatOnLoad != "true")) {
                        jQuery('#meerkat-wrap').hide().fadeIn(settings.animationSpeed);
                        jQuery(settings.close).click(function(){
                                jQuery("#meerkat-wrap").fadeOut(settings.animationSpeed);                                                               
                        });
                        
                        jQuery(settings.dontShow).click(function () {                   
                                createCookie('meerkat','dontshow', cookieExpiration);
                                jQuery("#meerkat-wrap").fadeOut();      
                        });     
                } else if ((settings.showMeerkatOnLoad == "true")&&(settings.animation == "slide")){
                        jQuery('#meerkat-wrap').show();
                        jQuery(settings.close).click(function(){
                                jQuery("#meerkat-wrap").slideUp();                                                      
                        });
                        
                        jQuery(settings.dontShow).click(function () {
                                createCookie('meerkat','dontshow', cookieExpiration);
                                jQuery("#meerkat-wrap").slideUp();      
                        });
                } else if ((settings.showMeerkatOnLoad == "true")&&(settings.animation == "fade")){
                        jQuery('#meerkat-wrap').show();
                        jQuery(settings.close).click(function(){
                                jQuery("#meerkat-wrap").fadeOut(settings.animationSpeed);                                                               
                        });
                        
                        jQuery(settings.dontShow).click(function () {                   
                                createCookie('meerkat','dontshow', cookieExpiration);
                                jQuery("#meerkat-wrap").fadeOut();
                        });
                }
        } else {
                jQuery("#meerkat").hide();
        }
}

