(function($){
  $.fn.testimonials = function(PageToLoad,selector,settings) {
    var config = {cookieName : 'testimonials',nullVal : 0,quoteElem : 'blockquote'}
        ,$testimonials
        ,$this = this;
    if (settings) $.extend(config,settings);
    
    var cookie = {
      get : function(cookieName) {
        var results = document.cookie.match('(^|;) ?' +cookieName+ '=([^;]*)(;|$)');
        if (results) return unescape(results[2]);
        else return null;
      },
      set : function(name,value,date) {
        var cookieString = name + "=" + escape(value);
        if(date) cookieString += ";expires=" + date.toGMTString();
        document.cookie = cookieString;
      },
      del : function(cookieName) {
        var expirationDate = new Date();
        expirationDate.setTime(expirationDate.getTime() - 1);
        cookie.set(cookieName,null,expirationDate);
      }
    }
    
    this.load([PageToLoad,selector,config.quoteElem].join(' '),function(){
      $testimonials = $this.find(config.quoteElem);
      var testimonialCookie = cookie.get(config.cookieName);
      if(testimonialCookie){
        testimonialCookie = parseInt(testimonialCookie) + 1;
        if(testimonialCookie>=$testimonials.length) {
          $testimonials.first().show();
          cookie.set(config.cookieName,config.nullVal);
        }else{
          $($testimonials.get(testimonialCookie)).show();
          cookie.set(config.cookieName,testimonialCookie);
        }
      } else {
        $testimonials.first().show();
        cookie.set(config.cookieName,config.nullVal);
      }
    });
    
    return this;
  }
})(jQuery);
