/* Modified: 12/08/2011, Marvin Carlos, restoring toggle function for Recipes Endeca Search */
/* recipes.js */

(function($) {
$.fn.toggleList = function(){ 
return this.each(function(){
var $this = $(this);$this.find("li:eq(3)").before("<li class='showLink'><a>Show More</a></li>");$this.find("li:gt(3)").hide();$this.find("li.showLink a").click(function(){
$(this).parent("li").toggleClass("less").nextAll().toggle();$(this).text($(this).text()=="Show More" ? "Show Less" : "Show More");});});};})(jQuery);
function isValidEmail(str) {
var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})$/;return (filter.test(str));}
function newsletterSignup() {
$('.nl-error').hide();$('#nl-email').focus(function() {
if (($('#nl-email').val()) == "Your email address") { $('#nl-email').val('');};});$('#nl-email').blur(function() {
if (($('#nl-email').val()) == "") { $('#nl-email').val('Your email address');};});
$('#nl-subscribe').submit(function() { 
var nlEmail = $('#nl-email').val();if (isValidEmail(nlEmail)) {
$('.nl-error').hide();$('#nl-email').val('Your email address');return true;} else {
$('.nl-error').show();$('#nl-email').focus();return false;} 
});return true;};
function initSearchBox() {
$("#sb-input").one("focus", function() {
$(this).val("").css("color","black");});
$("#categories ul:first").show();$("#categories li a").click(
function() {
var checkElement = $(this).next();if((checkElement.is("ul")) && (checkElement.is(":visible"))) {
return false;}
if((checkElement.is("ul")) && (!checkElement.is(":visible"))) {
$("#categories ul:visible").slideUp("fast");$("#categories a").removeClass("open");checkElement.slideDown("fast");checkElement.siblings().addClass("open");return false;}
}
);}

function recipe_parse_Xml(xml)
{

$(".ad170x30").before("<h3>" + $(xml).find("title:first").text() + "</h3>");
var xmlArr = [];
var body_attr = $("body").attr("id");
$(xml).find("link").each(function()
{ 
var xml_date_first = $(this).attr('id');

var full_date = new Date();full_date.setDate(full_date.getDate());var two_digit_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_date.getMonth()+1) : (full_date.getMonth()+1);
var this_date = full_date.getDate();if(this_date < 10) 
this_date = "0" + this_date;
var current_date = full_date.getFullYear() +''+ two_digit_month + '' + this_date;
if(current_date == xml_date_first) {

if (body_attr == "recipe-landing") {
$("#rotd-tout").append("<a href='" + $(this).find("url").text() + "'class='thumb'><img src='" + $(this).find("image150").attr("url") + "'width='150' height ='150' /></a>");} else {
$("#rotd-tout").append("<a href='" + $(this).find("url").text() + "'class='thumb'><img src='" + $(this).find("image").attr("url") + "'width='75' height ='75' /></a>");}

$("#rotd-tout").append("<b>" + $(this).find("title").text() + "</b>");$("#rotd-tout").append("<p>" + $(this).find("deck").text() + "</p>");$("#rotd-tout").append("<a class='view-recipe' href='" + $(this).find("url").text() + "'>" + $(xml).find("mainLinkText").text() + "</a>");$("#before_jquery_typelist_recipe").before("<h4>" + $(xml).find("moreTitle").text() + "</h4>");
}


var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-3);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) :(full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() +''+ two_digit_next_month +''+ this_next_date;if(next_date == xml_date_first) {
$("#jquery_typelist_recipe").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");
}

var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-2);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) : (full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() + '' + two_digit_next_month + ''+ this_next_date;if(next_date == xml_date_first) {

$("#jquery_typelist_recipe").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");

}


var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-1);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) :(full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() + '' + two_digit_next_month + '' + this_next_date;if(next_date == xml_date_first) {


$("#jquery_typelist_recipe").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");
}
});$("#moreLinkUrl_recipe").append("<a class='rotd thousands' href='" + $(xml).find("moreLinkUrl").text() + "'> Search Thousands of Recipes</a></li>");}



function drink_parse_Xml(xml)
{
$(".xotd-tout").before("<h3>" + $(xml).find("title:first").text() + "</h3>");
var xmlArr = [];
var body_attr = $("body").attr("id");
$(xml).find("link").each(function()
{ 
var xml_date_first = $(this).attr('id');

var full_date = new Date();full_date.setDate(full_date.getDate());var two_digit_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_date.getMonth()+1) : (full_date.getMonth()+1);
var this_date = full_date.getDate();if(this_date < 10) 
this_date = "0" + this_date;
var current_date = full_date.getFullYear()+''+ two_digit_month+''+ this_date;
if(current_date == xml_date_first) {


$(".xotd-tout").append("<a href='" + $(this).find("url").text() + "'class='thumb'><img src='" + $(this).find("image").attr("url") + "'width='75' height ='75' /></a>");
$(".xotd-tout").append("<b>" + $(this).find("title").text() + "</b>");$(".xotd-tout").append("<p>" + $(this).find("deck").text() + "</p>");$(".xotd-tout").append("<a class='view-recipe' href='" + $(this).find("url").text() + "'>" + $(xml).find("mainLinkText").text() + "</a>");

}


var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-3);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) : (full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear()+''+two_digit_next_month +''+ this_next_date;if(next_date == xml_date_first) {
$("#jquery_typelist_drink").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");
}

var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-2);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1): (full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() +''+ two_digit_next_month +''+ this_next_date;if(next_date == xml_date_first) {

$("#jquery_typelist_drink").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");

}


var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-1);var two_digit_next_month = ((full_date.getMonth()+1) < 10)? '0' + (full_next_date.getMonth()+1) :(full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() +''+ two_digit_next_month +''+ this_next_date;if(next_date == xml_date_first) {


$("#jquery_typelist_drink").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");
}
});
}





