/* jQuery Cookie */
jQuery.cookie=function(key,value,options){if(arguments.length>1&&String(value)!=="[object Object]"){options=jQuery.extend({},options);if(value===null||value===undefined){options.expires=-1;}
if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
value=String(value);return(document.cookie=[encodeURIComponent(key),'=',options.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
options=value||{};var result,decode=options.raw?function(s){return s;}:decodeURIComponent;return(result=new RegExp('(?:^|; )'+encodeURIComponent(key)+'=([^;]*)').exec(document.cookie))?decode(result[1]):null;};

/* jQuery Letter By Letter Plugin */
(function($){
  $.fn.jLetterByLetter = function(options, callback) {
    
    var settings = {'text' : '', 'speed' : '30', 'delay' : '2000'};

    // If options exist, merge with settings
    if (options) { 
      $.extend(settings, options);
    }
    
    return this.each(function() {

      var $this = $(this);
      var text = (settings.text == '') ? $this.html() : settings.text;
      isInTag = false;
      i = 0;

      intervalID = setInterval(
        function() {
          
          // Stop interval once all content is displayed
          if(i > text.length) {
            clearInterval(intervalID);
            if(callback != undefined)
            {
              callback();
            }
          }

          // Check to see if we are in a html tag
          if(text.charAt(i) == '<'){ isInTag = true; }
          if(text.charAt(i) == '>'){ isInTag = false; }
          
          // If not in HTML code, display the next char
          if(!isInTag)
          {
            // Display string to far to the content area
            $this.html(text.substr(0, i));
            $this.show();
          }
          i++;
          
        }, settings.speed);
      
    });

  };
})(jQuery);
