var C4=C4||{};
C4.Model=(function(E){var B=false,F=false;
return{isCatListTruncated:function D(){return B
},setCatListTruncated:function G(H){B=H
},hasConfiguredLists:function A(){return F
},setConfiguredLists:function C(H){F=H
}}
})(jQuery);
C4.View=(function(D){var H=C4.Model,C=/chrome/.test(navigator.userAgent.toLowerCase());
var O={abbrIe6Fix:function S(){if(D.browser.msie&&D.browser.version==6){D('<span class="subtitles">[S]</span>').insertAfter(D("abbr.subtitles"));
D('<span class="audiodesc">[AD]</span>').insertAfter(D("abbr.audiodesc"));
D("abbr.subtitles, abbr.audiodesc").remove()
}},createSwitcher:function T(U){D("#gridListSwitcher").remove();
if(U==="grid"){var V='<div class="view-switcher" id="gridListSwitcher"><span class="viewtext">View</span><span class="grid current tooltip"><span class="tooltip-message">Currently in grid view</span></span><a href="#" class="list tooltip"><span class="tooltip-message">Switch to list view</span></a></div>'
}else{if(U==="list"){var V='<div class="view-switcher" id="gridListSwitcher"><span class="viewtext">View</span><a href="#" class="grid tooltip"><span class="tooltip-message">Switch to grid view</span></a><span class="list current tooltip"><span class="tooltip-message">Currently in list view</span></span></div>'
}else{var V='<div class="view-switcher" id="gridListSwitcher"><span class="viewtext">View</span><span class="grid current tooltip"><span class="tooltip-message">Currently in grid view</span></span><a href="#" class="list tooltip"><span class="tooltip-message">Switch to list view</span></a></div>'
}}D(".tabs .tab-end").append(V)
},updateGridViewItems:function A(){D(".programmes ol li").each(function(W){var V=D(this);
var Y=V.find(".synopsis");
var X=D(Y.find("abbr.subtitles"));
var U=Y.find("abbr.audiodesc");
if(V.find("h3 > abbr").length===0){X.appendTo(V.find("h3"));
U.appendTo(V.find("h3"))
}if((V.find("span.watch").length===0)&&(V.find(".watch-now-medium").length>0)){D('<span class="watch" title="4oD"></span>').insertBefore(V.find("h3 > a span.title"))
}});
O.abbrIe6Fix()
},updateListViewItems:function F(){D(".programmes ol li").each(function(){var V=D(this);
var X=V.find(".synopsis");
var W=V.find("abbr.subtitles");
var U=V.find("abbr.audiodesc");
if(V.length>0){W.insertBefore(X.find("a.double-chevron"));
U.insertBefore(X.find("a.double-chevron"))
}D("span.watch").remove();
D("span.subtitles").remove();
D("span.audiodesc").remove()
})
},loadingComplete:function E(){var U=D(".show-more").attr("href");
var W="";
var V=D(".programmes ol").length;
D(".programmes ol").each(function(Y){var X=D(this);
if((Y+1)===V){W=X.metadata().nextUrl;
D("li:first-child",X).removeClass("first")
}});
if(W==="endofresults"){D(".moreContainer").remove();
D("body").removeClass("wait")
}else{D(".show-more").attr("href",W);
O.setReady()
}if(D.cookie("pfview")==="grid"){O.updateGridViewItems()
}C4.Brand.Views.bindTooltipsIE();
return false
},onLoadTruncate:function J(){if(D(".categories ol.display-cats").length===0&&D(".categories ol.channel4-cats").length===0){H.setConfiguredLists(false)
}else{H.setConfiguredLists(true)
}if(D("ol.other-cats li.current").length===1){H.setCatListTruncated(true)
}else{H.setCatListTruncated(false)
}O.toggleCategoryListTruncate();
return false
},toggleCategoryListTruncate:function P(U){if(U){U.preventDefault()
}if(H.isCatListTruncated()){if(H.hasConfiguredLists()){D(".categories ol.other-cats").slideDown("fast")
}else{O.expandOtherCategoriesList()
}O.toggleCategoryButon("&#45;&nbsp;Show fewer categories");
H.setCatListTruncated(false)
}else{if(H.hasConfiguredLists()){D(".categories ol.other-cats").slideUp("fast")
}else{O.contractOtherCategoriesList()
}O.toggleCategoryButon("&#43;&nbsp;Show more categories");
H.setCatListTruncated(true)
}return false
},toggleCategoryButon:function K(U){if(D(".show-more-cats").length>0){D(".show-more-cats").html(U)
}else{D(".categories").append('<a class="show-more-cats" href="#">'+U+"</a>");
D(".show-more-cats").click(O.toggleCategoryListTruncate)
}},contractOtherCategoriesList:function L(){D(".categories ol.other-cats li").each(function(V){var U=D(this);
if(V>=5){U.slideUp("fast")
}})
},expandOtherCategoriesList:function M(){D(".categories ol.other-cats li").each(function(V){var U=D(this);
if(V>=5){U.slideDown("fast")
}})
},setPromoTitleHeights:function G(){D(".inline-promo").each(function(){var V=0;
var U=0;
D(this).find("li:not(no-image) span.title").each(function(){if(D(this).height()>=V){V=D(this).height();
U=parseInt(D(this).css("margin-bottom"))
}}).each(function(){if(D(this).height()<V){var W=V-D(this).height()+U;
if(D.browser="mozilla"){W+=1
}D(this).css("margin-bottom",W)
}});
D(this).find(".synopsis").each(function(){if(D(this).height()>=V){V=D(this).height();
U=parseInt(D(this).css("margin-bottom"))
}}).each(function(){if(D(this).height()<V){var W=V-D(this).height()+U;
if(D.browser="mozilla"){W+=2
}D(this).css("margin-bottom",W)
}})
})
},setLoading:function Q(){D("body").addClass("wait");
D(".moreContainer").addClass("loading");
D(".moreContainer").append('<span class="spinner"></span><span class="button-text">Loading...</span><span class="img-end"></span>');
D(".show-more").hide()
},setReady:function R(){D("body").removeClass("wait");
D(".moreContainer > span.img-end").remove();
D(".moreContainer > span.button-text").remove();
D(".moreContainer > span.spinner").remove();
D(".moreContainer").removeClass("loading");
D(".show-more").show()
},fixTabsText:function N(){if(D.browser.msie&&D.browser.version>7){D(".tabs h2.current").css("padding","8px 0 8px 0");
D(".button-text").css("margin-top","8px")
}},fixTabPosition:function I(){D(".tab-end").show();
if(D.browser.msie||C){D(".tabs").css("margin-top","4px")
}}};
return{getView:function B(){return O
}}
})(jQuery);
C4.Controller=(function(E){var O=C4.View.getView();
var S={updateViewCookie:function G(W){E.cookie("pfview",null);
E.cookie("pfview",W,{expires:9999,path:"/",domain:"channel4.com"})
},determineCorrectMarkup:function L(W){if(W==="grid"){O.createSwitcher("grid")
}else{if(W==="list"){O.createSwitcher("list")
}}},getBrandListURL:function M(X){var Y=X;
if(X.indexOf("brand-list")===-1){var W=X.indexOf("/page");
if(W!=-1){Y=X.substring(0,W)+"/brand-list"+X.substring(W,X.length)
}else{Y=X+"/brand-list"
}}return Y
},setOmnitureCookie:function K(W,X){E.cookie(W,null,{path:"/"});
E.cookie(W,X,{path:"/"})
},setOmnitureViewChange:function N(W){try{if(s&&s!=null){s.linkTrackVars="eVar31,events";
s.linkTrackEvents="event31";
s.eVar31="Programme Finder: Switch to "+W+" View";
s.events="event31";
s.tl(this,"o",s.eVar31)
}}catch(X){}},isIE6:function I(){var X=/MSIE (\d+\.\d+);/.test(navigator.userAgent);
var W=new Number(RegExp.$1);
return X&&W==6
}};
var V={gridViewClick:function F(){S.determineCorrectMarkup("grid");
E("body").addClass("grid").removeClass("list");
O.updateGridViewItems();
S.updateViewCookie("grid");
V.bindSwitch();
V.fixWatchNowHoverIE6();
return false
},listViewClick:function H(){S.determineCorrectMarkup("list");
E("body").addClass("list").removeClass("grid");
O.updateListViewItems();
S.updateViewCookie("list");
V.bindSwitch();
C4.Brand.Views.bindTooltipsIE();
return false
},switchViewOnLoad:function T(){var W=E.cookie("pfview");
if(W!=null||W!=""){switch(W){case"grid":V.gridViewClick();
break;
case"list":V.listViewClick();
break;
default:V.gridViewClick();
break
}}else{V.gridViewClick(true)
}},showMoreClick:function C(){O.setLoading();
var X=S.getBrandListURL(E(".show-more").attr("href"));
var W={pageUrl:X,crossProtocol:false,nonOverlay:true,htmlContainer:"div.programmes",appendToElement:true,slideMarkup:true,slideSetting:"medium",callbackAfterHTML:C4.View.getView().loadingComplete};
C4.Modal.Controller.init(W);
V.fixWatchNowHoverIE6();
return false
},whatsHotItemClick:function J(){S.setOmnitureCookie("omn_intcmp","programmespage_whatshot")
},promoItemClick:function B(Z){var W=E(Z.target).parent().parent().parent().parent().parent();
if(W.length===1&&W[0].tagName==="DIV"){var a=W.find("> h2").text();
var X=a.toLowerCase();
var Y=X.replace(/\s/g,"");
S.setOmnitureCookie("omn_intcmp","programmespage_"+Y)
}},comingSoonItemClick:function R(){S.setOmnitureCookie("omn_intcmp","programmespage_comingsoon")
},fixWatchNowHoverIE6:function A(){if(S.isIE6()){var W="",Z="0 -1000px",X="0 -1018px",Y="0 -1036px";
if(E("body#whatsHot").length===1){W=".inline-promo li h3 > a";
Z="0 -1000px"
}if(E("body#programmeFinder").length===1||E("body#categoryPage").length===1||E("body#aToZLetterPage").length===1){W=".programmes ol li h3 > a";
Z="0 -996px"
}if(W.length>0){E(W).mouseover(function(){E(this).find("span.watch").css("background-position",X)
});
E(W).mouseout(function(){E(this).find("span.watch").css("background-position",Z)
});
E(W).click(function(){E(this).find("span.watch").css("background-position",Y)
})
}}},bindSwitch:function Q(){E(".view-switcher a.grid").click(function(){V.gridViewClick();
S.setOmnitureViewChange("Grid");
return false
});
E(".view-switcher a.list").click(function(){V.listViewClick();
S.setOmnitureViewChange("List");
return false
})
},bind:function U(){V.bindSwitch();
E(".show-more").click(V.showMoreClick);
if(E("body#whatsHot").length===1){E("#WhatsHot li a").click(V.whatsHotItemClick);
E("div.promo-set li a").click(V.promoItemClick);
E("div.coming-soon li a").click(V.comingSoonItemClick)
}}};
return{init:function P(){O.fixTabsText();
O.fixTabPosition();
O.onLoadTruncate();
if(E("#whatsHot").length>0){O.setPromoTitleHeights()
}V.switchViewOnLoad();
V.bind();
V.fixWatchNowHoverIE6();
C4.Brand.Views.bindTooltipsIE()
},getEvent:function D(){return V
}}
})(jQuery);