function drink_parse_Xml(xml)
{
$(".xotd-tout").before("<h3>" + $(xml).find("title:first").text() + "</h3>");
var xmlArr = [];
var body_attr = $("body").attr("id");
$(xml).find("link").each(function()
{ 
var xml_date_first = $(this).attr('id');

var full_date = new Date();full_date.setDate(full_date.getDate());var two_digit_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_date.getMonth()+1) : (full_date.getMonth()+1);
var this_date = full_date.getDate();if(this_date < 10) 
this_date = "0" + this_date;
var current_date = full_date.getFullYear() +''+ two_digit_month +''+ this_date;
if(current_date == xml_date_first) {


$(".xotd-tout").append("<a href='" + $(this).find("url").text() + "'class='thumb'><img src='" + $(this).find("image").attr("url") + "'width='75' height ='75' /></a>");
$(".xotd-tout").append("<b>" + $(this).find("title").text() + "</b>");$(".xotd-tout").append("<p>" + $(this).find("deck").text() + "</p>");$(".xotd-tout").append("<a class='view-recipe' href='" + $(this).find("url").text() + "'>" + $(xml).find("mainLinkText").text() + "</a>");

}


var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-3);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) : (full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() +''+ two_digit_next_month +''+ this_next_date;if(next_date == xml_date_first) {
$("#jquery_typelist_drink").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");
}

var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-2);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) : (full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() +''+ two_digit_next_month +''+ this_next_date;if(next_date == xml_date_first) {

$("#jquery_typelist_drink").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");

}


var full_next_date = new Date();
full_next_date.setDate(full_next_date.getDate()-1);var two_digit_next_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_next_date.getMonth()+1) :(full_next_date.getMonth()+1);
var this_next_date = full_next_date.getDate();if(this_next_date < 10) 
this_next_date = "0" + this_next_date;

var next_date = full_next_date.getFullYear() +'' + two_digit_next_month + ''+ this_next_date;if(next_date == xml_date_first) {


$("#jquery_typelist_drink").prepend("<li><a href='" + $(this).find("url").text() + "'>" + $(this).find("title").text() + "</a></li>");
}
});
}

/*!
* jCarousel - Riding carousels with jQuery
* http://sorgalla.com/jcarousel/
*
* Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*
* Built on top of the jQuery library
* http://jquery.com
*
* Inspired by the "Carousel Component" by Bill Scott
* http://billwscott.com/carousel/
*/

