(function(a){a.cwFeedPlayer=function(d,c){var e={development:false,url:null,flashplayer:null,webtrends:null};
var b=this;
b.$element=a(d);
b.init=function(){if(c){a.extend(e,c)
}if(window.console&&console.debug&&e.development){b.development=true
}b.ios=navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/);
b.$error=a("<p />").addClass("message error").css({display:"none"}).prependTo(b.$element);
b.$warning=a("<p />").addClass("message warning").css({display:"none"}).prependTo(b.$element);
b.fetchFeed()
};
b.fetchFeed=function(){if(e.url){b.$element.addClass("ready loading");
a.ajax({type:"get",url:e.url,dataType:(a.browser.msie?"text":"xml"),success:function(g){if(typeof g=="string"){var f=new ActiveXObject("Microsoft.XMLDOM");
f.async=false;
f.loadXML(g);
b.$feed=a(f)
}else{b.$feed=a(g)
}if(b.$feed.find("category").length==0||b.$feed.find("item").length==0){b.$warning.text("Feed player currently has no configured items, please try again later.").fadeIn();
b.$element.removeClass("ready loading")
}else{b.renderCategories()
}},error:function(h,f,g){b.$error.text("Feed player could not load XML configuration"+(f!=""?" ("+f+")":"")+", please try again later.").fadeIn();
b.$element.removeClass("ready loading")
}})
}else{b.$error.text("Feed player currently has no URL configured.").fadeIn()
}};
b.renderCategories=function(){b.debug("Rendering categories");
b.$categories=a("<ul />").addClass("categories").appendTo(b.$element);
var f="";
b.$feed.find("category").each(function(g){var h=a(this);
b.debug("Found category "+h.attr("name"));
f+='<li><a data-index="'+g+'">'+h.attr("name")+"</a></li>"
});
b.$categories.html(f);
b.$categories.find("a").click(b.renderCategory);
b.$categories.find("li:first a").click()
};
b.renderCategory=function(){var j=a(this);
b.debug("Rendering category "+j.text());
if(b.$film&&b.$film.find(".player").length>0){jwplayer("player").remove();
b.$film.html("")
}b.$categories.find("a").removeClass("active");
j.addClass("active");
b.$warning.fadeOut();
if(!b.$carousel){b.$carousel=a("<div />").addClass("carousel").appendTo(b.$element);
b.$next=a("<a />").addClass("navigation next").text("Next").attr("title","Next").appendTo(b.$carousel);
b.$previous=a("<a />").addClass("navigation previous").text("previous").attr("title","Previous").appendTo(b.$carousel);
b.$films=a("<ul />").addClass("films").appendTo(b.$carousel).wrap(a("<div />"))
}var f="";
var i=b.$feed.find("category:eq("+j.attr("data-index")+")");
var g=i.children();
if(g.length>0){var k=null;
g.each(function(){var l=b.$feed.find('item[id="'+a(this).attr("id")+'"]');
if(!k){k=l.attr("id")
}f+='<li><a data-id="'+l.attr("id")+'" title="'+l.attr("title")+'"><img src="'+l.find("media posterThumb").attr("url")+'" width="54px" height="80px" /></a></li>'
});
b.$films.html(f);
var h=b.$films.children().length;
if(h>0&&h>8){b.$carousel.show().find("div").jCarouselLite({btnNext:".carousel .next",btnPrev:".carousel .previous",visible:8,scroll:8});
b.$next.show();
b.$previous.show()
}else{b.$films.removeAttr("style");
b.$next.hide();
b.$previous.hide()
}b.$films.find("a").click(b.renderFilm);
b.$films.find('a[data-id="'+k+'"]').click()
}else{b.$films.html(f);
b.$carousel.hide();
b.$warning.text("Feed player currently has no films configured in this category, please try again later.").fadeIn()
}};
b.renderFilm=function(){if(jwplayer("player")){jwplayer("player").stop()
}var l=a(this);
b.debug("Rendering film "+l.attr("title"));
b.$warning.fadeOut();
if(!b.$film){b.$film=a("<div />").addClass("film").appendTo(b.$element)
}var g="";
var k=b.$feed.find('item[id="'+l.attr("data-id")+'"]');
if(k.length>0){var m=k.attr("title");
g+='<div class="title">'+m+"</div>";
g+='<a class="toggle" title="Toggle Information">Information</a>';
g+='<div class="player"><div id="player"></div></div>';
g+='<div class="information" style="display: none;">';
g+="<p><strong>Director:</strong> "+k.find('copy entry[label="Director:"]').attr("value")+"</p>";
g+="<p><strong>Starring:</strong> "+k.find('copy entry[label="Starring:"]').attr("value")+"</p>";
g+="<p><strong>Classification:</strong> "+k.find('copy entry[label="Classification:"]').attr("value")+"</p>";
g+="<p><strong>Release Date:</strong> "+k.find('copy entry[label="Release Date:"]').attr("value")+"</p>";
g+='<a class="action smallRed" href="'+k.find("bookingLink").attr("url")+'">Book</a>';
g+="</div>";
b.$film.html(g);
var i=k.find("media trailer");
var j=k.find("media still");
if(i.length>0){var f={};
f[e.webtrends]={tag:m};
jwplayer("player").setup({flashplayer:e.flashplayer,file:i.attr("url"),image:j.length>0?j.attr("url"):"",width:466,height:325,wmode:"transparent",stretching:"fill",backcolor:"231f20",frontcolor:"ffffff",lightcolor:"ca2319",plugins:f})
}if(false&&b.ios){b.$film.find(".toggle").attr("href",k.find("bookingLink").attr("url"))
}else{var h=b.$film.find(".information");
h.css({bottom:-(h.height()+20)}).show();
b.$film.find(".toggle").toggle(function(){h.animate({bottom:0})
},function(){h.animate({bottom:-(h.height()+20)})
})
}}else{b.$film.html(g);
b.$warning.text("Feed player currently cannot load the required film information, please try again later.").fadeIn()
}};
b.debug=function(f){if(b.development){console.debug(f)
}};
b.init()
};
a.fn.cwFeedPlayer=function(b){return this.each(function(){(new a.cwFeedPlayer(this,b))
})
}
})(jQuery);
