

jQuery(function($) {
	if ($('.feedreading_blogroll_bookmarklist').length > 0){
		$.getScript("http://www.google.com/jsapi?key=ABQIAAAAPCoNrTTD-ZWJS8oi5kPDKhRXdpDJ-PBkAK8NJbzLU2ZBzpg8ARQ7qriHDPWmW8wB9WVzmCj9qDfpWg", function(){
			google.load("feeds", "1",{"callback" : initializeBR});
		});
	}
	
	//initializeBR();

			/**
			 * printf() for Javascript
			 */
			function sprintf() {
                if( sprintf.arguments.length < 2 ) {
                    return;
                }
                var data = sprintf.arguments[ 0 ];
                for( var k=1; k<sprintf.arguments.length; ++k ) {
                    switch( typeof( sprintf.arguments[ k ] ) ){
                        case 'string':
                            data = data.replace( /%s/, sprintf.arguments[ k ] );
                            break;
                        case 'number':
                            data = data.replace( /%d/, sprintf.arguments[ k ] );
                            break;
                        case 'boolean':
                            data = data.replace( /%b/, sprintf.arguments[ k ] ? 'true' : 'false' );
                            break;
                            default:
                           /// function | object | undefined
                        break;
                    }
                }
                return(data);
            }
            if( !String.sprintf ) {
            	String.sprintf = sprintf;
            }


            /**
             * generate text showing the age of the bookmark's latest post
             */
            function getAge(days, hours){
                if (days > 1) {
                    return String.sprintf("%d days ago", days);
                } else if (days==1){
                	return "yesterday ";
                } else if (days< 1 && hours > 1) {
                	return String.sprintf("%d hrs ago", hours);
                } else if (days< 1 && hours == 1) {
                	return "in the last hour";
                } else if (days < 1 && hours < 1) {
                	return "just recently";
                }
            }
            /* add age and other info to bookmark*/
            function addAge(feed, bookmark, anchor, divID, previewtoggle, last_posttitle){
                var $li =$(bookmark),
                 $a =$(anchor),
                 $toggle =$(previewtoggle),
                 $title =$(last_posttitle),
                 now = (new Date()).getTime(),
                 then = (new Date()).getTime(),
                 ageInDays,
                 ageInHours,
                 randomAge,
                 ageMsg=[],
                 $snippet,
                 entry;
                entry = feed.entries[0]
                /*,entry1= feed.entries[1] */;
                try {
                    then = new Date(entry.publishedDate).getTime();
                } catch (dateException) {
                    // do noting
                }
                
                ageInDays =  Math.floor((now-then)/(1000*60*60*24)),
                ageInHours = Math.floor((now-then)%(1000*60*60*24)/3600000);

                try {
                                         $entryTitle =$("<p></p>").html(entry.title);
                                        $a.attr({title: $entryTitle.html()});
                } catch (titleException) {
                    $a.attr({title: ""});
                }
				if (!isNaN(then)){
					// insert age into list-item to allow sorting by age of post
                    $li.attr({age:then});
				} else {
		            /* add "very old" age to bookmarks with no feed-url */
					randomAge = Math.floor(Math.random()*1000001);
					$li.attr({age:randomAge});
				}

                                if (!(isNaN(ageInDays) || isNaN(ageInHours))){
                    ageMsg.push(getAge(ageInDays, ageInHours));
					           
                                        $toggle.html(ageMsg.join('')).attr({feedurl:feed.link});
                }
                                			$title.html(entry.title);
			$title.attr( {
				href  : entry.link,
				title : $("<p></p>").html(entry.contentSnippet).html(),
				rel   : "external",
				rev   : "bookmark"
			});

			/*$title.parent().append($("<a></a>").attr({
					href : entry1.link,
					title: $("<p></p>").html(entry1.contentSnippet).html(),
					rel   : "external",
					rev   : "bookmark"
			}).html(entry1.title));*/
                                return false;
            }
            /* add "very old" age to bookmarks with no feed-url */
            function addZeroAge(zeroAgeBookmark){
                var $zali =$(zeroAgeBookmark),
                randomAge = Math.floor(Math.random()*10000001);
                if ($zali !== null ) {
                    $zali.attr({age:randomAge});
                }
                return false;
            }

            /* add jQuery-oberserver to enable mouse-clicks*/
            function addFeedControl(preview, feed, name){
                    var feedControl = new google.feeds.FeedControl();
                    feedControl.addFeed(feed, name);
                    feedControl.draw($(preview).get(0));
                    return false;
            }

			/*
			 *
			 */
            function feedreading_limit_display(){ 
            	var
                 liArray = $("#feedreading_blogroll_ > li"), liArraySingle_2 = $("#single-2_feedreading_blogroll_ > li") ;					for (var i=0; i < liArray.length; i++) { 
						if(i > -1){
	        				$(liArray[i]).css("display","none");
						}
					} 					for (var i=0; i < liArraySingle_2.length; i++) { 
						if(i > -1){
	        				$(liArraySingle_2[i]).css("display","none");
						}
					} 				return false;
        	}
        	
            /*
             * Sort the blogroll with tsort()
             */
            function feedreading_automatic_sort() { 					var $allCompleted=false, $hasCompleteAge=true, isComplete=false, $sortArray=$("#feedreading_blogroll_ >li") 
					,						$hasCompleteAgeSingle2=true, isCompleteSingle2=false, $liSortSingleArray2= $("#single-2_feedreading_blogroll_ > li") 
											;
	        		for (var i=0; i < $sortArray.length; i++) {
						var $age_ = $( $sortArray[i]).attr("age");
						if ($age_ === null || $age_ == "" || isNaN($age_)) {
							$hasCompleteAge = false;
						}
	        		}
	        		if($sortArray.length==0){
	        			$hasCompleteAge = true;
	        		}
					 
		        		for (var i=0; i < $liSortSingleArray2.length; i++) {
							var $age2 = $($liSortSingleArray2[i]).attr("age");
							if ($age2 === null || $age2 == "" || isNaN($age2)) {
								$hasCompleteAgeSingle2 = false;
							}
		        		}
						if ($hasCompleteAgeSingle2 && !isCompleteSingle2) {
							try{
							//$("#single-2_feedreading_blogroll_ > li").tsort({order:"desc",attr:"age"});
							$("#single-2_feedreading_blogroll_ > li").frbrsort(sortAlpha).appendTo("#single-2_feedreading_blogroll_");
							isCompleteSingle2=true;
							} catch (e){
							// do nothing
							}
						}
												if ($hasCompleteAge && !isComplete){
							try{
							//$("#feedreading_blogroll_ > li").tsort({order:"desc",attr:"age"});
							$("#feedreading_blogroll_ > li").frbrsort(sortAlpha).appendTo("#feedreading_blogroll_ ");							
							isComplete=true;
							} catch (e){
							// do nothing
							}
						}

						
					$allCompleted = $hasCompleteAge 
					 && 							isCompleteSingle2							;							
					if ($allCompleted) {
						clearInterval(myInterval);
																	}
									return false;
            }

	function feedreading_rolling(){
						var
							$blogroll_all= $('#feedreading_blogroll_'), $blogroll_all_size= $blogroll_all.find('li').size(), $blogroll_all_limit = ($blogroll_all_size>5)? (5): ($blogroll_all_size-1)
			 ,			$single_blogroll_2 = $('#single-2_feedreading_blogroll_'), $single_blogroll_2_size=$single_blogroll_2.find('li').size() , $single_blogroll_2_limit = ($single_blogroll_2_size>5)? (5): ($single_blogroll_2_size-1) 
						;
			
						$('#feedreading_blogroll_ > li').css("display","none");
			$blogroll_all.feedReadingBlogrollSpy($blogroll_all_limit,4000);
						
						if ($single_blogroll_2_size > 1) {
				$("#single-2_feedreading_blogroll_ > li").css("display","none");
				$single_blogroll_2.feedReadingBlogrollSpy($single_blogroll_2_limit,4000);
			}

					return false;
	}

            /*
             * add observer to blogroll()
             */
	function feedreading_category_observer() {
	    		$("ul.feedreading_blogroll_bookmarklist").bind("mouseenter",function(event){
			var $eventTarget =$(event.target);
			$eventTarget.parents(".feedreading_blogroll_bookmarklist").addClass("mouseover");
		});
		$("ul.feedreading_blogroll_bookmarklist").bind("mouseleave",function(event){
			var $eventTarget =$(event.target);
			$eventTarget.parents(".feedreading_blogroll_bookmarklist").removeClass("mouseover");
		});
		return false;
	}
					            /* call sort-function every half second */
		            var myInterval = window.setInterval(function (){feedreading_automatic_sort(); },1000);
			/* stop calling sort-function after n seconds */
			window.setTimeout(function (a,b){
				clearInterval(myInterval);
			}, 20000);
			
      function initializeBR() { 
									var 					feed26 = new google.feeds.Feed("http://www.realfoodhascurves.com/food-blog/rss.xml")
					,					feed20 = new google.feeds.Feed("http://www.fatbridesmaid.com/feed/")
					,					feed18 = new google.feeds.Feed("http://www.blogger.com/feeds/2494678166580929649/posts/default")
					,					feed19 = new google.feeds.Feed("http://operationpinkbikini.blogspot.com/feeds/posts/default")
					,					feed23 = new google.feeds.Feed("http://kristaskraziness.blogspot.com/feeds/posts/default?alt=rss")
					,					feed25 = new google.feeds.Feed("http://hogeruns.wordpress.com/feed/")
					,					feed17 = new google.feeds.Feed("http://greendogwine.com/?feed=rss2")
					,					feed24 = new google.feeds.Feed("http://brookenotonadiet.wordpress.com/feed/")
					,					feed12 = new google.feeds.Feed("http://biz319.wordpress.com/feed/")
					,					feed22 = new google.feeds.Feed("http://amysquesttoskinny.blogspot.com/feeds/posts/default")
					,feed_single222  = new google.feeds.Feed("http://amysquesttoskinny.blogspot.com/feeds/posts/default")
						,feed_single212  = new google.feeds.Feed("http://biz319.wordpress.com/feed/")
						,feed_single224  = new google.feeds.Feed("http://brookenotonadiet.wordpress.com/feed/")
						,feed_single220  = new google.feeds.Feed("http://www.fatbridesmaid.com/feed/")
						,feed_single218  = new google.feeds.Feed("http://www.blogger.com/feeds/2494678166580929649/posts/default")
						,feed_single217  = new google.feeds.Feed("http://greendogwine.com/?feed=rss2")
						,feed_single225  = new google.feeds.Feed("http://hogeruns.wordpress.com/feed/")
						,feed_single223  = new google.feeds.Feed("http://kristaskraziness.blogspot.com/feeds/posts/default?alt=rss")
						,feed_single219  = new google.feeds.Feed("http://operationpinkbikini.blogspot.com/feeds/posts/default")
						,feed_single226  = new google.feeds.Feed("http://www.realfoodhascurves.com/food-blog/rss.xml")
						;                        if($("#feedreading_bookmark_26").length > 0){
                                      feed26.load(function(result_26){
                                      if (!result_26.error) {
                                      addAge(result_26.feed, "#feedreading_bookmark_26", "#feedreading_anchor_26", "#feedreading_info_26", "#feedreading_previewtoggle_26", "#frbl_last_posttitle_26");
						} else {
                  			addZeroAge("#feedreading_bookmark_26");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_20").length > 0){
                                      feed20.load(function(result_20){
                                      if (!result_20.error) {
                                      addAge(result_20.feed, "#feedreading_bookmark_20", "#feedreading_anchor_20", "#feedreading_info_20", "#feedreading_previewtoggle_20", "#frbl_last_posttitle_20");
						} else {
                  			addZeroAge("#feedreading_bookmark_20");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_18").length > 0){
                                      feed18.load(function(result_18){
                                      if (!result_18.error) {
                                      addAge(result_18.feed, "#feedreading_bookmark_18", "#feedreading_anchor_18", "#feedreading_info_18", "#feedreading_previewtoggle_18", "#frbl_last_posttitle_18");
						} else {
                  			addZeroAge("#feedreading_bookmark_18");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_19").length > 0){
                                      feed19.load(function(result_19){
                                      if (!result_19.error) {
                                      addAge(result_19.feed, "#feedreading_bookmark_19", "#feedreading_anchor_19", "#feedreading_info_19", "#feedreading_previewtoggle_19", "#frbl_last_posttitle_19");
						} else {
                  			addZeroAge("#feedreading_bookmark_19");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_23").length > 0){
                                      feed23.load(function(result_23){
                                      if (!result_23.error) {
                                      addAge(result_23.feed, "#feedreading_bookmark_23", "#feedreading_anchor_23", "#feedreading_info_23", "#feedreading_previewtoggle_23", "#frbl_last_posttitle_23");
						} else {
                  			addZeroAge("#feedreading_bookmark_23");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_25").length > 0){
                                      feed25.load(function(result_25){
                                      if (!result_25.error) {
                                      addAge(result_25.feed, "#feedreading_bookmark_25", "#feedreading_anchor_25", "#feedreading_info_25", "#feedreading_previewtoggle_25", "#frbl_last_posttitle_25");
						} else {
                  			addZeroAge("#feedreading_bookmark_25");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_17").length > 0){
                                      feed17.load(function(result_17){
                                      if (!result_17.error) {
                                      addAge(result_17.feed, "#feedreading_bookmark_17", "#feedreading_anchor_17", "#feedreading_info_17", "#feedreading_previewtoggle_17", "#frbl_last_posttitle_17");
						} else {
                  			addZeroAge("#feedreading_bookmark_17");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_24").length > 0){
                                      feed24.load(function(result_24){
                                      if (!result_24.error) {
                                      addAge(result_24.feed, "#feedreading_bookmark_24", "#feedreading_anchor_24", "#feedreading_info_24", "#feedreading_previewtoggle_24", "#frbl_last_posttitle_24");
						} else {
                  			addZeroAge("#feedreading_bookmark_24");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_12").length > 0){
                                      feed12.load(function(result_12){
                                      if (!result_12.error) {
                                      addAge(result_12.feed, "#feedreading_bookmark_12", "#feedreading_anchor_12", "#feedreading_info_12", "#feedreading_previewtoggle_12", "#frbl_last_posttitle_12");
						} else {
                  			addZeroAge("#feedreading_bookmark_12");
              			}
                                      });}
                                                                  if($("#feedreading_bookmark_22").length > 0){
                                      feed22.load(function(result_22){
                                      if (!result_22.error) {
                                      addAge(result_22.feed, "#feedreading_bookmark_22", "#feedreading_anchor_22", "#feedreading_info_22", "#feedreading_previewtoggle_22", "#frbl_last_posttitle_22");
						} else {
                  			addZeroAge("#feedreading_bookmark_22");
              			}
                                      });}
                                          
																														// hallo
										if($("#single-2_feedreading_bookmark_22").length > 0){

										feed_single222.load(function(result_single_222){
										if (!result_single_222.error) {
											addAge(result_single_222.feed, "#single-2_feedreading_bookmark_22", "#single-2_feedreading_anchor_22", "#single-2_feedreading_info_22", "#single-2_feedreading_previewtoggle_22", "#single-2_frbl_last_posttitle_22");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_22");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_12").length > 0){

										feed_single212.load(function(result_single_212){
										if (!result_single_212.error) {
											addAge(result_single_212.feed, "#single-2_feedreading_bookmark_12", "#single-2_feedreading_anchor_12", "#single-2_feedreading_info_12", "#single-2_feedreading_previewtoggle_12", "#single-2_frbl_last_posttitle_12");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_12");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_24").length > 0){

										feed_single224.load(function(result_single_224){
										if (!result_single_224.error) {
											addAge(result_single_224.feed, "#single-2_feedreading_bookmark_24", "#single-2_feedreading_anchor_24", "#single-2_feedreading_info_24", "#single-2_feedreading_previewtoggle_24", "#single-2_frbl_last_posttitle_24");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_24");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_20").length > 0){

										feed_single220.load(function(result_single_220){
										if (!result_single_220.error) {
											addAge(result_single_220.feed, "#single-2_feedreading_bookmark_20", "#single-2_feedreading_anchor_20", "#single-2_feedreading_info_20", "#single-2_feedreading_previewtoggle_20", "#single-2_frbl_last_posttitle_20");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_20");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_18").length > 0){

										feed_single218.load(function(result_single_218){
										if (!result_single_218.error) {
											addAge(result_single_218.feed, "#single-2_feedreading_bookmark_18", "#single-2_feedreading_anchor_18", "#single-2_feedreading_info_18", "#single-2_feedreading_previewtoggle_18", "#single-2_frbl_last_posttitle_18");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_18");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_17").length > 0){

										feed_single217.load(function(result_single_217){
										if (!result_single_217.error) {
											addAge(result_single_217.feed, "#single-2_feedreading_bookmark_17", "#single-2_feedreading_anchor_17", "#single-2_feedreading_info_17", "#single-2_feedreading_previewtoggle_17", "#single-2_frbl_last_posttitle_17");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_17");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_25").length > 0){

										feed_single225.load(function(result_single_225){
										if (!result_single_225.error) {
											addAge(result_single_225.feed, "#single-2_feedreading_bookmark_25", "#single-2_feedreading_anchor_25", "#single-2_feedreading_info_25", "#single-2_feedreading_previewtoggle_25", "#single-2_frbl_last_posttitle_25");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_25");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_23").length > 0){

										feed_single223.load(function(result_single_223){
										if (!result_single_223.error) {
											addAge(result_single_223.feed, "#single-2_feedreading_bookmark_23", "#single-2_feedreading_anchor_23", "#single-2_feedreading_info_23", "#single-2_feedreading_previewtoggle_23", "#single-2_frbl_last_posttitle_23");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_23");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_19").length > 0){

										feed_single219.load(function(result_single_219){
										if (!result_single_219.error) {
											addAge(result_single_219.feed, "#single-2_feedreading_bookmark_19", "#single-2_feedreading_anchor_19", "#single-2_feedreading_info_19", "#single-2_feedreading_previewtoggle_19", "#single-2_frbl_last_posttitle_19");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_19");
											}
										});
										}
										                    										// hallo
										if($("#single-2_feedreading_bookmark_26").length > 0){

										feed_single226.load(function(result_single_226){
										if (!result_single_226.error) {
											addAge(result_single_226.feed, "#single-2_feedreading_bookmark_26", "#single-2_feedreading_anchor_26", "#single-2_feedreading_info_26", "#single-2_feedreading_previewtoggle_26", "#single-2_frbl_last_posttitle_26");
											} else {
												addZeroAge("#single-2_feedreading_bookmark_26");
											}
										});
										}
										                    																											feedreading_category_observer();
				return false;
                }


      $.fn.feedReadingBlogrollSpy = function (limit, interval) {
    	    limit = limit || 4;
    	    interval = interval || 4000;

    	    return this.each(function () {
    	        // 1. setup
    	            // capture a cache of all the list items
    	            // chomp the list down to limit li elements
    	        var $list = $(this),
    	            items = [], // uninitialised
    	            currentItem = limit,
    	            total = 0, // initialise later on
    	            height = $list.find('li:first').height();

    	        // capture the cache
    	        $list.find('li').each(function () {
    	            //items.push('<li>' + $(this).html() + '</li>');
    	            items.push($(this));
    	        });
    	        /*for (var i=0; i < li_items.length; i++){
    	            //items.push('<li>' + $(this).html() + '</li>');
    	            items.push($(this));
    	        } */

    	        total = items.length;

    	        $list.wrap('<div class="spyWrapper" />').parent().css({ height : height * (limit + 2) });

    	        $list.find('li').filter(':gt(' + (limit - 1) + ')').remove();

    	        // 2. effect
    	        function spy() {
			if(!$list.hasClass("mouseover")){
			    // insert a new item with opacity and height of zero
			    var $insert = $(items[currentItem]).css({
				height : 0,
				opacity : 0,
				display : 'none'
			    }).prependTo($list);

			    // fade the LAST item out
			    $list.find('li:last').animate({ opacity : 0}, 1000, function () {
				// increase the height of the NEW first item
				$insert.animate({ height : height }, 1000).animate({ opacity : 1 }, 1000);

				// AND at the same time - decrease the height of the LAST item
				// $(this).animate({ height : 0 }, 1000, function () {
				    // finally fade the first item in (and we can remove the last)
				    $(this).remove();
				// });
			    });

			    currentItem++;
			    if (currentItem >= total) {
				currentItem = 0;
			    }
			}
			setTimeout(spy, interval);
    	        }

    	        spy();
    	    });
    	};
    	$.fn.frbrsort = function() {
    		return this.pushStack( [].sort.apply(this, arguments), []);
    	};

    	function sortAlpha(a, b) {
    		return parseInt($(a).attr("age")) < parseInt($(b).attr("age")) ? 1 : -1;
    	};
});
            
                    