(function(g){var q={vertical:!1,rtl:!1,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,setupCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,animationStepCallback:null,buttonNextHTML:"<div></div>",buttonPrevHTML:"<div></div>",buttonNextEvent:"click",buttonPrevEvent:"click", buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},m=!1;g(window).bind("load.jcarousel",function(){m=!0});g.jcarousel=function(a,c){this.options=g.extend({},q,c||{});this.autoStopped=this.locked=!1;this.buttonPrevState=this.buttonNextState=this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===void 0)this.options.rtl=(g(a).attr("dir")||g("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical? this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),f=0;f<d.length;f++)if(d[f].indexOf("jcarousel-skin")!=-1){g(a).removeClass(d[f]);b=d[f];break}a.nodeName.toUpperCase()=="UL"||a.nodeName.toUpperCase()=="OL"?(this.list=g(a),this.clip=this.list.parents(".jcarousel-clip"),this.container=this.list.parents(".jcarousel-container")):(this.container=g(a),this.list=this.container.find("ul,ol").eq(0),this.clip=this.container.find(".jcarousel-clip"));if(this.clip.size()===0)this.clip= this.list.wrap("<div></div>").parent();if(this.container.size()===0)this.container=this.clip.wrap("<div></div>").parent();b!==""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('<div class=" '+b+'"></div>');this.buttonPrev=g(".jcarousel-prev",this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null)this.buttonPrev=g(this.options.buttonPrevHTML).appendTo(this.container);this.buttonPrev.addClass(this.className("jcarousel-prev"));this.buttonNext= g(".jcarousel-next",this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null)this.buttonNext=g(this.options.buttonNextHTML).appendTo(this.container);this.buttonNext.addClass(this.className("jcarousel-next"));this.clip.addClass(this.className("jcarousel-clip")).css({position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"});!this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,b=this.list.children("li"),e=this;if(b.size()>0){var h=0,i=this.options.offset;b.each(function(){e.format(this,i++);h+=e.dimension(this,j)});this.list.css(this.wh,h+100+"px");if(!c||c.size===void 0)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display", "block");this.funcNext=function(){e.next()};this.funcPrev=function(){e.prev()};this.funcResize=function(){e.resizeTimer&&clearTimeout(e.resizeTimer);e.resizeTimer=setTimeout(function(){e.reload()},100)};this.options.initCallback!==null&&this.options.initCallback(this,"init");!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})):this.setup()};var f=g.jcarousel;f.fn=f.prototype={jcarousel:"0.2.8"};f.fn.extend=f.extend=g.extend;f.fn.extend({setup:function(){this.prevLast= this.prevFirst=this.last=this.first=null;this.animating=!1;this.tail=this.resizeTimer=this.timer=null;this.inTail=!1;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start,!0);this.prevFirst=this.prevLast=null;this.animate(a,!1);g(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize);this.options.setupCallback!==null&&this.options.setupCallback(this)}},reset:function(){this.list.empty();this.list.css(this.lt, "0px");this.list.css(this.wh,"10px");this.options.initCallback!==null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=!1;this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(f){b+=a.dimension(this, c);f+1<a.first&&(d=b)});this.list.css(this.wh,b+"px");this.list.css(this.lt,-d+"px")}this.scroll(this.first,!1)},lock:function(){this.locked=!0;this.buttons()},unlock:function(){this.locked=!1;this.buttons()},size:function(a){if(a!==void 0)this.options.size=a,this.locked||this.buttons();return this.options.size},has:function(a,c){if(c===void 0||!c)c=a;if(this.options.size!==null&&c>this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return!1}return!0}, get:function(a){return g(">.jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,p=g(c);if(b.length===0)for(var j,e=f.intval(a),b=this.create(a);;){if(j=this.get(--e),e<=0||j.length){e<=0?this.list.prepend(b):j.after(b);break}}else d=this.dimension(b);p.get(0).nodeName.toUpperCase()=="LI"?(b.replaceWith(p),b=p):b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);p=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible): null;d=this.dimension(b,p)-d;a>0&&a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))-d+"px");this.list.css(this.wh,f.intval(this.list.css(this.wh))+d+"px");return b},remove:function(a){var c=this.get(a);if(c.length&&!(a>=this.first&&a<=this.last)){var b=this.dimension(c);a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+b+"px");c.remove();this.list.css(this.wh,f.intval(this.list.css(this.wh))-b+"px")}},next:function(){this.tail!==null&&!this.inTail?this.scrollTail(!1): this.scroll((this.options.wrap=="both"||this.options.wrap=="last")&&this.options.size!==null&&this.last==this.options.size?1:this.first+this.options.scroll)},prev:function(){this.tail!==null&&this.inTail?this.scrollTail(!0):this.scroll((this.options.wrap=="both"||this.options.wrap=="first")&&this.options.size!==null&&this.first==1?this.options.size:this.first-this.options.scroll)},scrollTail:function(a){if(!this.locked&&!this.animating&&this.tail){this.pauseAuto();var c=f.intval(this.list.css(this.lt)), c=!a?c-this.tail:c+this.tail;this.inTail=!a;this.prevFirst=this.first;this.prevLast=this.last;this.animate(c)}},scroll:function(a,c){!this.locked&&!this.animating&&(this.pauseAuto(),this.animate(this.pos(a),c))},pos:function(a,c){var b=f.intval(this.list.css(this.lt));if(this.locked||this.animating)return b;this.options.wrap!="circular"&&(a=a<1?1:this.options.size&&a>this.options.size?this.options.size:a);for(var d=this.first>a,g=this.options.wrap!="circular"&&this.first<=1?1:this.first,j=d?this.get(g): this.get(this.last),e=d?g:g-1,h=null,i=0,k=!1,l=0;d?--e>=a:++e<a;){h=this.get(e);k=!h.length;if(h.length===0&&(h=this.create(e).addClass(this.className("jcarousel-item-placeholder")),j[d?"before":"after"](h),this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size)))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)));j=h;l=this.dimension(h);k&&(i+=l);if(this.first!==null&&(this.options.wrap=="circular"||e>=1&&(this.options.size===null||e<= this.options.size)))b=d?b+l:b-l}for(var g=this.clipping(),m=[],o=0,n=0,j=this.get(a-1),e=a;++o;){h=this.get(e);k=!h.length;if(h.length===0){h=this.create(e).addClass(this.className("jcarousel-item-placeholder"));if(j.length===0)this.list.prepend(h);else j[d?"before":"after"](h);if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)))}j=h;l=this.dimension(h);if(l===0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...");this.options.wrap!="circular"&&this.options.size!==null&&e>this.options.size?m.push(h):k&&(i+=l);n+=l;if(n>=g)break;e++}for(h=0;h<m.length;h++)m[h].remove();i>0&&(this.list.css(this.wh,this.dimension(this.list)+i+"px"),d&&(b-=i,this.list.css(this.lt,f.intval(this.list.css(this.lt))-i+"px")));i=a+o-1;if(this.options.wrap!="circular"&&this.options.size&&i>this.options.size)i=this.options.size;if(e>i){o=0;e=i;for(n=0;++o;){h=this.get(e--);if(!h.length)break;n+=this.dimension(h);if(n>=g)break}}e=i-o+ 1;this.options.wrap!="circular"&&e<1&&(e=1);if(this.inTail&&d)b+=this.tail,this.inTail=!1;this.tail=null;if(this.options.wrap!="circular"&&i==this.options.size&&i-o+1>=1&&(d=f.intval(this.get(i).css(!this.options.vertical?"marginRight":"marginBottom")),n-d>g))this.tail=n-g-d;if(c&&a===this.options.size&&this.tail)b-=this.tail,this.inTail=!0;for(;a-- >e;)b+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=e;this.last=i;return b},animate:function(a,c){if(!this.locked&& !this.animating){this.animating=!0;var b=this,d=function(){b.animating=!1;a===0&&b.list.css(b.lt,0);!b.autoStopped&&(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size===null||b.last<b.options.size||b.last==b.options.size&&b.tail!==null&&!b.inTail)&&b.startAuto();b.buttons();b.notify("onAfterAnimation");if(b.options.wrap=="circular"&&b.options.size!==null)for(var c=b.prevFirst;c<=b.prevLast;c++)c!==null&&!(c>=b.first&&c<=b.last)&&(c<1||c>b.options.size)&&b.remove(c)};this.notify("onBeforeAnimation");if(!this.options.animation||c===!1)this.list.css(this.lt,a+"px"),d();else{var f=!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},d={duration:this.options.animation,easing:this.options.easing,complete:d};if(g.isFunction(this.options.animationStepCallback))d.step=this.options.animationStepCallback;this.list.animate(f,d)}}},startAuto:function(a){if(a!==void 0)this.options.auto=a;if(this.options.auto===0)return this.stopAuto();if(this.timer===null){this.autoStopped= !1;var c=this;this.timer=window.setTimeout(function(){c.next()},this.options.auto*1E3)}},stopAuto:function(){this.pauseAuto();this.autoStopped=!0},pauseAuto:function(){if(this.timer!==null)window.clearTimeout(this.timer),this.timer=null},buttons:function(a,c){if(a==null&&(a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last<this.options.size),!this.locked&&(!this.options.wrap||this.options.wrap=="first")&&this.options.size!==null&& this.last>=this.options.size))a=this.tail!==null&&!this.inTail;if(c==null&&(c=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1),!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1))c=this.tail!==null&&this.inTail;var b=this;this.buttonNext.size()>0?(this.buttonNext.unbind(this.options.buttonNextEvent+".jcarousel",this.funcNext),a&&this.buttonNext.bind(this.options.buttonNextEvent+".jcarousel",this.funcNext), this.buttonNext[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?!1:!0),this.options.buttonNextCallback!==null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a)):this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(b,null,a);this.buttonPrev.size()>0?(this.buttonPrev.unbind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev), c&&this.buttonPrev.bind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),this.buttonPrev[c?"removeClass":"addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?!1:!0),this.options.buttonPrevCallback!==null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)):this.options.buttonPrevCallback!==null&&this.buttonPrevState!=c&&this.options.buttonPrevCallback(b,null,c);this.buttonNextState= a;this.buttonPrevState=c},notify:function(a){var c=this.prevFirst===null?"init":this.prevFirst<this.first?"next":"prev";this.callback("itemLoadCallback",a,c);this.prevFirst!==this.first&&(this.callback("itemFirstInCallback",a,c,this.first),this.callback("itemFirstOutCallback",a,c,this.prevFirst));this.prevLast!==this.last&&(this.callback("itemLastInCallback",a,c,this.last),this.callback("itemLastOutCallback",a,c,this.prevLast));this.callback("itemVisibleInCallback",a,c,this.first,this.last,this.prevFirst, this.prevLast);this.callback("itemVisibleOutCallback",a,c,this.prevFirst,this.prevLast,this.first,this.last)},callback:function(a,c,b,d,f,j,e){if(!(this.options[a]==null||typeof this.options[a]!="object"&&c!="onAfterAnimation")){var h=typeof this.options[a]=="object"?this.options[a][c]:this.options[a];if(g.isFunction(h)){var i=this;if(d===void 0)h(i,b,c);else if(f===void 0)this.get(d).each(function(){h(i,this,d,b,c)});else for(var a=function(a){i.get(a).each(function(){h(i,this,a,b,c)})},k=d;k<=f;k++)k!== null&&!(k>=j&&k<=e)&&a(k)}}},create:function(a){return this.format("<li></li>",a)},format:function(a,c){for(var a=g(a),b=a.get(0).className.split(" "),d=0;d<b.length;d++)b[d].indexOf("jcarousel-")!=-1&&a.removeClass(b[d]);a.addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+c)).css({"float":this.options.rtl?"right":"left","list-style":"none"}).attr("jcarouselindex",c);return a},className:function(a){return a+" "+a+(!this.options.vertical?"-horizontal":"-vertical")}, dimension:function(a,c){var b=g(a);if(c==null)return!this.options.vertical?b.outerWidth(!0)||f.intval(this.options.itemFallbackDimension):b.outerHeight(!0)||f.intval(this.options.itemFallbackDimension);else{var d=!this.options.vertical?c-f.intval(b.css("marginLeft"))-f.intval(b.css("marginRight")):c-f.intval(b.css("marginTop"))-f.intval(b.css("marginBottom"));g(b).css(this.wh,d+"px");return this.dimension(b)}},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-f.intval(this.clip.css("borderLeftWidth"))- f.intval(this.clip.css("borderRightWidth")):this.clip[0].offsetHeight-f.intval(this.clip.css("borderTopWidth"))-f.intval(this.clip.css("borderBottomWidth"))},index:function(a,c){if(c==null)c=this.options.size;return Math.round(((a-1)/c-Math.floor((a-1)/c))*c)+1}});f.extend({defaults:function(a){return g.extend(q,a||{})},intval:function(a){a=parseInt(a,10);return isNaN(a)?0:a},windowLoaded:function(){m=!0}});g.fn.jcarousel=function(a){if(typeof a=="string"){var c=g(this).data("jcarousel"),b=Array.prototype.slice.call(arguments, 1);return c[a].apply(c,b)}else return this.each(function(){var b=g(this).data("jcarousel");b?(a&&g.extend(b.options,a),b.reload()):g(this).data("jcarousel",new f(this,a))})}})(jQuery);

