/*

If you're looking at this, you're probably wondering how to make changes, or how to see what's happening in this file. A couple of steps went in to creating this file. 

First, a bunch of different source files were concatinated in to one long file.
Next, a python script was run (jsTripleQuotes.py) which turns python stype triple quoted, multi-line strings into valid javascript. Then the file was minified, using YUICompressor. 

To edit this file, you need to first check the source files out of the svn repository. Then make your edits in the relevant source file, then run the "ant" command from the project root. The ant stuff is configured in build.xml. You'll have to have ant installed. You'll also need python installed. Someone from Kenzan media should be able to help you with this. If you're stuck, email hellomorganpackard at gmail.com

*/
var $jq=jQuery;if(typeof Prototype!=="undefined"){jQuery.noConflict()}PgmSrch={};PgmSrch.initializedCallbacks=[];PgmSrch.resourcesToWaitFor=[];PgmSrch.util=new (function(){var localUtil=this;this.namedLogger=function(name){this.debug=function(message){PgmSrch.util.logger.debug("["+name+"] "+message)}};this.logger=new (function(){var forceConsole=false;this.logToServer=false;var enabled=true;if(window.location.toString().indexOf("http://local.")==-1){enabled=false}var timers=[];var oThis=this;this.Timer=function(){this.elapsedTime=0;this.startTime=null};this.Timer.prototype={start:function(){if(this.startTime!==null){throw new Error('Timer: "'+this.name+'" is already running')}this.startTime=new Date().getTime();return this},stop:function(){if(this.startTime===null){throw new Error("Timer is already stopped")}this.elapsedTime+=(new Date().getTime()-this.startTime);this.startTime=null;return this}};this.enable=function(){enabled=true};this.disable=function(){enabled=false};this.startTimer=function(name){var timer=timers[name];if(typeof timer==="undefined"){timer=timers[name]=new this.Timer();timer.name=name}timer.start()};this.stopTimer=function(name){var timer=timers[name];if(typeof timer==="undefined"){this.error("ERROR - there is no timer with the name: "+name)}else{timer.stop()}};this.printTimes=function(){localUtil.array.forKeys(timers,function(name,timer){oThis.log("Timer: <b>"+name+"</b> total elapsed time is "+timer.elapsedTime+" ms.")})};this.clearTimers=function(){timers=[]};this.debug=function(arg){if(enabled){if(typeof console==="undefined"&&forceConsole){$jq("<div id='consoleDiv' style='width: 400px; height: 200px; overflow:auto; background-color: #eeeeff; padding: 5px; position: absolute; z-index: 9999; top:0px; right:0px; color: #000000'>CONSOLE</div>").appendTo($jq("body"));window.console={log:function(message){message=message.replace(/</g,"&lt;");message=message.replace(/>/g,"&gt;");$jq("#consoleDiv").append("<br><br>").append(message);var objDiv=document.getElementById("consoleDiv");objDiv.scrollTop=objDiv.scrollHeight}}}var message;if(typeof arg==="function"){message=arg()}else{message=arg}var date=new Date();var output=date.getMinutes()+":"+date.getSeconds()+":"+date.getMilliseconds()+" "+message;if(this.logToServer){$jq.get("logger.jsp",{logValue:output})}else{if(typeof console!=="undefined"){console.log(output)}}}};this.log=this.debug;this.error=this.log;this.warn=function(arg){this.debug("WARNING: "+arg)}})();this.addExternalJS=function(jsLocation){var scriptNode=document.createElement("script");scriptNode.type="text/javascript";scriptNode.href=jsLocation;document.getElementsByTagName("head")[0].appendChild(scriptNode)};this.addStyleSheet=function(cssLocation){var cssNode=document.createElement("link");cssNode.type="text/css";cssNode.rel="stylesheet";cssNode.href=cssLocation;cssNode.media="screen";cssNode.title="dynamicLoadedSheet";document.getElementsByTagName("head")[0].appendChild(cssNode)}})();PgmSrch.util.container=function(name){var container;var idsMapVal=PgmSrch.cnst.idsMap[name];if(idsMapVal instanceof Array){$jq(idsMapVal).each(function(i,item){if(i==0){container=$jq("#"+item)}else{container=container.add($jq("#"+item))}})}else{container=$jq("#"+idsMapVal)}return container};PgmSrch.util.getQueryParam=function(queryString,strParamName){var strReturn="";var aQueryString=queryString.split("&");for(var iParam=0;iParam<aQueryString.length;iParam++){if(aQueryString[iParam].indexOf(strParamName+"=")>-1){var aParam=aQueryString[iParam].split("=");strReturn=aParam[1];break}}return strReturn};PgmSrch.util.getURLParam=function(strParamName){var strReturn="";var strHref=window.location.href;if(strHref.indexOf("?")>-1){var strQueryString=strHref.substr(strHref.indexOf("?")+1);strReturn=PgmSrch.util.getQueryParam(strQueryString,strParamName)}return unescape(strReturn)};PgmSrch.cnst=function(){var self={veveoXmlMap:{Ver:"VerRENAME",SVER:"server_version",LRTM:"last_response_time",n:"number_of_results",CF:"cluster",CI:"terminal",G:"asset_itentifier",T:"title",EPT:"episode_title",RA:"rating",CBs:"fold_type",YY:"year",SC:"server_cookie",D:"description",sr:"star_rating",C:"cast",H:"host",DI:"director",GN:"genre",L:"language",KW:"keyword",RE:"reason_adult_only",AI:"action_item",ty:"item_type",MI:"more_info",os:"os",CS:"station_name",VC:"channel_number",STID:"station_id",SHID:"showid",PPR:"pay_per_view_price",VOD:"video_on_demand",PVID:"preview_id",nr:"num_results",NR:"num_results",CST:"asset_host_site",TM:"time",un:"submitted_by",RF:"url_to_watch",SLK:"clip_host",CMI:"thumb_url",UT:"tags",RM:"related_clips",SBR:"clips_from_same_site",CNs:"content",RC:"results",TX:"data",xht:"group_title",SE:"schedule_entry"},engToXML:function(english){for(key in self.veveoXmlMap){if(self.veveoXmlMap[key].toLowerCase()===english.toLowerCase()){return key}}throw new Error("There's no tag corresponding to the word: "+english)},idsMap:{DROPDOWN:"dropdownContainer",SEARCH_BOX:["epg","epgSrch","epgSrch2"],GO_BUTTON:"veveoSearchBtn",RESULTS_ON_PAGE:"resultsMain",RELATED:"related",SEARCH_TITLE:"searchTitle",PREV_NEXT:"prevNext"},urls:{searchResults:"search.jsp"},months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],defaultRegionPK:20054,defaultAjaxSettings:{XUA:"cvw",XUN:"",DS:"255",XPID:"pkg00@27.CABLEVISION",PN:4},genreFilters:{ACTION:"G7",ACTION_ADVENTURE:"G1G7",ANIMATION:"G9",COMEDY:"G3"},messages:{NO_RESULTS:"No Results"},searchUrl:"/search/veveo/proxy",settings:{resultsPerPage:14},defaultSearchBoxText:"Search iO TV & On Demand"};return self}();PgmSrch.ESTDate=function(millis){var logger=new PgmSrch.util.namedLogger("PgmSrch.ESTDate");var HOURS_BEFORE_GMT=5;millis=parseInt(millis);if(isNaN(millis)){PgmSrch.util.logger.error("!!!!!!!!!!! Error in ESTDate: millis is NaN !!!!!!!!!!!!");throw new Error("ESTDate must be built using a number. The argument supplied to the constructor was: "+millis)}var MILLIS_PER_DAY=1000*60*60*24;var gmtDate=new Date(millis);var isDaylightSavings=function(date){for(var key in PgmSrch.cnst.dsts){var timeChangeMoment=PgmSrch.cnst.dsts[key];if(date<timeChangeMoment.date){return timeChangeMoment.type==="end"}}};var date=new Date(millis);var estOffset=60*60*1000*HOURS_BEFORE_GMT;var dltOffset=isDaylightSavings(date)?60*60*1000:0;date.setTime(date.getTime()-(estOffset-dltOffset));var self={getDate:function(){return date.getUTCDate()},getDay:function(){return date.getUTCDay()},getFullYear:function(){return date.getUTCFullYear()},getHours:function(){return date.getUTCHours()},getMilliseconds:function(){return date.getUTCMilliseconds()},getMinutes:function(){return date.getUTCMinutes()},getMonth:function(){return date.getUTCMonth()},getSeconds:function(){return date.getUTCSeconds()},isGreaterThan:function(date){return gmtDate>date},isLessThan:function(date){return gmtDate<date}};return self};PgmSrch.ForwardedSearchHandler=function(resultItemNavigator){var getParam=PgmSrch.util.getURLParam;var logger=PgmSrch.util.logger;var container=PgmSrch.util.container;return{run:function(){if(getParam("action")=="getDetails"){var parentItem=new PgmSrch.SerializedResultItem({clusterOrTerminal:getParam("clusterOrTerminal"),detailsQuery:getParam("detailsQuery"),title:getParam("title"),utcTime:getParam("utcTime"),channelNumber:getParam("channelNumber"),durationMinutes:getParam("durationMinutes"),vodOrBroadcast:getParam("vodOrBroadcast"),assetId:getParam("assetId")});resultItemNavigator.enterItem(parentItem)}if(getParam("query")){var searchBox=container("SEARCH_BOX");searchBox.get(0).value=getParam("query")||getParam("epg");searchBox.trigger({type:"keyup",keyCode:13,which:13})}}}};PgmSrch.Main=function(){var self={};var cnst=PgmSrch.cnst;var idsMap=PgmSrch.cnst.idsMap;var container=PgmSrch.util.container;var tmpl=PgmSrch.util.tmpl;var lastXHR=false;var getURLParam=PgmSrch.util.getURLParam;var logger=PgmSrch.util.logger;var mainSearchActionGroup=new PgmSrch.SearchActionGroup();mainSearchActionGroup.name="mainSearchActionGroup";mainSearchActionGroup.setQueryFactory(PgmSrch.SearchQueryFactory());var dropdownSearchActionGroup=new PgmSrch.SearchActionGroup();dropdownSearchActionGroup.name="dropdownSearchActionGroup";dropdownSearchActionGroup.setQueryFactory(PgmSrch.NoFilterQueryFactory());var resultItemNavigator=container("RESULTS_ON_PAGE").length>0?new PgmSrch.SearchPageResultItemNavigator(self):new PgmSrch.ForwardingResultItemNavigator();logger.debug("Running PgmSrch.Main");var dropdownContainer;var currentPage=null;var waitForResources=[];var positionDropdown=function(){var searchBoxPos=container("SEARCH_BOX").offset();dropdownContainer.css("top",(searchBoxPos.top+30)+"px");dropdownContainer.css("left",searchBoxPos.left+"px")};PgmSrch.TemplateRenderer.init();dropdownContainer=$jq(PgmSrch.TemplateRenderer.dropdownContainer.render()).appendTo($jq("body"));$jq(window).resize(function(){positionDropdown()});var searchBoxInputHandler=new PgmSrch.SearchBoxInputHandler({searchBox:container("SEARCH_BOX"),searchButton:container("GO_BUTTON"),main:self,searchActionGroup:dropdownSearchActionGroup,resultItemNavigator:resultItemNavigator});$jq("body").live("click",function(event){if(!event.isPropagationStopped()){dropdownContainer.hide();if(dropdownSearchActionGroup.getLastAction()){dropdownSearchActionGroup.getLastAction().selectNone()}}});$jq(".pgmSrchResultsContainer .result").live("mouseover",function(){});$jq(".pgmSrchResultsContainer .result").live("click",function(event){var resultObject=$jq(this).data("data");resultObject.select();resultItemNavigator.enterItem(resultObject)});$jq(".prevNextContainer .prev").live("click",function(){self.prevPage()});$jq(".prevNextContainer .next").live("click",function(){self.nextPage()});$jq("#dropdownContainer .viewAll").live("click",function(){var action=dropdownSearchActionGroup.getLastAction();self.initializeMainSearchActions(action);self.scheduleRenderMain(action)});$jq(".prevNextContainer .pageNum").live("click",function(){self.scheduleRenderMain(mainSearchActionGroup.getPageAction($jq(this).text()))});var renderResults=function(settings){try{settings.resultsDiv.empty();settings.resultsDiv.show();if(settings.resultItems.length==0){$jq("<div class='noResults'>No results found.</div>").appendTo(settings.resultsDiv)}else{$jq(settings.resultItems).each(function(i,item){try{var resultHTML=settings.template.render(item);var resultDom=$jq(resultHTML).appendTo(settings.resultsDiv);resultDom.data("data",item);if(i==0){$jq(resultDom).addClass("first")}}catch(e){$jq("<div style='border: solid 5px #333333; padding: 20px;'>Error processing: \""+item.getTitle()+'":  '+e+"</div>").appendTo(settings.resultsDiv);logger.debug("ERROR: "+e)}})}}catch(e){logger.debug("ERROR: "+e)}};$jq.extend(self,{init:function(){var fn=function(){new PgmSrch.ForwardedSearchHandler(resultItemNavigator).run()};if(PgmSrch.resourcesToWaitFor.size==0){fn()}else{waitForResources.push(fn)}},resourceLoaded:function(name){var newArray=[];$jq(PgmSrch.resourcesToWaitFor).each(function(i,item){if(item!=name){newArray.push(item)}});PgmSrch.resourcesToWaitFor=newArray;if(PgmSrch.resourcesToWaitFor.length==0){$jq(waitForResources).each(function(i,fn){fn()})}},scheduleRenderMain:function(searchAction){var searchResultsCallback=PgmSrch.searchResultsCallback;if(typeof PgmSrch.searchResultsCallback!=="undefined"){PgmSrch.searchResultsCallback()}self.setSearchTitle(searchAction.getTitle());if(PgmSrch.doMRSSSearch&&searchAction.getTitle()){logger.debug("calling doMRSSSearch. Query is: "+searchAction.getTitle());PgmSrch.doMRSSSearch(searchAction.getTitle())}currentPage=searchAction;container("RESULTS_ON_PAGE").html("<H2 style='padding:40px'>LOADING...</H2>");searchAction.setCallback(function(){renderResults({resultItems:searchAction.getResultItems(),template:PgmSrch.TemplateRenderer.main,resultsDiv:container("RESULTS_ON_PAGE")});$jq(PgmSrch.TemplateRenderer.prevNext.render(new PgmSrch.PaginationContext(searchAction))).appendTo(container("RESULTS_ON_PAGE"))})},scheduleRenderDropdown:function(searchAction){if(!searchAction){return}positionDropdown();searchAction.setCallback(function(){var resultsToRender=[];var resultItems=searchAction.getResultItems();for(var i=0;i<5;i++){if(resultItems[i]){resultsToRender.push(resultItems[i])}}renderResults({resultItems:resultsToRender,template:PgmSrch.TemplateRenderer.dropdown,resultsDiv:dropdownContainer});searchBoxInputHandler.setResults(resultsToRender)})},refreshDropdownSelection:function(){$jq(".result",dropdownContainer).each(function(i,item){var item=$jq(item);var data=item.data("data");if(data.isSelected()){item.addClass("selected")}else{item.removeClass("selected")}})},drillDown:function(parentObject){var query=parentObject.getDetailsQuery();logger.debug("drilldown. query is: "+query);if(query){var newAction=mainSearchActionGroup.newSearch({os:query});newAction.setTitle(parentObject.getTitle());self.scheduleRenderMain(newAction)}},setSearchBoxContents:function(val){container("SEARCH_BOX").attr("value",val)},setSearchTitle:function(val){container("SEARCH_TITLE").text(val)},getMainSearchActionGroup:function(){return mainSearchActionGroup},getDropdownSearchActionGroup:function(){return dropdownSearchActionGroup},getSearchBoxInputHandler:function(){return searchBoxInputHandler},getDropdownContainer:function(){return dropdownContainer},hideRelated:function(){container("RELATED").fadeOut("slow",function(){container("RELATED").hide()})},showRelated:function(){container("RELATED").show()},initializeMainSearchActions:function(action){mainSearchActionGroup.acceptFirstAction(action)},setMainSearchActionGroup:function(group){mainSearchActionGroup=group},nextPage:function(){self.scheduleRenderMain(currentPage.getNextPageAction())},prevPage:function(){self.scheduleRenderMain(currentPage.getPrevPageAction())},goToPage:function(){self.scheduleRenderMain(mainSearchActionGroup)}});$jq(PgmSrch.initializedCallbacks).each(function(i,fn){fn()});return self};PgmSrch.PaginationContext=function(searchAction){var logger=new PgmSrch.util.namedLogger("PaginationContext");var visiblePageNums=7;var distFromCenter=function(){return(visiblePageNums-1)/2};var numPages=function(){return Math.ceil(searchAction.getNumResultsInGroup()/PgmSrch.cnst.settings.resultsPerPage)};var self={hasPrevPageAction:function(){return searchAction.hasPrevPageAction()},hasNextPageAction:function(){return searchAction.hasNextPageAction()},getPageNums:function(){var ret=[];var currentPageIndex=searchAction.getIndexInAllActions();var startIndex=Math.max(0,currentPageIndex-distFromCenter());var endIndex=Math.max(Math.min(numPages()-1,visiblePageNums-1),Math.min(numPages()-1,currentPageIndex+distFromCenter()));for(var i=startIndex;i<=endIndex;i++){ret.push(i+1)}if(ret[0]===2){ret.splice(0,0,"1")}return ret},getIndexInAllActions:function(){return searchAction.getIndexInAllActions()},getVisiblePageNums:function(){return visiblePageNums},setVisiblePageNums:function(num){if(num%2!=0){throw new Error("Please use odd numbers of pages.")}visiblePageNums=num},lastPageLinkDisplayed:function(){var pageNums=self.getPageNums();return pageNums[pageNums.length-1]==numPages()},forceDisplayFirstPageLink:function(){return self.getPageNums()[0]>2}};return self};PgmSrch.SearchActionGroup=function(){var logger=new PgmSrch.util.namedLogger("SearchActionGroup");var actions=[];var resultObjectFactory=function(){return PgmSrch.resultObjectFactory};var queryFactory;var group=this;var defaultSettings={searchURL:PgmSrch.cnst.searchUrl};var group=this;var settings=defaultSettings;this.reset=function(){actions=[]};this.getActionLength=function(){return actions.length};this.customSettings=function(customSettings){settings=$jq.extend(settings,customSettings)};this.setQueryFactory=function(QueryFactory){queryFactory=QueryFactory};this.getFirstAction=function(){return actions[0]};this.getLastAction=function(){return actions[actions.length-1]};this.getLastXHR=function(){if(actions.length>0){return actions[actions.length-1].getXHR()}};this.newSearch=function(query){return this.acceptFirstAction(this.newSearchAction(query))};this.acceptFirstAction=function(action){actions=[action];action.setGroup(this);return action},this.getIndexInAllActions=function(action){for(var i=0;i<actions.length;i++){if(actions[i]===action){return i}}};this.getNextPageAction=function(){return this.getPageAction(action.length-1)};this.newSearchAction=function(baseQuery){var action=new SearchAction(baseQuery);actions.push(action);return action};this.getPageAction=function(page){var pageAction=function(){return actions[page-1]};var ret=pageAction();if(!ret){ret=new ProxySearchAction({onSetCallback:function(originalCallback){var loadNext=function(){var nextAction=group.getLastAction().getNextPageAction();nextAction.setCallback(function(){if(pageAction()){ret.setRealSearchAction(pageAction());originalCallback(pageAction())}else{loadNext()}})};loadNext()}})}return ret};this.getNumResults=function(){var ret;if(actions.length===0){ret=0}else{if(this.getLastAction().hasNextPageAction()){ret=this.getLastAction().getReportedResultsInGroup()}else{ret=(actions.length-1)*PgmSrch.cnst.settings.resultsPerPage;ret+=this.getLastAction().getNumResults()}}return ret};var ProxySearchAction=function(settings){var realSearchAction;return{setCallback:function(fn){settings.onSetCallback(fn)},setRealSearchAction:function(actionArg){realSearchAction=actionArg},getTitle:function(){return group.getLastAction().getTitle()},getResultItems:function(){return realSearchAction.getResultItems()},hasPrevPageAction:function(){return realSearchAction.hasPrevPageAction()},hasNextPageAction:function(){return realSearchAction.hasNextPageAction()},getNumResultsInGroup:function(){return realSearchAction.getNumResultsInGroup()},getPrevPageAction:function(){return realSearchAction.getPrevPageAction()},getNextPageAction:function(){return realSearchAction.getNextPageAction()},getIndexInAllActions:function(){return realSearchAction.getIndexInAllActions()},toString:function(){return"a ProxySearchAction"}}};var SearchAction=function(baseQuery){var logger=new PgmSrch.util.namedLogger("SearchAction");var title;var parentGroup=group;var parentQuery;if(group.getLastAction()){parentQuery=group.getLastAction().getQuery()}var query=queryFactory.buildQuery(baseQuery,parentQuery);var xmlResults,resultItems,callback,xhrComplete=false,callbackCalled=false,xhr;var nextAction=null;var prevAction=null;var lastXHR=group.getLastXHR();var nextPageOs;if(lastXHR){if(lastXHR.readyState!==4){lastXHR.abort()}}xhr=$jq.get(settings.searchURL,$jq.extend(query,PgmSrch.cnst.defaultAjaxSettings,{XPID:"pkg00@"+PgmSrch.region.getHubID()+".CABLEVISION",url:"http://"+PgmSrch.region.getVeveoIp()+"/search"}),function(xmlResultsArg){xmlResults=xmlResultsArg;resultItems=resultObjectFactory().wrapXML(xmlResults,self);doCallback();xhrComplete=true},"xml");var doCallback=function(){if(callback){callbackCalled=true;callback(self);callback=function(){}}};var failIfCallbackNotCalled=function(){if(!callbackCalled){throw new Error("Error in "+failIfCallbackNotCalled.caller+". You can't call a getter before the callback has been called. Getter methods should always be called from inside a function which is set via setCallback.")}};var self={toString:function(){return"a SearchAction"},getXMLResults:function(){failIfCallbackNotCalled();return xmlResults},getResultItems:function(){failIfCallbackNotCalled();return resultItems},setCallback:function(fn){callback=fn;if(xhrComplete){doCallback()}},getQuery:function(){return query},getNextPageOs:function(){failIfCallbackNotCalled();if(!nextPageOs){nextPageOs=$jq("od",self.getXMLResults()).text()}return nextPageOs},getSC:function(){failIfCallbackNotCalled();return $jq("SC",self.getXMLResults()).text()},setPrevPageAction:function(action){prevAction=action},getPrevPageAction:function(){return prevAction},hasPrevPageAction:function(){return prevAction?true:false},hasNextPageAction:function(){failIfCallbackNotCalled();return self.getNextPageOs()?true:false},getNextPageAction:function(){failIfCallbackNotCalled();if(!nextAction){var query={os:escape(self.getNextPageOs())};if(self.getSC()){query.sc=escape(self.getSC())}nextAction=parentGroup.newSearchAction(query)}nextAction.setPrevPageAction(self);return nextAction},setGroup:function(group){parentGroup=group},getGroup:function(){return parentGroup},getXHR:function(){return xhr},selectNone:function(){self.selected=null},getSelectedItem:function(){return self.selected},setSelectedItem:function(item){self.selected=item},setTitle:function(titleArg){title=titleArg},getTitle:function(){var ret;if(title){return title}else{if(self.getPrevPageAction()){ret=self.getPrevPageAction().getTitle()}}return ret},getNumResultsInGroup:function(){failIfCallbackNotCalled();return group.getNumResults()},getNumResults:function(){return resultItems.length},getReportedResultsInGroup:function(){return $jq("NR",self.getXMLResults()).text()},getIndexInAllActions:function(){var ret=self.getGroup().getIndexInAllActions(self);if(typeof ret==="undefined"){throw new Error("Every action should always have an index.")}return ret}};return self}};PgmSrch.SearchBoxInputHandler=function(settings){var main=settings.main;var dropdownSearchActionGroup=settings.searchActionGroup;var searchBox=settings.searchBox;var logger=new PgmSrch.util.namedLogger("PgmSrch.SearchBoxInputHandler");var selectedIndex=-1;var results;var inputSearch="";var resultItemNavigator=settings.resultItemNavigator;var lastAction=function(){return dropdownSearchActionGroup.getLastAction()};var newSearch=function(){var searchAction;selectedIndex=-1;inputSearch=searchBox.attr("value");if(inputSearch){var searchAction=dropdownSearchActionGroup.newSearch({w:escape(inputSearch)});searchAction.setTitle(inputSearch);main.scheduleRenderDropdown(searchAction);return searchAction}};var keys={37:"LEFT",39:"RIGHT",38:"UP",40:"DOWN",13:"RETURN"};var moveSelect=function(dir){if(results){selectedIndex=Math.max(-1,Math.min(results.length-1,selectedIndex+dir));var toSelect=results[selectedIndex];if(toSelect){toSelect.select()}else{lastAction().selectNone()}}logger.debug("selected item is now: "+lastAction().getSelectedItem())};PgmSrch.initializedCallbacks.push(function(){if(PgmSrch.focusedInput===searchBox.get(0)){newSearch()}});searchBox.click(function(){if(searchBox.attr("value")===PgmSrch.cnst.defaultSearchBoxText){searchBox.attr("value","")}newSearch()});settings.searchButton.live("click",function(){PgmSrch.util.container("DROPDOWN").hide();if(!lastAction()){newSearch()}resultItemNavigator.resultsToMainArea(lastAction())});searchBox.keyup(function(e){var utilKey=keys[e.keyCode||e.which];if(!utilKey){newSearch()}else{switch(utilKey){case"DOWN":moveSelect(1);break;case"UP":moveSelect(-1);break;case"RETURN":logger.debug("return was pressed");PgmSrch.util.container("DROPDOWN").hide();if(!lastAction()){newSearch()}if(lastAction().getSelectedItem()){resultItemNavigator.enterItem(lastAction().getSelectedItem())}else{resultItemNavigator.resultsToMainArea(lastAction())}break}main.refreshDropdownSelection()}});var self={setResults:function(resultsArg){dropdownSearchActionGroup.getLastAction().selectNone();results=resultsArg},getResults:function(){return results}};return self};PgmSrch.region=(function(){var get_cookie=function(cookie_name){var results=document.cookie.match("(^|;) ?"+cookie_name+"=([^;]*)(;|$)");if(results){return(unescape(results[2]))}else{return null}};var defaultDevIP="167.206.10.80";if(window.location.toString().indexOf("http://local.tvlistings")>-1){defaultDevIP="10.251.218.19"}var sscToIpMapping={1:"167.206.10.75",2:"167.206.10.76",3:"167.206.10.77",4:"167.206.10.78",5:"167.206.10.79",6:"167.206.10.80"};var hubToSSCMapping={1:[49,50,51,52,53,54,44,45,46,47,48,70,71,72],2:[18,19,20,23,55,56,57,58,59,60,61,62,63,64,65,66,67,73],3:[2,3,4,5,15,26,8,9,10,11,12,13,17,68,69],4:[6,7,14,36,37,74],5:[28,29,30,38,40,41,43,42,31,16,24,25,32,33,34,35,39],6:[27,92]};var regionToHubMapping={20075:39,20065:37,20069:28,20045:66,20048:8,20015:49,20028:44,20049:6,20037:58,20046:73,20083:10,20074:38,20072:34,20051:7,20052:75,20067:24,20053:9,20041:61,20054:5,20064:36,20070:32,20042:62,20056:14,20031:19,20057:76,20044:65,20033:23,20058:11,20081:79,20080:41,20076:40,20077:29,20040:60,20039:59,20066:74,20068:25,20035:56,20079:77,20078:78,20059:10,20060:15,20073:35,20043:64,20071:33,20032:20,20062:12,20063:17,20030:18,20034:55,20036:57};var self={getVeveoIp:function(){var ret=null;$jq.each(hubToSSCMapping,function(ssc,val){if($jq.inArray(self.getHubID(),val)>=0){ret=sscToIpMapping[ssc]}});if(ret!==null){return ret}else{return"167.206.10.80"}},getHubID:function(){var regionPK=PgmSrch.cnst.defaultRegionPK;if(get_cookie("oolpantry")){regionPK=get_cookie("oolpantry").split("|")[0].split("=")[1]}if(regionToHubMapping[regionPK]!==undefined){return regionToHubMapping[regionPK]}else{return"27"}}};return self})();PgmSrch.load=(function(){var DEV_TEST="http://dev.";var STAGE_TEST="http://stage.";var LOCAL_TEST="http://local.";var DEV_BASE_PATH="http://dev.tvlistings.optimum.net";var STAGE_BASE_PATH="http://stage.tvlistings.optimum.net";var PROD_BASE_PATH="http://tvlistings.optimum.net";var LOCAL_BASE_PATH="http://local.tvlistings.optimum.net";var basePath;var isProd=false;return{getBasePath:function(){var testLoc=function(loc){return window.location.toString().indexOf(loc)!=-1};if(testLoc(DEV_TEST)){basePath=DEV_BASE_PATH}else{if(testLoc(STAGE_TEST)){basePath=STAGE_BASE_PATH}else{if(testLoc(LOCAL_TEST)){basePath=LOCAL_BASE_PATH}else{basePath=PROD_BASE_PATH}}}return basePath}}})();$jq("input").live("click",function(){PgmSrch.focusedInput=this});$jq(document).ready(function(){PgmSrch.util.addStyleSheet(PgmSrch.load.getBasePath()+"/css/veveosearch/search.css");PgmSrch.running=PgmSrch.Main();PgmSrch.running.init()});PgmSrch.NoFilterQueryFactory=function(){var that=new PgmSrch.SearchQueryFactory();that.getFiltersList=function(){var filtersList=[];return filtersList};return that};PgmSrch.SearchQueryFactory=function(){var logger=new PgmSrch.util.namedLogger("SearchQueryFactory");var buildSCParam=function(){var filtersList=self.getFiltersList();var sCParam;var filLen=filtersList.length;if(filLen>0){sCParam=filLen+"-";for(var i=0;i<filLen;i++){sCParam+=filtersList[i];if(i<filLen-1){sCParam+=","}}}return sCParam};var lastBaseQuery={};var self={getFiltersList:function(){var filtersList=[];$jq("#filterBy .filterItems .selected, .filterTabs .selected").each(function(i,item){var filterValue=$jq(item).data("filterValue");if(filterValue){filtersList.push(filterValue)}});return filtersList},buildQuery:function(baseQueryArg){var baseQuery;if(baseQueryArg){baseQuery=baseQueryArg;lastBaseQuery=$jq.extend({},baseQuery)}else{baseQuery={};$jq(["w","os"]).each(function(i,paramKey){if(lastBaseQuery[paramKey]){baseQuery[paramKey]=lastBaseQuery[paramKey]}})}var sCParam=buildSCParam();if((typeof sCParam!=="undefined")&&(!baseQuery.sc)){baseQuery.sc=sCParam}var ret=$jq.extend({},PgmSrch.cnst.defaultAjaxSettings,baseQuery);ret.XPID=PgmSrch.region.getHubID();return ret}};return self};(function(){var descendInToXml=function(node,path){var ret=node;for(var i=0;i<path.length;i++){ret=path[i](ret);if(!ret){break}}return ret};var cnst=PgmSrch.cnst;PgmSrch.ResultItem=function(xmlDoc){var engToXML=PgmSrch.cnst.engToXML;var logger=PgmSrch.util.logger;var searchAction=null;var self={xmlDoc:xmlDoc,logger:PgmSrch.util.logger,engToXML:engToXML,queryXML:function(nodePath){logger.startTimer("queryXML");var context=arguments[1]||xmlDoc;for(var i=0;i<nodePath.length;i++){var veveoTagname=nodePath[i];if(veveoTagname!==">"){veveoTagname=engToXML(veveoTagname)}if(veveoTagname){nodePath[i]=veveoTagname}}nodePath=nodePath.join(" ");var ret=$jq(nodePath,context).text();logger.stopTimer("queryXML");return ret},getTitle:function(){return descendInToXml(xmlDoc,[function(obj){return obj.getElementsByTagName("T")},function(obj){return obj[0]},function(obj){return obj.getElementsByTagName("TX")},function(obj){return obj[0]},function(obj){return obj.childNodes},function(obj){return obj[0]},function(obj){return obj.data}])},getEpisodeTitle:function(){},getTerminalType:function(){return self.queryXML([">","item_type"])},getFoldType:function(){return self.queryXML(["fold_type"])},getDescription:function(){return descendInToXml(xmlDoc,[function(obj){return obj.getElementsByTagName("D")},function(obj){return obj[0]},function(obj){return obj.getElementsByTagName("TX")},function(obj){return obj[0]},function(obj){return obj.childNodes},function(obj){return obj[0]},function(obj){return obj.data}])},getStationName:function(){},getCast:function(){},getDirector:function(){},getDetailsQuery:function(){},getItemType:function(){var tagName=$jq(xmlDoc).get(0).tagName.toLowerCase();var ret="terminal";if(tagName===engToXML("cluster").toLowerCase()){ret="cluster"}else{if(tagName==="n"){ret=null}}return ret},getDetailsActionOS:function(){},getPrettyDate:function(){self.logger.warn("call to unimplemented getPrettyDate in "+self.getTitle());return null},getDate:function(){self.logger.warn("call to unimplemented getDate in "+self.getTitle());return null},getSearchAction:function(){return searchAction},setSearchAction:function(obj){if(searchAction){throw new Error("searchAction should only be set once")}searchAction=obj},select:function(){searchAction.setSelectedItem(self)},isSelected:function(){return self===searchAction.getSelectedItem()}};return self};PgmSrch.ClusterResultItem=function(prototype){var self=prototype;$jq.extend(self,{getMovieOrTV:function(){return null},getVodOrBroadcast:function(){return null},getDetailsQuery:function(){return self.queryXML(["os"])},getClusterOrTerminal:function(){return"cluster"},asQueryString:function(){var ret="clusterOrTerminal="+escape(self.getClusterOrTerminal())+"&detailsQuery="+escape(self.getDetailsQuery())+"&title="+escape(self.getTitle());return ret}});return self};PgmSrch.TerminalResultItem=function(prototype){var self=prototype;var cnst=PgmSrch.cnst;var hasAiType=function(type){var ret=false;$jq("AI",self.xmlDoc).each(function(i,node){var itemType=self.queryXML(["ITEM_TYPE"],node);if(itemType==type){ret=true;return false}});return ret};$jq.extend(self,{getMovieOrTV:function(){var terminalType=self.getTerminalType();if(terminalType==="4"||terminalType==="10"){return"movie"}else{return"tv"}},hasVOD:function(){return hasAiType("VOD")},hasBroadcast:function(){return hasAiType("SE")},getVodOrBroadcast:function(){var returnVal="broadcast";$jq("AI",self.xmlDoc).each(function(i,node){var itemType=self.queryXML(["ITEM_TYPE"],node);if(itemType=="VOD"){returnVal="vod";return false}});return returnVal},getDetailsQuery:function(){var returnVal;$jq("AI",self.xmlDoc).each(function(i,node){var itemType=self.queryXML(["ITEM_TYPE"],node);if(itemType=="MI"){returnVal=self.queryXML(["OS"],node);return false}});return returnVal},getMainActionNode:function(){var ret;$jq("AI",self.xmlDoc).each(function(i,node){var jqNode=$jq(node);var item_type=jqNode.find(self.engToXML("ITEM_TYPE")).text();if(item_type==="SE"||item_type==="VOD"){ret=jqNode;return false}});return ret},getAttr:function(){var node=self.getMainActionNode();return node.find("ATTR").text()},getStationName:function(){return self.getMainActionNode().find(self.engToXML("STATION_NAME")).find(self.engToXML("DATA")).text()},getStationLogo:function(){return cnst.channelLogos[self.getStationName()]},getChannelNumber:function(){return self.getMainActionNode().find(self.engToXML("CHANNEL_NUMBER")).find(self.engToXML("DATA")).text()},getClusterOrTerminal:function(){return"terminal"},getAttr:function(){return self.getMainActionNode().find("ATTR").text().split(":")},isNew:function(){return $jq.inArray("NEW",self.getAttr())>0},getRating:function(){throw new Error("getRating not yet implemented")},isNoResultsNode:function(){return $jq(self.engToXML("title"),self.xmlDoc).text()==="No Results"},getDurationMinutes:function(){throw new Error("getDurationMinutes must be implemented in a subclass.")},getPrettyDuration:function(){var totalMinutes=self.getDurationMinutes();var hours=Math.floor(totalMinutes/60);var minutes=totalMinutes%60;var ret="";if(hours>0){var hourText=hours==1?"hour":"hours";ret+=hours+"&nbsp;"+hourText;if(minutes>0){ret+=", "}}if(minutes>0){ret+=minutes+"&nbsp;minutes"}return ret}});return self};PgmSrch.VODResultItem=function(prototype){var logger=new PgmSrch.util.namedLogger("VODResultItem");var self=prototype;$jq.extend(self,{getVodOrBroadcast:function(){return"vod"},getPrice:function(){var ret=null;var num=$jq("VPR",self.xmlDoc).text();if(num==0){ret="Free/Subscription"}else{ret="$"+String(num)}return ret},getDurationMinutes:function(){var ret,os,MINUTES_PER_HOUR=60;$jq("AI",self.xmlDoc).each(function(i,node){var jqNode=$jq(node),item_type=jqNode.find(self.engToXML("ITEM_TYPE")).text();if(item_type==="VOD"){os=jqNode.find("os").text().split(",");var time=os[os.length-1].replace('"',"").split(":");ret=(parseInt(time[0])*MINUTES_PER_HOUR)+parseInt(time[1]);return false}});logger.debug("getDurationMinutes for: "+self.getTitle()+" is: "+ret);return ret},getAssetId:function(){return $jq("SHID:last",self.xmlDoc).text()},asQueryString:function(){var ret="vodOrBroadcast="+escape(self.getVodOrBroadcast())+"&clusterOrTerminal="+escape(self.getClusterOrTerminal())+"&title="+escape(self.getTitle())+"&assetId="+self.getAssetId();return ret}});return self};var AbstractBroadcastResultItem={getDate:function(){var date;try{date=new PgmSrch.ESTDate(this.getUTCTime())}catch(e){logger.debug("Error creating date for item: "+this.getTitle())}return date},getEndDate:function(){return new PgmSrch.ESTDate(this.getUTCTime()+this.getDurationMinutes()*60*1000)}};PgmSrch.BroadcastResultItem=function(prototype){var logger=PgmSrch.util.logger;var self=prototype;var cnst=PgmSrch.cnst;$jq.extend(self,AbstractBroadcastResultItem,{getVodOrBroadcast:function(){return"broadcast"},asQueryString:function(){var ret="vodOrBroadcast="+escape(self.getVodOrBroadcast())+"&clusterOrTerminal="+escape(self.getClusterOrTerminal())+"&title="+escape(self.getTitle())+"&utcTime="+self.getUTCTime()+"&channelNumber="+self.getChannelNumber()+"&durationMinutes="+self.getDurationMinutes();return ret},getDurationMinutes:function(){var ret,os;$jq("AI",self.xmlDoc).each(function(i,node){var jqNode=$jq(node),item_type=jqNode.find(self.engToXML("ITEM_TYPE")).text();if(item_type==="SE"){os=jqNode.find("os").text().split(":");ret=os[7]/60;return false}});return ret},isWithinDVRRecordWindow:function(){var oneWeekOut=new Date();oneWeekOut.setDate(new Date().getDate()+7);return self.getDate().isLessThan(oneWeekOut)},getUTCTime:function(){var ut;$jq("AI",self.xmlDoc).each(function(i,node){var jqNode=$jq(node);var item_type=jqNode.find(self.engToXML("ITEM_TYPE")).text();if(item_type==="SE"){ut=parseFloat(jqNode.find("UT").text());return false}});return ut*1000},getPrettyDate:function(){var leadingZero=function(time){if(time<10){time="0"+time}return time};var date=self.getDate();ret=cnst.days[date.getDay()]+", "+cnst.months[date.getMonth()]+" "+date.getDate();var amPm;var hours;if(date.getHours()>12){hours=date.getHours()-12;amPm="PM"}else{hours=(date.getHours()==0)?12:date.getHours();amPm="AM"}ret=ret+" "+hours+":"+leadingZero(date.getMinutes())+amPm;return ret},getEpisodeTitle:function(){return descendInToXml(self.xmlDoc,[function(obj){return obj.getElementsByTagName("EPT")},function(obj){return obj[0]},function(obj){return obj.getElementsByTagName("TX")},function(obj){return obj[0]},function(obj){return obj.childNodes},function(obj){return obj[0]},function(obj){return obj.data}])}});return self};PgmSrch.SerializedResultItem=function(data){return $jq.extend({},AbstractBroadcastResultItem,{getClusterOrTerminal:function(){return data.clusterOrTerminal},getDetailsQuery:function(){return data.detailsQuery},getTitle:function(){return data.title},getUTCTime:function(){return parseInt(data.utcTime)},getDurationMinutes:function(){return parseInt(data.durationMinutes)},getVodOrBroadcast:function(){return data.vodOrBroadcast},getAssetId:function(){return data.assetId},getChannelNumber:function(){return data.channelNumber}})}})();PgmSrch.ForwardingResultItemNavigator=function(){var logger=new PgmSrch.util.namedLogger(PgmSrch.ForwardingResultItemNavigator);logger.debug("creating ForwardingResultItemNavigator");var goToSearchPage=function(queryString){window.location=PgmSrch.load.getBasePath()+"/"+PgmSrch.cnst.urls.searchResults+queryString};this.enterItem=function(resultItem){var queryString="?action=getDetails&"+resultItem.asQueryString();if(resultItem.getClusterOrTerminal()!=="cluster"){queryString=queryString+"&query="+PgmSrch.util.container("SEARCH_BOX").attr("value")}goToSearchPage(queryString)};this.resultsToMainArea=function(searchAction){var queryString="?query="+searchAction.getQuery().w;goToSearchPage(queryString)}};PgmSrch.SearchPageResultItemNavigator=function(main){var logger=new PgmSrch.util.namedLogger("SearchPageResultItemNavigator");this.enterItem=function(resultItem){if(resultItem.getClusterOrTerminal()==="cluster"){logger.debug("about to call drillDown");main.drillDown(resultItem)}else{if(typeof resultItem.getSearchAction!=="undefined"&&resultItem.getSearchAction().getGroup()===PgmSrch.running.getDropdownSearchActionGroup()){this.resultsToMainArea(resultItem.getSearchAction())}if(resultItem.getVodOrBroadcast()==="broadcast"){var leadingZeroes=function(num){var len=2;while(num.length<len){num="0"+num}return num};var formatDate=function(date){var dateStr=String(date.getFullYear())+leadingZeroes(String(date.getMonth()+1))+leadingZeroes(String(date.getDate()))+leadingZeroes(String(date.getHours()))+leadingZeroes(String(date.getMinutes()))+leadingZeroes(String(date.getSeconds()));return dateStr};showDetailsAlt(resultItem.getUTCTime(),resultItem.getChannelNumber(),formatDate(resultItem.getDate()),formatDate(resultItem.getEndDate()),resultItem.getTitle())}else{showVODDetails(resultItem.getAssetId())}}};this.resultsToMainArea=function(searchAction){main.initializeMainSearchActions(searchAction);main.scheduleRenderMain(searchAction)}};PgmSrch.resultObjectFactory=(function(){var logger=new PgmSrch.util.namedLogger("PgmSrch.resultObjectFactory");var self={buildResultObj:function(node){var ret=[];var obj=PgmSrch.ResultItem(node);var type=obj.getItemType();if(type==="cluster"){ret.push(PgmSrch.ClusterResultItem(obj))}else{if(type==="terminal"){obj=PgmSrch.TerminalResultItem(obj);if(obj.hasBroadcast()){ret.push(PgmSrch.BroadcastResultItem(PgmSrch.TerminalResultItem(PgmSrch.ResultItem(node))))}if(obj.hasVOD()){ret.push(PgmSrch.VODResultItem(PgmSrch.TerminalResultItem(PgmSrch.ResultItem(node))))}}}return ret},wrapXML:function(data,searchAction){var resultItems=[];$jq("CNs",data).children().each(function(i,item){if(item.tagName=="CF"||item.tagName=="CI"){if($jq("T",item).text()!="No Results"){var resultObjects=self.buildResultObj(item);if(resultObjects){$jq(resultObjects).each(function(i,resultObject){resultObject.setSearchAction(searchAction);resultItems.push(resultObject)})}}}});return resultItems}};return self})();if(!PgmSrch.Templates){PgmSrch.Templates={}}PgmSrch.TemplateRenderer=(function(){var logger=PgmSrch.util.logger;var process=function(tmpName,data){var ret;ret=self[tmpName].tmpl.process(data,{throwExceptions:true});return ret};var self={init:function(){self.main={tmpl:TrimPath.parseTemplate(PgmSrch.Templates.main),render:function(data){return process("main",data)}};self.dropdown={tmpl:TrimPath.parseTemplate(PgmSrch.Templates.dropDownItems),render:function(data){return process("dropdown",data)}};self.dropdownContainer={render:function(data){return PgmSrch.Templates.dropdownContainer}};self.prevNext={tmpl:TrimPath.parseTemplate(PgmSrch.Templates.pagination),render:function(data){return process("prevNext",data)}}}};return self})();PgmSrch.Templates=(function(){var logger=PgmSrch.util.logger;var process=function(tmpName,data){return self[tmpName].tmpl.process(data,{throwExceptions:true})};var self={init:function(){self.main={tmpl:TrimPath.parseTemplate($jq("#main_template").text()),render:function(data){return process("main",data)}};self.dropdown={tmpl:TrimPath.parseTemplate('<div class="result{if isSelected()} selected{/if}{if getItemType() == "cluster"} cluster{/if}"><div class="inner"><div class="title">${ getTitle() }</div><div class="description">${getDescription()}</em></div></div></div>'),render:function(data){return process("dropdown",data)}};self.dropdownContainer={render:function(data){return' <div id="dropdownContainer" class="pgmSrchResultsContainer " ></div>'}};self.prevNext={tmpl:TrimPath.parseTemplate($jq("#prev_next_template").text()),render:function(data){return process("prevNext",data)}}}};return self})();var TrimPath;(function(){if(TrimPath==null){TrimPath=new Object()}if(TrimPath.evalEx==null){TrimPath.evalEx=function(src){return eval(src)}}var UNDEFINED;if(Array.prototype.pop==null){Array.prototype.pop=function(){if(this.length===0){return UNDEFINED}return this[--this.length]}}if(Array.prototype.push==null){Array.prototype.push=function(){for(var i=0;i<arguments.length;++i){this[this.length]=arguments[i]}return this.length}}TrimPath.parseTemplate=function(tmplContent,optTmplName,optEtc){if(optEtc==null){optEtc=TrimPath.parseTemplate_etc}var funcSrc=parse(tmplContent,optTmplName,optEtc);var func=TrimPath.evalEx(funcSrc,optTmplName,1);if(func!=null){return new optEtc.Template(optTmplName,tmplContent,funcSrc,func,optEtc)}return null};TrimPath.parseTemplate_etc={};TrimPath.parseTemplate_etc.statementTag="forelse|for|if|elseif|else|var|macro";TrimPath.parseTemplate_etc.statementDef={"if":{delta:1,prefix:"if (",suffix:") {",paramMin:1},"else":{delta:0,prefix:"} else {"},elseif:{delta:0,prefix:"} else if (",suffix:") {",paramDefault:"true"},"/if":{delta:-1,prefix:"}"},"for":{delta:1,paramMin:3,prefixFunc:function(stmtParts,state,tmplName,etc){if(stmtParts[2]!="in"){throw new etc.ParseError(tmplName,state.line,"bad for loop statement: "+stmtParts.join(" "))}var iterVar=stmtParts[1];var listVar="__LIST__"+iterVar;return["var ",listVar," = ",stmtParts[3],";","var __LENGTH_STACK__;","if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();","__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;","if ((",listVar,") != null) { ","var ",iterVar,"_ct = 0;","for (var ",iterVar,"_index in ",listVar,") { ",iterVar,"_ct++;","if (typeof(",listVar,"[",iterVar,"_index]) == 'function') {continue;}","__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;","var ",iterVar," = ",listVar,"[",iterVar,"_index];"].join("")}},forelse:{delta:0,prefix:"} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",suffix:") {",paramDefault:"true"},"/for":{delta:-1,prefix:"} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"},"var":{delta:0,prefix:"var ",suffix:";"},macro:{delta:1,prefixFunc:function(stmtParts,state,tmplName,etc){var macroName=stmtParts[1].split("(")[0];return["var ",macroName," = function",stmtParts.slice(1).join(" ").substring(macroName.length),"{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; "].join("")}},"/macro":{delta:-1,prefix:" return _OUT_arr.join(''); };"}};TrimPath.parseTemplate_etc.modifierDef={eat:function(v){return""},escape:function(s){return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},capitalize:function(s){return String(s).toUpperCase()},"default":function(s,d){return s!=null?s:d}};TrimPath.parseTemplate_etc.modifierDef.h=TrimPath.parseTemplate_etc.modifierDef.escape;TrimPath.parseTemplate_etc.Template=function(tmplName,tmplContent,funcSrc,func,etc){this.process=function(context,flags){if(context==null){context={}}if(context._MODIFIERS==null){context._MODIFIERS={}}if(context.defined==null){context.defined=function(str){return(context[str]!=undefined)}}for(var k in etc.modifierDef){if(context._MODIFIERS[k]==null){context._MODIFIERS[k]=etc.modifierDef[k]}}if(flags==null){flags={}}var resultArr=[];var resultOut={write:function(m){resultArr.push(m)}};try{func(resultOut,context,flags)}catch(e){if(flags.throwExceptions==true){throw e}var result=new String(resultArr.join("")+"[ERROR: "+e.toString()+(e.message?"; "+e.message:"")+"]");result.exception=e;return result}return resultArr.join("")};this.name=tmplName;this.source=tmplContent;this.sourceFunc=funcSrc;this.toString=function(){return"TrimPath.Template ["+tmplName+"]"}};TrimPath.parseTemplate_etc.ParseError=function(name,line,message){this.name=name;this.line=line;this.message=message};TrimPath.parseTemplate_etc.ParseError.prototype.toString=function(){return("TrimPath template ParseError in "+this.name+": line "+this.line+", "+this.message)};var parse=function(body,tmplName,etc){body=cleanWhiteSpace(body);var funcText=["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"];var state={stack:[],line:1};var endStmtPrev=-1;while(endStmtPrev+1<body.length){var begStmt=endStmtPrev;begStmt=body.indexOf("{",begStmt+1);while(begStmt>=0){var endStmt=body.indexOf("}",begStmt+1);var stmt=body.substring(begStmt,endStmt);var blockrx=stmt.match(/^\{(cdata|minify|eval)/);if(blockrx){var blockType=blockrx[1];var blockMarkerBeg=begStmt+blockType.length+1;var blockMarkerEnd=body.indexOf("}",blockMarkerBeg);if(blockMarkerEnd>=0){var blockMarker;if(blockMarkerEnd-blockMarkerBeg<=0){blockMarker="{/"+blockType+"}"}else{blockMarker=body.substring(blockMarkerBeg+1,blockMarkerEnd)}var blockEnd=body.indexOf(blockMarker,blockMarkerEnd+1);if(blockEnd>=0){emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);var blockText=body.substring(blockMarkerEnd+1,blockEnd);if(blockType=="cdata"){emitText(blockText,funcText)}else{if(blockType=="minify"){emitText(scrubWhiteSpace(blockText),funcText)}else{if(blockType=="eval"){if(blockText!=null&&blockText.length>0){funcText.push("_OUT.write( (function() { "+blockText+" })() );")}}}}begStmt=endStmtPrev=blockEnd+blockMarker.length-1}}}else{if(body.charAt(begStmt-1)!="$"&&body.charAt(begStmt-1)!="\\"){var offset=(body.charAt(begStmt+1)=="/"?2:1);if(body.substring(begStmt+offset,begStmt+10+offset).search(TrimPath.parseTemplate_etc.statementTag)==0){break}}}begStmt=body.indexOf("{",begStmt+1)}if(begStmt<0){break}var endStmt=body.indexOf("}",begStmt+1);if(endStmt<0){break}emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);emitStatement(body.substring(begStmt,endStmt+1),state,funcText,tmplName,etc);endStmtPrev=endStmt}emitSectionText(body.substring(endStmtPrev+1),funcText);if(state.stack.length!=0){throw new etc.ParseError(tmplName,state.line,"unclosed, unmatched statement(s): "+state.stack.join(","))}funcText.push("}}; TrimPath_Template_TEMP");return funcText.join("")};var emitStatement=function(stmtStr,state,funcText,tmplName,etc){var parts=stmtStr.slice(1,-1).split(" ");var stmt=etc.statementDef[parts[0]];if(stmt==null){emitSectionText(stmtStr,funcText);return}if(stmt.delta<0){if(state.stack.length<=0){throw new etc.ParseError(tmplName,state.line,"close tag does not match any previous statement: "+stmtStr)}state.stack.pop()}if(stmt.delta>0){state.stack.push(stmtStr)}if(stmt.paramMin!=null&&stmt.paramMin>=parts.length){throw new etc.ParseError(tmplName,state.line,"statement needs more parameters: "+stmtStr)}if(stmt.prefixFunc!=null){funcText.push(stmt.prefixFunc(parts,state,tmplName,etc))}else{funcText.push(stmt.prefix)}if(stmt.suffix!=null){if(parts.length<=1){if(stmt.paramDefault!=null){funcText.push(stmt.paramDefault)}}else{for(var i=1;i<parts.length;i++){if(i>1){funcText.push(" ")}funcText.push(parts[i])}}funcText.push(stmt.suffix)}};var emitSectionText=function(text,funcText){if(text.length<=0){return}var nlPrefix=0;var nlSuffix=text.length-1;while(nlPrefix<text.length&&(text.charAt(nlPrefix)=="\n")){nlPrefix++}while(nlSuffix>=0&&(text.charAt(nlSuffix)==" "||text.charAt(nlSuffix)=="\t")){nlSuffix--}if(nlSuffix<nlPrefix){nlSuffix=nlPrefix}if(nlPrefix>0){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(0,nlPrefix).replace("\n","\\n");if(s.charAt(s.length-1)=="\n"){s=s.substring(0,s.length-1)}funcText.push(s);funcText.push('");')}var lines=text.substring(nlPrefix,nlSuffix+1).split("\n");for(var i=0;i<lines.length;i++){emitSectionTextLine(lines[i],funcText);if(i<lines.length-1){funcText.push('_OUT.write("\\n");\n')}}if(nlSuffix+1<text.length){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(nlSuffix+1).replace("\n","\\n");if(s.charAt(s.length-1)=="\n"){s=s.substring(0,s.length-1)}funcText.push(s);funcText.push('");')}};var emitSectionTextLine=function(line,funcText){var endMarkPrev="}";var endExprPrev=-1;while(endExprPrev+endMarkPrev.length<line.length){var begMark="${",endMark="}";var begExpr=line.indexOf(begMark,endExprPrev+endMarkPrev.length);if(begExpr<0){break}if(line.charAt(begExpr+2)=="%"){begMark="${%";endMark="%}"}var endExpr=line.indexOf(endMark,begExpr+begMark.length);if(endExpr<0){break}emitText(line.substring(endExprPrev+endMarkPrev.length,begExpr),funcText);var exprArr=line.substring(begExpr+begMark.length,endExpr).replace(/\|\|/g,"#@@#").split("|");for(var k in exprArr){if(exprArr[k].replace){exprArr[k]=exprArr[k].replace(/#@@#/g,"||")}}funcText.push("_OUT.write(");emitExpression(exprArr,exprArr.length-1,funcText);funcText.push(");");endExprPrev=endExpr;endMarkPrev=endMark}emitText(line.substring(endExprPrev+endMarkPrev.length),funcText)};var emitText=function(text,funcText){if(text==null||text.length<=0){return}text=text.replace(/\\/g,"\\\\");text=text.replace(/\n/g,"\\n");text=text.replace(/"/g,'\\"');funcText.push('_OUT.write("');funcText.push(text);funcText.push('");')};var emitExpression=function(exprArr,index,funcText){var expr=exprArr[index];if(index<=0){funcText.push(expr);return}var parts=expr.split(":");funcText.push('_MODIFIERS["');funcText.push(parts[0]);funcText.push('"](');emitExpression(exprArr,index-1,funcText);if(parts.length>1){funcText.push(",");funcText.push(parts[1])}funcText.push(")")};var cleanWhiteSpace=function(result){result=result.replace(/\t/g,"    ");result=result.replace(/\r\n/g,"\n");result=result.replace(/\r/g,"\n");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");return result};var scrubWhiteSpace=function(result){result=result.replace(/^\s+/g,"");result=result.replace(/\s+$/g,"");result=result.replace(/\s+/g," ");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");return result};TrimPath.parseDOMTemplate=function(elementId,optDocument,optEtc){if(optDocument==null){optDocument=document}var element=optDocument.getElementById(elementId);var content=element.value;if(content==null){content=element.innerHTML}content=content.replace(/&lt;/g,"<").replace(/&gt;/g,">");return TrimPath.parseTemplate(content,elementId,optEtc)};TrimPath.processDOMTemplate=function(elementId,context,optFlags,optDocument,optEtc){return TrimPath.parseDOMTemplate(elementId,optDocument,optEtc).process(context,optFlags)}})();PgmSrch.Templates.dropDownItems='<div class="result{if isSelected()} selected{/if}{if getItemType() == "cluster"} cluster{/if}"><div class="inner"><div class="title">${ getTitle() }</div><div class="description">${getDescription()}</em></div></div></div>';PgmSrch.Templates.dropdownContainer=' <div id="dropdownContainer" class="pgmSrchResultsContainer clickable" ></div>';PgmSrch.Templates.main='{if getItemType() == "cluster"}<div class="result cluster"><div class="left column"></div><div class="middle column"><div class="title">${ getTitle() }</div><div class="description">${getDescription()}</div></div><div style="clear:both"></div></div>{elseif getVodOrBroadcast() == "broadcast"}<div class="result broadcast"><div class="left column"></div><div class="middle column"><div class="title">${ getTitle() }{if getEpisodeTitle() && getEpisodeTitle() != ""}<span class=\'episodeTitle\'>&ndash; ${getEpisodeTitle()}</span>{/if}{if isNew()}&nbsp;&nbsp;<img src="/images/epg/new_icon.png" alt="NEW">{/if}</div><div class="description">${getDescription()}</em></div>{if  isWithinDVRRecordWindow()}<div class="recordLink" >Record to DVR</div>{/if}</div><div class="right column"><div class="date">${getPrettyDate()}</div>{if getStationLogo()}<div class="channelLogo"><a href="search.jsp?query=${getStationName()}"><img src="/images/epg/logos/grid/${getStationLogo()}"></a></div>{/if}<div class="length">${getPrettyDuration()}</div><div class="channel">${getChannelNumber()} ${getStationName()}</div></div><div style="clear:both"></div></div>{else}<!--  //////////// VOD template //////////// --><div class="result vod"><div class="left column"></div><div class="middle column"><div class="title">${ getTitle() }{if getEpisodeTitle() && getEpisodeTitle() != ""}<span class=\'episodeTitle\'>&ndash; ${getEpisodeTitle()}</span>{/if}</div><div class="description">${getDescription()}</em></div></div><div class="right column"><div class="length">${getPrettyDuration()}</div><div class="price">${getPrice()}</div></div><div style="clear:both"></div></div>{/if}';PgmSrch.Templates.pagination='<div class="prevNextContainer">{if getPageNums().length > 1}{if hasNextPageAction() }<div class="next button" style="float:right"><span class="text">Next Page</span> <img src="/images/veveo_search/arrow_right.gif" alt="right arrow"></div>{/if}{if hasPrevPageAction() }<div class="prev button" style="float:left"><img src="/images/veveo_search/arrow_left.gif" alt="left arrow"> <span class="text">Previous Page</span></div>{/if}<div class="pageNumbers">{if forceDisplayFirstPageLink()}<span class=\'pageNum\'>1</span><span>&hellip;</span>{/if}{for num in getPageNums()}<span class=\'pageNum{if num === getIndexInAllActions() + 1} selected{/if}\'>${num}</span>{/for}{if !lastPageLinkDisplayed()}<span>&hellip;</span>{/if}</div>{/if}</div><div style="clear:both"></div>';