/*!
* Feature Carousel, Version 1.2.1
* http://www.bkosolutions.com
*
* Copyright 2011 Brian Osborne
* Licensed under GPL version 3
* brian@bkosborne.com
*
* http://www.gnu.org/licenses/gpl.txt
*/
(function($) {

$.fn.featureCarousel = function (options) {

options = $.extend({}, $.fn.featureCarousel.defaults, options || {});
return $(this).each(function () {

/* These are univeral values that are used throughout the plugin. Do not modify them
* unless you know what you're doing. Most of them feed off the options
* so most customization can be achieved by modifying the options values */
var pluginData = {
currentCenterNum: options.startingFeature,
containerWidth: 0,
containerHeight: 0,
largeFeatureWidth: 0,
largeFeatureHeight: 0,
smallFeatureWidth: 0,
smallFeatureHeight: 0,
totalFeatureCount: $(this).children("div").length,
currentlyMoving: false,
featuresContainer: $(this),
featuresArray: [],
containerIDTag: "#"+$(this).attr("id"),
timeoutVar: null,
rotationsRemaining: 0,
itemsToAnimate: 0,
borderWidth: 0
};
preload(function () {
setupFeatureDimensions();setupCarousel();setupFeaturePositions();setupTrackers();initiateMove(true,1);});
/**
* Function to preload the images in the carousel if desired.
* This is not recommended if there are a lot of images in the carousel because
* it may take a while. Functionality does not depend on preloading the images
*/
function preload(callback) {
if (options.preload == true) {
var $imageElements = pluginData.featuresContainer.find("img");var loadedImages = 0;var totalImages = $imageElements.length;
$imageElements.each(function () {
$(this).load(function () {
loadedImages++;if (loadedImages == totalImages) {
callback();}
});
if (this.complete || $.browser.msie) {
$(this).trigger('load');}
});} else {
callback();}
}

function getContainer(featureNum) {
return pluginData.featuresArray[featureNum-1];}

function getBySetPos(position) {
$.each(pluginData.featuresArray, function () {
if ($(this).data().setPosition == position)
return $(this);});}

function getPreviousNum(num) {
if ((num - 1) == 0) {
return pluginData.totalFeatureCount;} else {
return num - 1;}
}

function getNextNum(num) {
if ((num + 1) > pluginData.totalFeatureCount) {
return 1;} else {
return num + 1;}
}

/**
* Because there are several options the user can set for the width and height
* of the feature images, this function is used to determine which options were set
* and to set the appropriate dimensions used for a small and large feature
*/
function setupFeatureDimensions() {
pluginData.containerWidth = pluginData.featuresContainer.width();pluginData.containerHeight = pluginData.featuresContainer.height();
var $firstFeatureImage = $(pluginData.containerIDTag).find(".carousel-image:first");
if (options.largeFeatureWidth > 1)
pluginData.largeFeatureWidth = options.largeFeatureWidth;else if (options.largeFeatureWidth > 0 && options.largeFeatureWidth < 1)
pluginData.largeFeatureWidth = $firstFeatureImage.width() * options.largeFeatureWidth;else
pluginData.largeFeatureWidth = $firstFeatureImage.outerWidth();if (options.largeFeatureHeight > 1)
pluginData.largeFeatureHeight = options.largeFeatureHeight;else if (options.largeFeatureHeight > 0 && options.largeFeatureHeight < 1)
pluginData.largeFeatureHeight = $firstFeatureImage.height() * options.largeFeatureHeight;else
pluginData.largeFeatureHeight = $firstFeatureImage.outerHeight();if (options.smallFeatureWidth > 1)
pluginData.smallFeatureWidth = options.smallFeatureWidth;else if (options.smallFeatureWidth > 0 && options.smallFeatureWidth < 1)
pluginData.smallFeatureWidth = $firstFeatureImage.width() * options.smallFeatureWidth;else
pluginData.smallFeatureWidth = $firstFeatureImage.outerWidth() / 2;if (options.smallFeatureHeight > 1)
pluginData.smallFeatureHeight = options.smallFeatureHeight;else if (options.smallFeatureHeight > 0 && options.smallFeatureHeight < 1)
pluginData.smallFeatureHeight = $firstFeatureImage.height() * options.smallFeatureHeight;else
pluginData.smallFeatureHeight = $firstFeatureImage.outerHeight() / 2;}

/**
* Function to take care of setting up various aspects of the carousel,
* most importantly the default positions for the features
*/
function setupCarousel() {
if (options.displayCutoff > 0 && options.displayCutoff < pluginData.totalFeatureCount) {
pluginData.totalFeatureCount = options.displayCutoff;}

pluginData.featuresContainer.find(".carousel-feature").each(function (index) {
if (index < pluginData.totalFeatureCount) {
pluginData.featuresArray[index] = $(this);}
});
if (pluginData.featuresContainer.find(".carousel-feature").first().css("borderLeftWidth") != "medium") {
pluginData.borderWidth = parseInt(pluginData.featuresContainer.find(".carousel-feature").first().css("borderLeftWidth"))*2;}

pluginData.featuresContainer
.find(".carousel-feature").each(function () {
$(this).css({
'left': (pluginData.containerWidth / 2) - (pluginData.smallFeatureWidth / 2) - (pluginData.borderWidth / 2),
'width': pluginData.smallFeatureWidth,
'height': pluginData.smallFeatureHeight,
'top': options.smallFeatureOffset + options.topPadding,
'opacity': 0
});})
.find(".carousel-image").css({
'width': pluginData.smallFeatureWidth
});
if (options.captionBelow) {
pluginData.featuresContainer.find('.carousel-caption').css('position','relative');}

if (pluginData.totalFeatureCount < 4) {
pluginData.itemsToAnimate = pluginData.totalFeatureCount;} else {
pluginData.itemsToAnimate = 4;}

pluginData.featuresContainer.find(".carousel-caption")
.hide();}

/**
* Here all the position data is set for the features.
* This is an important part of the carousel to keep track of where
* each feature within the carousel is
*/
function setupFeaturePositions() {
$.each(pluginData.featuresArray, function (i) {
$(this).data('setPosition',i+1);});
var oneBeforeStarting = getPreviousNum(options.startingFeature);pluginData.currentCenterNum = oneBeforeStarting;
var $centerFeature = getContainer(oneBeforeStarting);$centerFeature.data('position',1);
var $prevFeatures = $centerFeature.prevAll();$prevFeatures.each(function (i) {
$(this).data('position',(pluginData.totalFeatureCount - i));});
var $nextFeatures = $centerFeature.nextAll();$nextFeatures.each(function (i) {
if ($(this).data('setPosition') != undefined) {
$(this).data('position',(i + 2));}
});
if (options.counterStyle == 'caption') {
$.each(pluginData.featuresArray, function () {
var pos = getPreviousNum($(this).data('position'));var $numberTag = $("<span></span>");$numberTag.addClass("numberTag");$numberTag.html("("+ pos + " of " + pluginData.totalFeatureCount + ") ");$(this).find('.carousel-caption p').prepend($numberTag);});}
}

/**
* This function will set up the two different types of trackers used
*/
function setupTrackers()
{
if (options.trackerIndividual) {
var $list = $("<ul></ul>");$list.addClass("tracker-individual-container");for (var i = 0;i < pluginData.totalFeatureCount;i++) {
var counter = i+1;
var $trackerBlip = $("<div>"+counter+"</div>");$trackerBlip.addClass("tracker-individual-blip");$trackerBlip.css("cursor","pointer");$trackerBlip.attr("id","tracker-"+(i+1));var $listEntry = $("<li></li>");$listEntry.append($trackerBlip);$listEntry.css("float","left");$listEntry.css("list-style-type","none");$list.append($listEntry);}
$(pluginData.containerIDTag).append($list);$list.hide().show();}

if (options.trackerSummation) {
var $tracker = $('<div></div>');$tracker.addClass('tracker-summation-container');var $current = $('<span></span>').addClass('tracker-summation-current').text(options.startingFeature);var $total = $('<span></span>').addClass('tracker-summation-total').text(pluginData.totalFeatureCount);var $middle = $('<span></span>').addClass('tracker-summation-middle').text(' of ');$tracker.append($current).append($middle).append($total);$(pluginData.containerIDTag).append($tracker);}
}

function updateTracker(oldCenter, newCenter) {
if (options.trackerIndividual) {
var $trackerContainer = pluginData.featuresContainer.find(".tracker-individual-container");var $oldCenter = $trackerContainer.find("#tracker-"+oldCenter);var $newCenter = $trackerContainer.find("#tracker-"+newCenter);
$oldCenter.removeClass("tracker-individual-blip-selected");$newCenter.addClass("tracker-individual-blip-selected");}

if (options.trackerSummation) {
var $trackerContainer = pluginData.featuresContainer.find('.tracker-summation-container');$trackerContainer.find('.tracker-summation-current').text(newCenter);}
}

/**
* This function will set the autoplay for the carousel to
* automatically rotate it given the time in the options
* pass in TRUE to just clear the timer
*/
function setTimer(stop) {
clearTimeout(pluginData.timeoutVar);
if (!stop && options.autoPlay != 0) {
var autoTime = (Math.abs(options.autoPlay) < options.carouselSpeed) ? options.carouselSpeed : Math.abs(options.autoPlay);pluginData.timeoutVar = setTimeout(function () {
(options.autoPlay > 0) ? initiateMove(true,1) : initiateMove(false,1);}, autoTime);}
}


function rotatePositions(direction) {
$.each(pluginData.featuresArray, function () {
var newPos;if (direction == false) {
newPos = getNextNum($(this).data().position);} else {
newPos = getPreviousNum($(this).data().position);}
$(this).data('position',newPos);});}

function rotateTitleAndLinks(t, l, d) {
$("#recipe-title").html(t);$("#recipe-title").attr("href", l);$("#recipe-dek").html(d);$("#lead a.view-recipe").attr("href", l);}

/**
* This function is used to animate the given feature to the given
* location. Valid locations are "left", "right", "center", "hidden"
*/ 
function animateFeature($feature, direction)
{
var new_width, new_height, new_top, new_left, new_zindex, new_padding, new_fade;var oldPosition = $feature.data('position');var newPosition;if (direction == true)
newPosition = getPreviousNum(oldPosition);else
newPosition = getNextNum(oldPosition);
if (oldPosition == 1) {
options.leavingCenter($feature);}

if (newPosition == 1) {

newTitle = $feature.find(".new-title").text();newLink = $feature.find("a").attr("href");newDek = $feature.find(".new-dek").text();rotateTitleAndLinks(newTitle, newLink, newDek);
new_width = pluginData.largeFeatureWidth;new_height = pluginData.largeFeatureHeight;new_top = options.topPadding;new_zindex = $feature.css("z-index");new_left = (pluginData.containerWidth / 2) - (pluginData.largeFeatureWidth / 2) - (pluginData.borderWidth / 2);new_fade = 1.0;} else {
new_width = pluginData.smallFeatureWidth;new_height = pluginData.smallFeatureHeight;new_top = options.smallFeatureOffset + options.topPadding;new_zindex = 1;new_fade = 1;if (newPosition == pluginData.totalFeatureCount) {
new_left = options.sidePadding;} else if (newPosition == 2) {
new_left = pluginData.containerWidth - pluginData.smallFeatureWidth - options.sidePadding - pluginData.borderWidth;} else {
new_left = (pluginData.containerWidth / 2) - (pluginData.smallFeatureWidth / 2) - (pluginData.borderWidth / 2);new_fade = 0;}

}
if (oldPosition == 1) {
$feature.find(".carousel-caption")
.hide();
}

$feature
.animate(
{
width: new_width,
height: new_height,
top: new_top,
left: new_left,
opacity: new_fade
},
options.carouselSpeed,
options.animationEasing,
function () {
if (newPosition == 1) {
if (options.captionBelow)
$feature.css('height','auto');$feature.find(".carousel-caption")
.fadeTo("fast",1);// old value: 0.85
options.movedToCenter($feature);} 
pluginData.rotationsRemaining = pluginData.rotationsRemaining - 1;$feature.css("z-index", new_zindex);
if (options.trackerIndividual || options.trackerSummation) {
if (newPosition == 1) {
var newCenterItemNum = pluginData.featuresContainer.find(".carousel-feature").index($feature) + 1;var oldCenterItemNum;if (direction == false)
oldCenterItemNum = getNextNum(newCenterItemNum);else
oldCenterItemNum = getPreviousNum(newCenterItemNum);updateTracker(oldCenterItemNum, newCenterItemNum);}
}

var divide = pluginData.rotationsRemaining / pluginData.itemsToAnimate;if (divide % 1 == 0) {
pluginData.currentlyMoving = false;rotatePositions(direction);
if (pluginData.rotationsRemaining > 0)
move(direction);}

setTimer(false);}
)
.find('.carousel-image')
.animate({
width: new_width,
height: new_height
},
options.carouselSpeed,
options.animationEasing)
.end();
}

/**
* move the carousel to the left or to the right. The features that
* will move into the four positions are calculated and then animated
* rotate to the RIGHT when direction is TRUE and
* rotate to the LEFT when direction is FALSE
*/
function move(direction)
{

pluginData.currentlyMoving = true;
var $newCenter, $newLeft, $newRight, $newHidden;if (direction == true) {
$newCenter = getContainer(getNextNum(pluginData.currentCenterNum));$newLeft = getContainer(pluginData.currentCenterNum);$newRight = getContainer(getNextNum(getNextNum(pluginData.currentCenterNum)));$newHidden = getContainer(getPreviousNum(pluginData.currentCenterNum));pluginData.currentCenterNum = getNextNum(pluginData.currentCenterNum);} else {
$newCenter = getContainer(getPreviousNum(pluginData.currentCenterNum));$newLeft = getContainer(getPreviousNum(getPreviousNum(pluginData.currentCenterNum)));$newRight = getContainer(pluginData.currentCenterNum);$newHidden = getContainer(getNextNum(pluginData.currentCenterNum));pluginData.currentCenterNum = getPreviousNum(pluginData.currentCenterNum);}

if (direction) {
$newLeft.css("z-index", 3);} else {
$newRight.css("z-index", 3);}
$newCenter.css("z-index", 4);
animateFeature($newLeft, direction);animateFeature($newCenter, direction);animateFeature($newRight, direction);if (pluginData.totalFeatureCount > 3) {
animateFeature($newHidden, direction);}
}

function initiateMove(direction, rotations) {
if (pluginData.currentlyMoving == false) {
var queue = rotations * pluginData.itemsToAnimate;pluginData.rotationsRemaining = queue;move(direction);}
}

/**
* This will find the shortest distance to travel the carousel from
* one position to another position. It will return the shortest distance
* in number form, and will be positive to go to the right and negative for left
*/
function findShortestDistance(from, to) {
var goingToLeft = 1, goingToRight = 1, tracker;tracker = from;while ((tracker = getPreviousNum(tracker)) != to) {
goingToLeft++;}

tracker = from;while ((tracker = getNextNum(tracker)) != to) {
goingToRight++;}

return (goingToLeft < goingToRight) ? goingToLeft*-1 : goingToRight;}

$(options.leftButtonTag).live('click',function () {
initiateMove(false,1);});
$(options.rightButtonTag).live('click',function () {
initiateMove(true,1);});
pluginData.featuresContainer.find(".carousel-feature")
.click(function () {
var position = $(this).data('position');if (position == 2) {
initiateMove(true,1);} else if (position == pluginData.totalFeatureCount) {
initiateMove(false,1);}
})
.mouseover(function () {
if (pluginData.currentlyMoving == false) {
var position = $(this).data('position');if (position == 2 || position == pluginData.totalFeatureCount) {
$(this).css("opacity",1);}
}
if (options.pauseOnHover) setTimer(true);if (options.stopOnHover) options.autoPlay = 0;})
.mouseout(function () {
if (pluginData.currentlyMoving == false) {
var position = $(this).data('position');if (position == 2 || position == pluginData.totalFeatureCount) {
$(this).css("opacity",1);}
}
if (options.pauseOnHover) {
setTimer(false);}
});
$("a", pluginData.containerIDTag).live("click", function (event) {
var $parents = $(this).parentsUntil(pluginData.containerIDTag);$parents.each(function () {
var position = $(this).data('position');if (position != undefined) {
if (position != 1) {
if (position == pluginData.totalFeatureCount) {
initiateMove(false,1);} else if (position == 2) {
initiateMove(true,1);}
event.preventDefault();return false;} else {
options.clickedCenter($(this));}
}
});});
$(".tracker-individual-blip").live("click",function () {
var goTo = $(this).attr("id").substring(8);var whereIsIt = pluginData.featuresContainer.find(".carousel-feature").eq(goTo-1).data('position');var currentlyAt = pluginData.currentCenterNum;if (goTo != currentlyAt) {
var shortest = findShortestDistance(1, whereIsIt);if (shortest < 0) {
initiateMove(false,(shortest*-1));} else {
initiateMove(true,shortest);}
}

});});};
$.fn.featureCarousel.defaults = {
largeFeatureWidth : 0,
largeFeatureHeight: 0,
smallFeatureWidth: .75,
smallFeatureHeight: .75,
topPadding: 0,
sidePadding: 35,
smallFeatureOffset: 20,
startingFeature: 1,
carouselSpeed: 1000,
autoPlay: 5000,
pauseOnHover: true,
stopOnHover: false,
trackerIndividual: false,
trackerSummation: false,
preload: true,
displayCutoff: 0,
animationEasing: 'swing',
leftButtonTag: '#carousel-right',
rightButtonTag: '#carousel-left',
captionBelow: false,
movedToCenter: $.noop,
leavingCenter: $.noop,
clickedCenter: $.noop
};
})(jQuery);



$(document).ready(function() {

newsletterSignup();
$("#carousel").featureCarousel();
initSearchBox();
var recipesFromDivs = $("div.recipes-from").size();var sponsorNum = "#recipe-landing #rf-sponsor" + Math.floor(Math.random()*recipesFromDivs + 1);$(sponsorNum).css("display","block");
$("#belt-carousel").jcarousel({ 
wrap: 'circular',
scroll: 1
});

var full_date = new Date();full_date.setDate(full_date.getDate());
var two_digit_month = ((full_date.getMonth()+1) < 10) ? '0' + (full_date.getMonth()+1) : (full_date.getMonth()+1);var path_to_xml = full_date.getFullYear()+''+two_digit_month;
$.ajax({
type: "GET",
async: false,
url: xmlHost + "/health/xml/daily-widget/0,,rotd-" + path_to_xml + ",00.xml",
dataType: "xml",
success: recipe_parse_Xml
});
$.ajax({
type: "GET",
async: false,
url: xmlHost + "/health/xml/daily-widget/0,,dotd-" + path_to_xml + ",00.xml",
dataType: "xml",
success: drink_parse_Xml
});
$("#print-recipe").attr("title", "[Opens in new window]").bind("click", function(){
var popup = window.open($(this).attr("href"), "_blank", "height=500,width=600,scrollbars=yes");popup.focus();return false;});
});

