/* /modules/tvgrid.js */
function jumpToMicrositeFromGrid(){document.location.href="/tv/on-demand/";}var app={status:"grid",target:"",subPage:"",b3target:"",b3selPath:"",b3cat:new Object(),"arguments":[],today:null,res_level:-1,"realRes ":-1,nBrowser:"IE",styleChange:false,browseReady:false,timeOffset:0,settingEnabled:false,tz:"",dst:0,zipcode:"",headend:"",headendLabel:"",cookieEnabled:true,gridSort:1,loggedIn:false,prefs:null,guid:null,login:null,playerPage:"",pi_pageName:"",favNode:null,activebodyid:""};var appTIMEZONES={EASTERN:-5,CENTRAL:-6,MOUNTAIN:-7,PACIFIC:-8,ALASKA:-9,HAWAII:-10,ARIZONA:-7};function determineDST(){if(app.tz&&(app.tz=="HAWAII"||app.tz=="ARIZONA")){return 0;}var dstDates=new Array();dstDates[2008]=[(new Date(2008,2,9,2)),(new Date(2008,10,2,2))];dstDates[2009]=[(new Date(2009,2,8,2)),(new Date(2009,10,1,2))];dstDates[2010]=[(new Date(2010,2,14,2)),(new Date(2010,10,7,2))];dstDates[2011]=[(new Date(2011,2,13,2)),(new Date(2011,10,6,2))];dstDates[2012]=[(new Date(2012,2,11,2)),(new Date(2012,10,4,2))];dstDates[2013]=[(new Date(2013,2,10,2)),(new Date(2013,10,3,2))];dstDates[2014]=[(new Date(2014,2,9,2)),(new Date(2014,10,2,2))];dstDates[2015]=[(new Date(2015,2,8,2)),(new Date(2015,10,1,2))];var now=new Date();if(now>dstDates[now.getFullYear()][0]&&now<dstDates[now.getFullYear()][1]){return 1;}else{return 0;}}app.dst=determineDST();function setTimeOffset(toffset,tz){var stoff=toffset;if(tz!=null){stoff=appTIMEZONES[tz];app.tz=tz;}app.dst=determineDST();if(toffset==null||isNaN(toffset)){toffset=stoff+app.dst;if(tz=="HAWAII"||tz=="ARIZONA"){toffset=stoff;}}app.timeOffset=(new Date()).getTimezoneOffset()/60+parseInt(toffset);}var pref=[];var millisecondValues={second:1000,seconds:1000,minute:60000,minutes:60000,hour:3600000,hours:3600000,day:86400000,days:86400000,week:604800000,weeks:604800000,month:2592000000,months:2592000000,year:31536000000,years:31536000000};pref.get=function(prefName,defaultReturn,forceCookie){var cookieVal=getCookie(prefName,forceCookie);return(!cookieVal||cookieVal=="")?defaultReturn:cookieVal;};pref.set=function(prefName,prefValue,expLength,forceCookie,callback){if(prefValue==null){pref.kill(prefName);return false;}if(expLength==null){var milliseconds=millisecondValues.year;}else{var milliseconds=stringToMilliseconds(expLength);if(milliseconds==null){error("pref.set(): Invalid expiration value: '"+expLength+"'");return false;}}setCookie(prefName,prefValue,milliseconds,forceCookie,callback);};pref.setDefault=function(prefName,prefValue,expLength){if(pref.get(prefName)!=null){return false;}setCookie(prefName,prefValue,(expLength==null)?millisecondValues.week:stringToMilliseconds(expLength));};pref.kill=function(prefName,callback){deleteCookie(prefName,callback);};pref.updateField=function(prefName){setElementValue(prefName,pref.get(prefName));};pref.updateFromField=function(prefName,fieldName){if(fieldName==null){var fieldName=prefName;}pref.set(prefName,getElementValue(fieldName));};function getCookie(name,forceCookie){forceCookie=true;if(!forceCookie){}else{if(fbs.available&&name==tvGridFav.fsoGUIDname&&tvGridFav.fsoGUIDval!=""){console.log("returning GUID value from FSO: "+tvGridFav.fsoGUIDval);return tvGridFav.fsoGUIDval;}else{if(fbs.available&&name==tvGridFav.fsoTVPname&&tvGridFav.fsoTVPval!=""){console.log("returning anonymous value from FSO: "+tvGridFav.fsoTVPval);return tvGridFav.fsoTVPval;}}var arg=name+"=";var alen=arg.length;var clen=document.cookie.length;var i=0;while(i<clen){var j=i+alen;if(document.cookie.substring(i,j)==arg){if(fbs.available&&(name==tvGridFav.fsoGUIDname||name==tvGridFav.fsoTVPname)){console.log("[84] saving "+name+" to FSO with value of "+getCookieValue(j));fbs.saveToSO(name,getCookieValue(j));if(name==tvGridFav.fsoGUIDname){tvGridFav.fsoGUIDval=getCookieValue(j);}else{if(name==tvGridFav.fsoTVPname){tvGridFav.fsoTVPval=getCookieValue(j);}}}return getCookieValue(j);}i=document.cookie.indexOf(" ",i)+1;if(i==0){break;}}return"";}}function getCookieValue(offset){var endstr=document.cookie.indexOf(";",offset);if(endstr==-1){endstr=document.cookie.length;}return unescape(document.cookie.substring(offset,endstr));}function setCookie(name,value,milliseconds,forceCookie,callback){if(milliseconds==null||isNaN(milliseconds)){var milliseconds=0;}var now=new Date();var d=!isNaN(now.valueOf())?new Date(now.valueOf()+milliseconds):now;var cookieDomain=location.hostname;if(cookieDomain.indexOf("comcast.net")!=-1){cookieDomain=".comcast.net";}var curCookie=name+"="+escape(value)+"; expires="+d.toGMTString()+"; path=/; domain="+cookieDomain;document.cookie=curCookie;if(!tvGrid.shiftingCookies&&fbs.available&&(name==tvGridFav.fsoGUIDname||name==tvGridFav.fsoTVPname)){console.log("[123] saving "+name+" to FSO with value of "+value);fbs.saveToSO(name,value);if(name==tvGridFav.fsoGUIDname){tvGridFav.fsoGUIDval=value;}else{if(name==tvGridFav.fsoTVPname){tvGridFav.fsoTVPval=value;}}}}function deleteCookie(name,callback){setCookie(name,"",0,true);}var tzPref=Prefs.get("tz");if(tzPref){app.tz=tzPref;app.dst=determineDST();}var timeoffsetPref=Prefs.get("timeoffset");if(timeoffsetPref){app.timeoffset=timeoffsetPref;}function lineupRequest(headendId){if(!headendId||headendId==""){return ;}var url="/lineup";var time=new Date();time.setMinutes(0,0,0);var pars="headendid="+headendId+"&time="+time.getTime();new Ajax.Request("/lineup",{method:"get",parameters:pars,onComplete:lineupResponse});app.headend=headendId;}var channelMap=[];function lineupResponse(originalRequest){var file=originalRequest.responseXML;if(is_ie){xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(originalRequest.responseText);file=xmlDoc;}var channels=file.getElementsByTagName("lineup");var cmenu=new StringBuffer();channelMap=[];for(i=0;i<channels.length;i++){var id=channels[i].getAttribute("station_id");if(!id){continue;}var data={num:channels[i].getAttribute("channel_number"),callsign:channels[i].getAttribute("call_sign")};if(channelMap[id]){channelMap[id+"-1"]=data;}else{channelMap[id]=data;}var row_id="cmenu-"+channels[i].getAttribute("station_id")+"-"+data.num;cmenu.append("<li id='"+row_id+"'");cmenu.append(" onclick='clickChannelItem(this)'");cmenu.append(">");cmenu.append(data.num+" "+data.callsign);cmenu.append("</li>");}$("grid-channel-popup-inner").innerHTML=cmenu.toString();if(getParameter("callsign")&&getParameter("start")){grid.jumpToGrid(getParameter("callsign"),getParameter("start"));return ;}if(getParameter("gridChannel")&&getParameter("gridStart")&&getParameter("gridID")){grid.jumpToListing(parseInt(getParameter("gridStart")),getParameter("gridChannel"),getParameter("gridID"));}if(getParameter("initView")=="ondemand"){var microCat=getParameter("microCat");var microSubcat=getParameter("microSubcat");clickToMicrosite(microCat,microSubcat);}}var fcookie="TvPlanner.FavChannels";var fchannels="";var sortTypes=["FAVONLY","FAVTOP","ALL"];var currSort=1;app.favNodes=[];app.doFv=function(fvNode){if(!app.cookieEnabled){doAlert("To set your favorite channels, please enable cookies!",fvNode);return ;}app.setFv(fvNode);app.favNode=fvNode;app.favNodes[app.favNodes.length]=app.favNode;if(!isDivVisible("fav-dialog")){showDiv("fav-dialog");currSort==app.gridSort;if(currSort==2){currSort=1;}var cbox=$("fav-sort-opts-"+currSort);cbox.checked=true;}};app.setFv=function(fvNode){if(fvNode==null){return ;}if(!app.cookieEnabled){doAlert("To set your favorite channels, please enable cookies!",fvNode);return ;}var ckval=fchannels;if(ckval==null){ckval="";}var fclass=fvNode.className;var callsign=fvNode.getAttribute("callsign");var cid=fvNode.getAttribute("channelid");var cnum=fvNode.getAttribute("channel");var dup_id="lf-";if(!callsign){var pNode=fvNode.parentNode.parentNode;if(pNode){callsign=pNode.getAttribute("callsign");cid=pNode.getAttribute("channelid");cnum=pNode.getAttribute("channel");dup_id="gf-";}}if(callsign==null){return ;}var duplicated=null;var cdata=channelMap[cid];var repeat=0;if(cdata&&cdata.num!=cnum){duplicated=cdata.num;repeat=1;}else{cdata=channelMap[cid+"-1"];if(cdata){duplicated=cdata.num;}}var dup_node=null;if(duplicated){dup_id+=duplicated;dup_node=$(dup_id);}var fval="["+callsign+"]";if(fclass=="fv"){fvNode.className="nfv";fvNode.title="Add to favorite channels";}else{if(fclass=="nfv"){fvNode.className="fv";fvNode.title="Remove from favorite channels";}else{return ;}}if(fclass=="fv"&&ckval.indexOf(fval)>=0){if(repeat==0){ckval=ckval.replace(fval,"");if(dup_node){dup_node.className="nfv";dup_node.title="Add to favorite channels";}}}else{if(fclass=="nfv"&&ckval.indexOf(fval)<0){if(ckval.length>=4000){doAlert("You have reached the limit of channels.",fvNode);return ;}ckval+=fval;if(dup_node){dup_node.className="fv";dup_node.title="Remove from favorite channels";}}}if(ckval.length>2){if($("sort-opts-0")){$("sort-opts-0").disabled=false;}}else{if($("sort-opts-0")){$("sort-opts-0").disabled=true;}if(currSort==0){currSort=1;if($("sort-opts-1")){$("sort-opts-1").checked=true;}}}if((!fchannels||fchannels.length<2)&&ckval.length>2){enableButton("loc-clear");}else{if(ckval.length<2){disableButton("loc-clear");}}fchannels=ckval;};app.setGridSort=function(sort){app.gridSort=sort;if(fchannels==""||fchannels.substring(0,1)=="["){fchannels=app.gridSort+fchannels;}else{fchannels=app.gridSort+fchannels.substring(1);}};app.getGridSort=function(){if(app.gridSort==0){if(!fchannels||fchannels.length<2){app.gridSort=1;}}return sortTypes[app.gridSort];};app.getFavFromCookie=function(){var cookieName=fcookie;if(tvGridFav.useGUID){var cookieName=tvGridFav.getEvoFavCookieName();}if(fbs.available&&cookieName==tvGridFav.fsoGUIDname&&tvGridFav.fsoGUIDval!=""){console.log("[366] saving "+tvGridFav.fsoGUIDname+" (GUID)  to FSO with value of "+tvGridFav.fsoGUIDval);pref.set(tvGridFav.fsoGUIDname,tvGridFav.fsoGUIDval);fchannels=tvGridFav.fsoGUIDval;}else{if(fbs.available&&cookieName==tvGridFav.fsoTVPname&&tvGridFav.fsoTVPval!=""){console.log("[371] saving "+tvGridFav.fsoTVPname+" (anonymous) to FSO with value of "+tvGridFav.fsoTVPval);pref.set(tvGridFav.fsoTVPname,tvGridFav.fsoTVPval);fchannels=tvGridFav.fsoTVPval;}else{fchannels=pref.get(cookieName);}}if(fchannels&&fchannels.length>2){app.gridSort=parseInt(fchannels.substring(0,1));if(isNaN(app.gridSort)){app.gridSort=1;}currSort=app.gridSort;tvGrid.sort=app.getGridSort();}if(fchannels==null){fchannels="";}};function clickFavOk(){app.setGridSort(currSort);tvGridFav.addNewFav();favOkCallback();app.favNodes=[];hideDiv("fav-dialog");}function favOkCallback(){tvGrid.fav_update_grid(app.getGridSort());}function clickFavCancel(){app.getFavFromCookie();if(app.favNodes.length>1){app.favNodes.each(function(f){app.setFv(f);});}else{app.setFv(app.favNode);}app.favNodes=[];hideDiv("fav-dialog");}var tvGridFav={portalCookie:getPortalData(),useGUID:false,fsoGUIDname:"",fsoGUIDval:"",fsoTVPname:"",fsoTVPval:"",initCalled:false,setFsoGUIDval:function(val){tvGridFav.fsoGUIDval=val;console.log("** tvGridFav.fsoGUIDval set to "+tvGridFav.fsoGUIDval);},setFsoTVPval:function(val){console.log("### = setFsoTVPval = ###");tvGridFav.fsoTVPval=val;console.log("** tvGridFav.fsoTVPval set to "+tvGridFav.fsoTVPval);fbs.fbsInit="SUCCESS";fbs.available=true;tvGridFav.init();},getEvoFavCookieName:function(){var portalId=this.portalCookie.guid||"";if(portalId){return"tvpFav."+portalId.toLowerCase();}else{return fcookie;}},mergeTvpFavCookieIntoEvoFavCookie:function(){console.log("merging favs");var evoFav=getCookie(tvGridFav.getEvoFavCookieName());if(evoFav){if(pref.get(fcookie)){if(evoFav.substring(0,1).match(/\d/)){app.setGridSort(evoFav.substring(0,1));}var GUIDchannels=evoFav.match(/\[\w+]/g)||[];var TVPchannels=pref.get(fcookie).match(/\[\w+]/g)||[];TVPchannels.each(function(c){if(GUIDchannels.indexOf(c)==-1){GUIDchannels[GUIDchannels.length]=c;}});var GUIDfchannels=app.gridSort+GUIDchannels.join("");pref.set(tvGridFav.getEvoFavCookieName(),GUIDfchannels);console.log("merged TvPlanner.FavChannels cookie into tvpFav.GUID cookie");}else{console.log("no TvPlanner.FavChannels cookie, using existing tvpFav.GUID cookie");}}else{pref.set(tvGridFav.getEvoFavCookieName(),pref.get(fcookie));console.log("new tvpFav.GUID cookie created");}},addNewFav:function(){if(tvGridFav.useGUID){pref.set(tvGridFav.getEvoFavCookieName(),fchannels);}else{pref.set(fcookie,fchannels);}},clearTvpCookie:function(){pref.kill(fcookie);},setTvpCookieToEvoFavCookie:function(){pref.set(fcookie,pref.get(tvGridFav.getEvoFavCookieName()));},init:function(){console.log("Fav Init");tvGridFav.initCalled=true;if(this.portalCookie.guid){tvGridFav.useGUID=true;tvGridFav.mergeTvpFavCookieIntoEvoFavCookie();app.getFavFromCookie();tvGridFav.clearTvpCookie();}else{app.getFavFromCookie();}tvGrid.build();},fbsInitCallback:function(value){console.log("entering fbsInitCallback. callback value: "+value);if(value==fbs.successVal){console.log("FBS Init Callback");tvGridFav.fsoGUIDname=tvGridFav.getEvoFavCookieName();tvGridFav.fsoTVPname=fcookie;console.log("grabbing GUID & anonymous from FSO");if(tvGridFav.fsoGUIDname!=tvGridFav.fsoTVPname){console.log("get GUID val from flash");fbs.getFromSO(tvGridFav.fsoGUIDname,"tvGridFav.setFsoGUIDval");}console.log("get anonymous val from flash");fbs.getFromSO(tvGridFav.fsoTVPname,"tvGridFav.setFsoTVPval");}else{fbs.fbsInit="FAIL";tvGridFav.fbsInitFail();}},fbsInitFail:function(){fbs.fbsInit="FAIL";tvGridFav.init();}};function clickLocOpt(opt){if(opt==null||opt==""){return ;}var v=parseInt(opt);if(isNaN(v)){return ;}currSort=v;}var grid={startTime:null,numTimes:null,filter:"all",allFlag:null,jump:false,jumpChan:"",jumpListing:"",jumpTime:"",width:0,scrollTop:0};grid.getEndTime=function(){if($("details-container").style.visibility=="visible"){return grid.startTime+parseInt((document.body.clientWidth-(129+280))*(30/120)*(60000));}return grid.startTime+parseInt((document.body.clientWidth-(129))*(30/120)*(60000));};grid.toggleFilter=function(filterName){if(grid.filter==filterName){grid.clearFilter();gridRequest();}else{if(grid.filter!="all"&&grid.filter!=filterName){grid.clearFilter();grid.setFilter(filterName);}else{grid.setFilter(filterName);}}};grid.clearFilter=function(){var currFilterNode=$("grid-"+grid.filter);if(!currFilterNode){return ;}currFilterNode.className="grid-filter";currFilterNode.setAttribute("status","inactive");grid.filter="all";};grid.setFilter=function(filterName,styleOnly){var newFilterNode=$("grid-"+filterName);if(!newFilterNode){filterName="all";grid.allFlag=1;return grid.clearFilter();}newFilterNode.className="filter-click click-"+filterName;newFilterNode.setAttribute("status","active");grid.filter=filterName;grid.filter.attribName={movies:"isMovie",sports:"isSports",kids:"isKids",hdtv:"isHD"}[filterName];if(!styleOnly){gridRequest();}};var stime;var etime;var lid;var cid;var cnum;var title;grid.setSelectedListing=function(listingNode){if(listingNode==null){return false;}var previousListing=grid.selectedListing;if(previousListing!=null){previousListing.className=grid.prevClass;}grid.prevClass=listingNode.className;grid.selectedListing=listingNode;listingNode.className="grid-listing-container listing-selected";if("VODDM"==listingNode.parentNode.parentNode.getAttribute("callsign")){return ;}var pnode=listingNode.parentNode.parentNode;if(!pnode){return ;}stime=listingNode.getAttribute("startTime");etime=listingNode.getAttribute("endTime");lid=listingNode.getAttribute("listingID");cid=pnode.getAttribute("channelID");cnum=pnode.getAttribute("channel");grid.jump=false;grid.jumpChan=cid+"-"+pnode.getAttribute("channel");grid.jumpListing=listingNode.getAttribute("listingID");grid.jumpTime=stime;title=listingNode.getAttribute("title");detailRequest(lid,cid,stime,cnum,title,false,etime);};grid.getSelectedCallsign=function(){if(!grid.selectedListing){return null;}var p=grid.selectedListing.parentNode;if(!p){return null;}var pp=p.parentNode;if(!pp){return null;}var callsign=pp.getAttribute("callsign");return callsign;};grid.getChannelIDByCallsign=function(callsign){var num=0;for(var n in channelMap){var data=channelMap[n];if(typeof data=="function"){continue;}num++;if(data.callsign==callsign){return n;}}if(num==0){return"";}return null;};grid.getRowID=function(channelID){if(!channelID){return null;}if(channelID.indexOf("-")>0){return channelID;}var num=channelMap[channelID].num;if(num){return channelID+"-"+num;}return channelID;};grid.getCallsign=function(channelID){if(!channelID){return null;}var indx=channelID.indexOf("-");if(indx>0){channelID=channelID.substring(0,indx);}var data=channelMap[channelID];if(data){return data.callsign;}return null;};grid.jumpToListing=function(time,channelID,listingID,keepFilter){if(app.status!="grid"){grid.width=document.body.clientWidth;historyClickTab("grid");setView("grid");}if(!channelID||channelID==""){return ;}grid.startTime=roundupTime(time);grid.jump=true;grid.jumpTime=time;grid.jumpChan=grid.getRowID(channelID);grid.jumpListing=listingID;if(!keepFilter){grid.setFilter(getParameter("filter"),true);}if(app.gridSort==0){var callsign=grid.getCallsign(channelID);if(!isFavChannel(callsign)){app.setGridSort(1);}}populateGridTimes();gridRequest();};grid.jumpToGrid=function(callsign,start){if(callsign==null||callsign==""||start==null||start==""||start.length<12){return gridRequest();}var yr=string2Int(start.substring(0,4));var month=string2Int(start.substring(4,6))-1;var dd=string2Int(start.substring(6,8));var hh=string2Int(start.substring(8,10))-app.timeOffset;var mm=string2Int(start.substring(10),0);var date=new Date(yr,month,dd,hh,mm,0);var time=date.getTime();var channelID=grid.getChannelIDByCallsign(callsign);grid.jumpToListing(time,channelID);};grid.resize=function(){var width=document.body.clientWidth;if(width>grid.width){gridRequest();}populateGridTimes();grid.width=width;};grid.scrollToChannel=function(rowID){var row=$(rowID);if(!row){return ;}var gl=$("tvplanner-grid");var ldiv=$("listing-div");var offset=grid.findTop(row)-grid.findTop(gl);ldiv.scrollTop=offset;};grid.closeAllDropdowns=function(){closeDropdownbox($("grid-time-popup"));closeDropdownbox($("grid-date-popup"));closeDropdownbox($("grid-print-popup"));closeDropdownbox($("print-sort-popup"));closeDropdownbox($("bs-when-popup"));closeDropdownbox($("grid-channel-popup"));closeDropdownbox($("bs-ratings-popup"));hideDiv("fav-dialog");};grid.findTop=function(element){var top=0;while(element.offsetParent){top+=element.offsetTop;element=element.offsetParent;}return top;};function detailRequest(listingID,channelID,startTime,channelNum,title,auto,endtime){var url="/detail-html?episodeid="+listingID+"&stationid="+channelID+"&channel="+channelNum+"&episodestarttime="+startTime+"&starttime="+startTime+"&endtime="+endtime+"&zip="+tvGrid.getZip()+"&headendid="+tvGrid.headend+"&tz="+app.tz+"&view=grid&time="+startTime;insertDetails(url);}function StringBuffer(){this.buffer=[];}StringBuffer.prototype.append=function(string){this.buffer.push(string);return this;};StringBuffer.prototype.toString=function(){return this.buffer.join("");};function getParameter(paramName,returnType){if(app.arguments[paramName]==null){return"";}return(returnType==null)?app.arguments[paramName]:getTypedData(app.arguments[paramName],returnType);}function clickChannelItem(node){var idParts=new String(node.id).split("-");var newChannelID=idParts[1];var newChannelNum=idParts[2];var rowID="grid-channel-row-"+newChannelID+"-"+newChannelNum;grid.scrollToChannel(rowID);}function isBoxVisible(box){if(!box){return false;}if(!box.style){return false;}return(box.style.visibility=="visible");}function isDivVisible(id){return isBoxVisible(document.getElementById(id));}function setBoxVisibility(box,isVisible){if(!box){return ;}box.style.visibility=isVisible?"visible":"hidden";}function showBox(box){setBoxVisibility(box,true);}function hideBox(box){setBoxVisibility(box,false);}function showParentBox(box){if(!box){return ;}setBoxVisibility(box.parentNode,true);}function hideParentBox(box){if(!box){return ;}if(!box.parentNode){return ;}setBoxVisibility(box.parentNode,false);}function closeDropdownbox(box,active){if(!box){return ;}if(!isBoxVisible(box)){return ;}setBoxVisibility(box,false);var controlID;var index;switch(box.id){case"grid-time-popup":controlID="grid-time";break;case"grid-date-popup":controlID="grid-date";break;case"grid-print-popup":if(isDivVisible("print-sort-popup")){closeDropdownbox($("print-sort-popup"));}controlID="grid-print";$("img-filter-printer-arrow").style.visibility="hidden";break;case"bs-when-popup":if(app.status=="search"){controlID="search-time";}else{controlID="browse-time";}break;case"grid-channel-popup":if(app.nBrowser!="Safari"){$("grid-channel-popup-inner").style.overflow="hidden";}controlID="grid-header-channel";break;case"bs-ratings-popup":if(app.status=="search"){controlID="search-ratings";}else{controlID="browse-ratings";}break;}if(!controlID){return ;}var cnode=$(controlID);if(!cnode){return ;}cnode.setAttribute("status","inactive");if(active){return ;}if(cnode==$("grid-print")){index=cnode.className.indexOf("grid-filter-over");if(index>0){cnode.className=cnode.className.substr(0,index-1);}}else{var cn=new String(cnode.className).split(" ")[0];if(cn==cnode.className){cn="";}cnode.className=cn;}}function setDivVisibility(id,isVisible){if(!id||id==""){return ;}var box=document.getElementById(id);setBoxVisibility(box,isVisible);}function showDiv(id){setDivVisibility(id,true);}function hideDiv(id){setDivVisibility(id,false);}function popDiv(id,clicknode,containerID,prefer){var box=document.getElementById(id);if(isBoxVisible(box)){closeDropdownbox(box,true);return ;}clicknode.setAttribute("status","active");if(id=="grid-channel-popup"){$("grid-channel-popup-inner").style.overflow="auto";}var container;if(containerID){container=document.getElementById(containerID);}if(!container){container=$("details-container");}if(id=="loc-zip-help-outer"||id=="loc-type-help-outer"||id=="loc-tz-help-outer"||id=="loc-fav-help-outer"){clicknode.setAttribute("status","active");showBox(box);box.style.left=379+"px";box.style.top=66+"px";return ;}else{var offsettop=findTop(clicknode)-findTop(container);var offsetbottom=container.clientHeight-offsettop;if((offsettop>box.clientHeight+25&&prefer!="down")||prefer=="up"){box.style.bottom=offsetbottom+"px";}else{box.style.bottom="auto";var bch=clicknode.clientHeight;if(bch==0){bch=clicknode.offsetHeight;}box.style.top=offsettop+bch+"px";}var offsetleft=findLeft(clicknode)-findLeft(container);if(prefer=="right"){offsetleft=offsetleft-box.offsetWidth+clicknode.offsetWidth;}if(offsetleft>container.clientWidth-box.clientWidth-20){offsetleft=container.clientWidth-box.clientWidth-20;}box.style.left=offsetleft;clicknode.setAttribute("status","active");showBox(box);}}function getParameter(paramName,returnType){if(app.arguments[paramName]==null){return"";}return(returnType==null)?app.arguments[paramName]:getTypedData(app.arguments[paramName],returnType);}function setParameter(paramName,value){app.arguments[paramName]=value;}function clearParameter(paramName){app.arguments[paramName]=null;}function getAllParameters(){var args=[];var query=document.location.search.substring(1);var pairs=query.split("&");for(var i=0;i<pairs.length;i++){var pos=pairs[i].indexOf("=");if(pos==-1){continue;}var argname=pairs[i].substring(0,pos);var value=pairs[i].substring(pos+1);if(argname=="initView"&&(value!="grid"&&value!="browse"&&value!="search"&&value!="ondemand"&&value!="vodresult")){value="grid";}args[argname]=unescape(value);}return args;}function roundupTime(time){var date=new Date(time);var minutes=(date.getMinutes()<30)?0:30;date.setMinutes(minutes);date.setSeconds(0);date.setMilliseconds(0);return date.getTime();}function string2Int(str,defaultValue){var len=str.length;for(var i=0;i<len;i++){if(str.charAt(i)!="0"){break;}}var vstr=str.substring(i);if(vstr==""){return 0;}var ret=parseInt(vstr);if(defaultValue!="undefined"&&isNaN(ret)){ret=defaultValue;}return ret;}function doAlert(msg,clicknode){if(!msg){return ;}var container="content-body";var abox="app-alert";var amsg="alert-msg";if(app.status=="setting"){container="loc-display";abox="app-alert-loc";amsg="alert-msg-loc";}$(amsg).innerHTML=msg;popDiv(abox,clicknode,container);}function isFavChannel(callsign){if(callsign==null||callsign==""){return false;}if(fchannels&&fchannels.indexOf("["+callsign+"]")>=0){return true;}return false;}function isButtonDisabled(id){var button=$(id);if(!button){return false;}var cn=button.className;var index=0;if(cn){index=cn.indexOf("-inactive");}return(index>0);}function disableButton(id){var button=$(id);if(!button){return ;}var cn=button.className;var indx=0;if(cn){indx=cn.indexOf("-inactive");}if(indx>=0){return ;}button.className=cn+"-inactive";}function enableButton(id){var button=$(id);if(!button){return ;}var cn=button.className;var indx=0;if(cn){indx=cn.indexOf("-inactive");}if(indx<0){return ;}if(indx>0){button.className=cn.substring(0,indx);}else{button.className="";}}function getChannelNumFromResult(tDiv){if(!tDiv){return null;}var divs=document.getElementsByClassName("episode-listing-channel",tDiv);if(!divs||divs.length==0){return null;}var node=divs[0];if(!node){return null;}var snode=node.getElementsByTagName("span");if(!snode||!snode[0]){return null;}var str=snode[0].innerHTML;if(!str){return null;}var strs=str.split(" ");if((app.status=="browse"||app.status=="search")&&!isNaN(parseInt(strs[0]))){return strs[0];}else{if(strs.length>1){return strs[1];}}return null;}function updateFavUI(){if(!fchannels||fchannels.length<2){$("sort-opts-0").disabled=true;disableButton("loc-clear");if(app.gridSort==0||currSort==0){currSort=1;app.setGridSort(1);if($("sort-opts-1")){$("sort-opts-1").checked=true;}}}else{enableButton("loc-clear");}}function populateDateDropDown(){var now=new Date();if(now.getDate()==app.today.getDate()&&$("grid-date_2").innerHTML&&$("grid-date_2").innerHTML.length>5){return ;}now.setHours(now.getHours()+app.timeOffset);for(var i=2;i<11;i++){var dt=new Date(now.getTime()+i*millisecondValues.day);var tstr=dt.format("D, M j");var box=$("grid-date_"+i);if(box){box.innerHTML="<span>"+tstr+"</span>";}}}var tvGrid={currentStartTime:0,headend:"",filter:"all",sort:app.getGridSort(),increment:12600000,myportal:"",myportalEmpty:false,shiftingCookies:false,updateAWS:true,update_headend:function(headend){tvGrid.headend=headend;if(document.forms["tvlistings-search-form"]&&document.forms["tvlistings-search-form"].headendId){document.forms["tvlistings-search-form"].headendId.value=headend;}if(app&&app.headend){app.headend=headend;}},update_tz:function(tz){if(app&&app.tz){app.tz=tz;app.dst=determineDST();}if(document.forms["tvlistings-search-form"]&&document.forms["tvlistings-search-form"].tz){document.forms["tvlistings-search-form"].tz.value=tz;}},update_timeoffset:function(timeoffset){if(app){if(!app.tz){app.tz=Prefs.get("tz")||"EASTERN";}if(appTIMEZONES[app.tz]!=timeoffset){timeoffset=appTIMEZONES[app.tz];Prefs.set("timeoffset",timeoffset,Prefs.COOKIE);}setTimeOffset(timeoffset,app.tz);}return timeoffset;},app_timeoffset_hours:function(){if(app.timeOffset){return app.timeOffset*3600000;}else{return 0;}},update_grid:function(offset){var increment=tvGrid.increment;var startTime=tvGrid.currentStartTime+(increment*offset);var endTime=startTime+increment;var filter=tvGrid.filter;var sort=tvGrid.sort;var version=2;var time=startTime;var ssUrl="/stationHtml?starttime="+startTime+"&endtime="+endTime+"&filter="+filter+"&headendid="+this.headend+"&version="+version+"&sort="+sort+"&time="+time;console.log(ssUrl);tvGrid.grid_ajax(ssUrl,startTime);return ;},build_grid:function(startTime,filter){var startTimeDate=new Date(parseInt(startTime));if(startTimeDate.getMinutes()<30){startTimeDate.setMinutes(0,0,0);}else{startTimeDate.setMinutes(30,0,0);}if(filter){tvGrid.filter=filter;}startTime=startTimeDate.getTime();var increment=tvGrid.increment;var endTime=parseInt(startTime)+increment;var filter=tvGrid.filter;var sort=tvGrid.sort;var version=2;var time=startTime;var ssUrl="/stationHtml?starttime="+startTime+"&endtime="+endTime+"&filter="+filter+"&headendid="+this.headend+"&version="+version+"&sort="+sort+"&time="+time;tvGrid.grid_ajax(ssUrl,startTime);lineupRequest(this.headend);return ;},build_primetime:function(){tvGrid.build_grid(tvGrid.getPrimeTime());},getPrimeTime:function(){var tmpTime=new Date();var phr=19;if(app.tz=="EASTERN"||app.tz=="PACIFIC"){phr=20;}var hr=phr-app.timeOffset-app.dst;tmpTime.setHours(hr,0,0,0);return tmpTime.valueOf();},time_update_grid:function(hours){hours=parseInt(hours)-app.timeOffset-app.dst;var increment=tvGrid.increment;var now=new Date(tvGrid.currentStartTime);now.setHours(hours,0,0,0);now.setMinutes(0,0,0);var startTime=now.getTime();console.log("timeupdate: "+startTime);var endTime=parseInt(startTime)+increment;var sort=tvGrid.sort;var filter=tvGrid.filter;var version=2;var time=startTime;var ssUrl="/stationHtml?starttime="+startTime+"&endtime="+endTime+"&filter="+filter+"&headendid="+this.headend+"&version="+version+"&sort="+sort+"&time="+time;console.log(ssUrl);tvGrid.grid_ajax(ssUrl,startTime);return ;},filter_update_grid:function(filter){var increment=tvGrid.increment;var startTime=tvGrid.currentStartTime;var endTime=parseInt(startTime)+increment;var sort=tvGrid.sort;if(filter==tvGrid.filter){filter="all";}tvGrid.filter=filter;var version=2;var time=startTime;var ssUrl="/stationHtml?starttime="+startTime+"&endtime="+endTime+"&filter="+filter+"&headendid="+this.headend+"&version="+version+"&sort="+sort+"&time="+time;console.log(ssUrl);tvGrid.grid_ajax(ssUrl,startTime);return ;},fav_update_grid:function(sort){var increment=tvGrid.increment;var startTime=tvGrid.currentStartTime;var endTime=parseInt(startTime)+increment;tvGrid.sort=sort;var filter=tvGrid.filter;var version=2;var time=startTime;var ssUrl="/stationHtml?starttime="+startTime+"&endtime="+endTime+"&filter="+filter+"&headendid="+this.headend+"&version="+version+"&sort="+sort+"&time="+time;console.log(ssUrl);tvGrid.updateAWS=true;tvGrid.grid_ajax(ssUrl,startTime);return ;},update_times:function(startTime){startTime+=tvGrid.app_timeoffset_hours()+app.dst*3600000;console.log("ut: "+startTime);var now=new Date(startTime);$("grid-date").innerHTML=tvGrid.display_day(now.getDay())+", "+tvGrid.display_month(now.getMonth())+" "+now.getDate();$("gridtime0").innerHTML=tvGrid.format_time(now);now.setTime(now.getTime()+1800000);$("gridtime1").innerHTML=tvGrid.format_time(now);now.setTime(now.getTime()+1800000);$("gridtime2").innerHTML=tvGrid.format_time(now);now.setTime(now.getTime()+1800000);$("gridtime3").innerHTML=tvGrid.format_time(now);now.setTime(now.getTime()+1800000);$("gridtime4").innerHTML=tvGrid.format_time(now);now.setTime(now.getTime()+1800000);$("gridtime5").innerHTML=tvGrid.format_time(now);now.setTime(now.getTime()+1800000);$("gridtime6").innerHTML=tvGrid.format_time(now);},display_day:function(day){var day_array=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return day_array[day];},display_month:function(month){var month_array=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];return month_array[month];},format_time:function(time){var hour=(time.getHours()>12)?time.getHours()-12:time.getHours();if(hour==0){hour=12;}var mins=(time.getMinutes()<30)?"00":"30";var ampm=(time.getHours()<12||time.getHours()==24)?"AM":"PM";return hour+":"+mins+ampm;},grid_ajax:function(ssUrl,startTime){$("grid-loading").style.display="block";$("grid-error").style.display="none";tvGrid.pull_myportal();tvGrid.shiftingCookies=true;if(tvGridFav.useGUID){tvGridFav.setTvpCookieToEvoFavCookie();}var req=new Ajax.Request(ssUrl,{method:"GET",onSuccess:function(transport){console.log("Success");var badHeadend=true;if(transport.responseText.indexOf('<div class="last-grid-row"')>125){badHeadend=false;$("tvplanner-grid").innerHTML=transport.responseText;}$("grid-loading").style.display="none";tvGrid.currentStartTime=startTime;tvGrid.update_times(tvGrid.currentStartTime);loggerTime=new Date(tvGrid.currentStartTime);console.log("currentStartTime: "+tvGrid.currentStartTime+" - "+loggerTime.getHours()+":"+loggerTime.getMinutes());tvGrid.restore_myportal();if(tvGridFav.useGUID){tvGridFav.clearTvpCookie();}tvGrid.shiftingCookies=false;if(badHeadend){var zipVal=tvGrid.getZip();showOverlay(function(){if(zipVal){return HeadEndWindow.create_window(zipVal);}else{return HeadEndWindow.create_window();}});}},onFailure:function(){$("grid-loading").style.display="none";$("grid-error").style.display="block";tvGrid.restore_myportal();if(tvGridFav.useGUID){tvGridFav.clearTvpCookie();}tvGrid.shiftingCookies=false;}});},pull_myportal:function(){if(tvGrid.myportal==""||tvGrid.myportal!=0){var MYPORTAL=(document.cookie||"").match(/\s*MYPORTAL=([^;]*);?/);if(MYPORTAL){if(tvGrid.myportal==""){tvGrid.myportal="MYPORTAL="+getCookie("MYPORTAL");}deleteCookie("MYPORTAL");tvGrid.myportalEmpty=true;}else{tvGrid.myportal=0;}}},restore_myportal:function(){if(tvGrid.myportal&&tvGrid.myportalEmpty){if(tvGrid.myportal.indexOf("auto=1")!=-1){var twoYears=new Date((new Date()).getTime()+(millisecondValues.years)*2);var cookieExpires="; expires="+twoYears.toGMTString();}else{var cookieExpires="";}document.cookie=tvGrid.myportal+"; path=/; domain=.comcast.net"+cookieExpires;tvGrid.myportalEmpty=false;if(tvGrid.updateAWS){tvGrid.awsStore();tvGrid.updateAWS=false;}}},displayHeadendSettings:function(zip,label){$("headend-setting-zip").innerHTML=zip;if(label){$("headend-setting-name").innerHTML=label;}$("tvlistings-postalcode-form").style.display="none";$("your-grid-settings").style.display="block";},getZip:function(){var tvZip=Prefs.get("tvZip");return(tvZip)?tvZip:document.config.defaultZip;},build:function(){if(HeadEndWindow.topWindowQS.indexOf("initGridTime=PrimeTime")!=-1){tvGrid.build_primetime();}else{if(HeadEndWindow.topWindowQS.indexOf("filter=")!=-1){var filterVal=HeadEndWindow.topWindowQS.substring(HeadEndWindow.topWindowQS.indexOf("filter=")+7);tvGrid.build_grid((new Date()).getTime(),filterVal);}else{tvGrid.build_grid((new Date()).getTime());}}},awsStore:function(){if(tvGridFav.portalCookie){var tvPrefs=["headEndId","tz","timeoffset","tvZip"];Prefs.bundle(function(){jQuery.each(tvPrefs,function(){var pref=Prefs.get(this);if(pref){Prefs.set(this,pref,Prefs.TV);}});if(fchannels.length>0){Prefs.set(fcookie,fchannels,Prefs.TV);}});}}};addLoadEvent(function(){if(location.href.indexOf("tv-listings")!=-1){var type=(new RemoteSchedulingActivation()).authed();if(type=="guideworks"){location.href="/tv/rdvr-listings/";}else{if(type=="tivo"){location.href="/tv/tivo-listings/";}}}});addLoadEvent(function(){var headEnd=Prefs.get("headEndId");var tz=Prefs.get("tz");var timeoffset=Prefs.get("timeoffset");var tvZip=Prefs.get("tvZip");if(tz){tvGrid.update_tz(tz);}if(timeoffset){tvGrid.update_timeoffset(timeoffset);}if(window.location.search.indexOf("headend=")>0){headEnd=window.location.search.substring(9);Prefs.set("headEndId",headEnd,Prefs.COOKIE);}if(!headEnd){headEnd=document.config.defaultHeadend;}tvGrid.update_headend(headEnd);if(tvZip){tvGrid.displayHeadendSettings(tvZip);}else{$("tvlistings-postalcode-form").style.display="block";}console.log("about to call fbs.init");if(is_safari){console.log("waiting for Safari");setTimeout(function(){fbs.init("store","tvGridFav.fbsInitCallback");},100);}else{fbs.init("store","tvGridFav.fbsInitCallback");}console.log(tvGridFav.fsoGUIDname+": "+tvGridFav.fsoGUIDval);console.log(tvGridFav.fsoTVPname+": "+tvGridFav.fsoTVPval);console.log("fbs.init called");setTimeout(function(){if(!fbs.fbsInit){console.log("forcing grid build");tvGridFav.fbsInitFail();}else{console.log("everything going as planned :-)");}},1000);$("grid-backward").onclick=function(){tvGrid.update_grid("-1");return false;};$("grid-forward").onclick=function(){tvGrid.update_grid("1");return false;};$("grid-detail-close").onclick=function(){jQuery("#grid-capsule").removeClass("detailView");jQuery("div.listing-selected").removeClass("listing-selected");$("tvlistings-searchResults-details-module").style.display="none";return false;};$("grid-prime").onclick=function(){tvGrid.build_primetime();return false;};$("grid-print").onclick=function(){window.print();return false;};$("tvlistings-postalcode-form").onsubmit=function(){showOverlay(function(){return HeadEndWindow.create_window($("tvlistings-postalcode-input").value);});return false;};$("grid-settings-change").onclick=function(){showOverlay(function(){return HeadEndWindow.create_window();});return false;};jQuery("#grid-date").bind("click",function(evt){jQuery("#grid-time-dd").removeClass("open");jQuery("#grid-header-left-channel > dl").removeClass("open");});jQuery("#grid-time").bind("click",function(evt){jQuery("#grid-date-dd").removeClass("open");jQuery("#grid-header-left-channel > dl").removeClass("open");});jQuery("#grid-header-channel").bind("mousedown",function(evt){jQuery("#grid-date-dd").removeClass("open");jQuery("#grid-time-dd").removeClass("open");});});(function($){window.insertDetails=function(url){$("#tvlistings-searchResults-details-module .capsule").load(url,function(){$("#tvlistings-searchResults-details-module .wrapper").removeClass("withimage");$("#tvlistings-searchResults-details-module .wrapper:has(#details-image-container img)").addClass("withimage");$(".details-flag").attr("src",function(idx){if(/(.*)img\/(.*)/.test(this.src)){return"/ui/images/cascade/lib/tvchannel/"+this.src.match(/(.*)img\/(.*)/)[2];}});$("#details-channel-header img.details-flag").appendTo("#details-showtime");$("#details-showtime").contents().appendTo("#details-channel-header");$("#details-channel-num").contents().appendTo("#details-channel-data");$("#details-description").appendTo("#details-text-container");$("#detail-vod-help").attr({onmouseover:function(){return false;},onmouseout:function(){return false;},click:function(){return false;}});if($("#grid-capsule")){$("#grid-capsule").addClass("detailView");}$("#tvlistings-searchResults-details-module").show();});};})(jQuery);
/* /modules/overlays/tv_headend.js */
var HeadEndWindow={window_id:"headend",zip:"",topWindowQS:window.location.search,update_headend:function(evt){var headendId=this.getAttribute("headend");if(headendId){Prefs.set("headEndId",headendId,Prefs.COOKIE);if(tvGrid&&tvGrid.update_headend){tvGrid.update_headend(headendId);}}var tz=this.getAttribute("tz");if(tz){Prefs.set("tz",tz,Prefs.COOKIE);if(tvGrid&&tvGrid.update_tz){tvGrid.update_tz(tz);}}var timeoffset=this.getAttribute("timeoffset");if(timeoffset){Prefs.set("timeoffset",timeoffset,Prefs.COOKIE);if(tvGrid&&tvGrid.update_timeoffset){tvGrid.update_timeoffset(timeoffset);}}if(HeadEndWindow.zip!=""){Prefs.set("tvZip",HeadEndWindow.zip,Prefs.COOKIE);}if(tvGrid.headend&&headendId){tvGrid.headend=headendId;tvGrid.updateAWS=true;tvGrid.build_grid(tvGrid.currentStartTime);Window.hide_all();tvGrid.displayHeadendSettings(HeadEndWindow.zip,this.innerHTML);return false;}},localizationError:'<div class="localization-error-message"><b>We are Sorry</b><p>We are unable to find a match in our system for the zip code you entered.  You have a few options with which to proceed:</p><ol><li>You can provide another zip code (try one near your house).</li><li class="error-feedback">If you currently subscribe to Comcast cable, you can reach a customer service representative at 1-800-COMCAST, or <a href="http://www.comcastsupport.com/sdcxuser/lachat/user/tvplannerfeedback.asp">send us a note</a> at Comcast Support.</li><li class="error-signup">If you are not a Comcast subscriber, check back soon for expanded listings, or <a href="http://www.comcast.com">sign up</a> for Comcast Cable!</li></ol></div>',create_window:function(zip){if(!$(this.window_id)&&!this.load_overlay()){alert("Provider selection is currently unavailable. Please try again.");return false;}var zipForm=$("headend-zip-form");zipForm.onsubmit=function(){HeadEndWindow.check_rdvr($("headend-zip").value);HeadEndWindow.zip=$("headend-zip").value;new Ajax.Request("/zip?zip="+$("headend-zip").value,{method:"get",onSuccess:function(resp){var headends=[];try{var headend_data=resp.responseXML;if(is_ie){xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(resp.responseText);headend_data=xmlDoc;}var headends=headend_data.getElementsByTagName("headend");}catch(e){}var headend_list=$("headend-list");while(headend_list.childNodes.length>0){headend_list.removeChild(headend_list.childNodes[0]);}if(headends.length==0){var li=document.createElement("li");li.innerHTML=HeadEndWindow.localizationError;headend_list.appendChild(li);}for(var i=0;i<headends.length;i++){var li=document.createElement("li");var anchor=document.createElement("a");if(document.getElementById("odlistings-module")){anchor.href=document.location+HeadEndWindow.topWindowQS;}else{anchor.href="/tv/tv-listings/"+HeadEndWindow.topWindowQS;}anchor.setAttribute("headend",headends[i].getAttribute("id"));anchor.setAttribute("tz",headends[i].getAttribute("tz"));anchor.setAttribute("timeoffset",headends[i].getAttribute("timeoffset"));anchor.innerHTML=headends[i].getAttribute("title");anchor.onclick=HeadEndWindow.update_headend;li.appendChild(anchor);headend_list.appendChild(li);}}});return false;};if(zip){$("headend-zip").value=zip;HeadEndWindow.zip_submit();}var win=new Window(this.window_id,this.window_id+"-close");return win;},zip_submit:function(){HeadEndWindow.check_rdvr($("headend-zip").value);HeadEndWindow.zip=$("headend-zip").value;new Ajax.Request("/zip?zip="+$("headend-zip").value,{method:"get",onSuccess:function(resp){var headends=[];try{var headend_data=resp.responseXML;if(is_ie){xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(resp.responseText);headend_data=xmlDoc;}var headends=headend_data.getElementsByTagName("headend");}catch(e){}var headend_list=$("headend-list");while(headend_list.childNodes.length>0){headend_list.removeChild(headend_list.childNodes[0]);}if(headends.length==0){var li=document.createElement("li");li.innerHTML=HeadEndWindow.localizationError;headend_list.appendChild(li);}for(var i=0;i<headends.length;i++){var li=document.createElement("li");var anchor=document.createElement("a");anchor.href="/tv/tv-listings/"+HeadEndWindow.topWindowQS;anchor.setAttribute("headend",headends[i].getAttribute("id"));anchor.setAttribute("tz",headends[i].getAttribute("tz"));anchor.setAttribute("timeoffset",headends[i].getAttribute("timeoffset"));anchor.innerHTML=headends[i].getAttribute("title");anchor.onclick=HeadEndWindow.update_headend;li.appendChild(anchor);headend_list.appendChild(li);}}});},check_rdvr:function(zip){var zipForm=$("headend-zip-form");var rdvrZips=zipForm["rdvr-zips"].value.split(",");for(var i=0;i<rdvrZips.length;i++){}return ;},load_overlay:function(){var req=new Ajax.Request("/tv/tv-listings/lineups/",{method:"get",asynchronous:false});if(req.responseIsFailure()){return false;}var placeholder=document.createElement("div");placeholder.innerHTML=req.transport.responseText;document.body.appendChild(placeholder);setTimeout(function(){$("headend-zip").focus();},100);return true;}};addLoadEvent(function(){var headEnd=Prefs.get("headEndId");if(HeadEndWindow.topWindowQS.indexOf("zipcode=")!=-1){var zipVal=HeadEndWindow.topWindowQS.substring(HeadEndWindow.topWindowQS.indexOf("zipcode=")+8);}if(!headEnd){showOverlay(function(){if(zipVal){return HeadEndWindow.create_window(zipVal);}else{return HeadEndWindow.create_window();}});}});
/* /lib/beta/aws_pref_store.js */
var BufferedStore=(function($){return $.extend({},PrefStore,{_buffer:null,_buffer_changed:false,_load_buffer:function(){throw this.not_implemented;},_write_buffer:function(){throw this.not_implemented;},commit:function(){if(!this._buffer_changed){return ;}this._write_buffer();this._buffer_changed=false;},get:function(name){this._load_buffer();if(this._buffer==null||typeof this._buffer[name]=="undefined"){throw this.no_value;}return this._buffer[name];},set:function(name,value){this._load_buffer();if(this._buffer!=null){this._buffer[name]=value;this._buffer_changed=true;}},remove:function(name){this._load_buffer();delete this._buffer[name];this._buffer_changed=true;}});})(jQuery);var AWSStore=(function($){return $.extend({},BufferedStore,{_name:null,_bucket:null,_url_node:null,_aws_root:null,_is_logged_in:function(){return !!getPortalData();},_get_guid:function(){return getPortalData().guid;},_load_buffer:function(){if(this._buffer!=null){return ;}if(!this._is_logged_in()){this._buffer=null;return ;}var resp=$.ajax({async:false,cache:false,type:"GET",url:"/user/authkey/service/amazonget/",data:{guid:this._get_guid(),service:this._bucket,fmt:"xml",ts:(new Date()).getTime()},dataType:"xml"});var uri=$(resp.responseXML).find(this._url_node).text().replace(/https:\/\/.*?\//,this._aws_root);var resp=$.ajax({async:false,cache:false,type:"GET",url:uri,dataType:"xml"});if(resp.status==200){this._buffer=$.cookie.decode(resp.responseText);}else{this._buffer={};}this._buffer_changed=false;},_write_buffer:function(){if(this._buffer==null){return ;}if(!this._is_logged_in()){return ;}var value=$.cookie.encode(this._buffer);var _this=this;$.ajax({url:"/user/authkey/service/amazonpost/",data:{guid:this._get_guid(),service:this._bucket,fmt:"xml",ts:(new Date()).getTime()},type:"GET",success:function(data,textStatus){var accessKey=$(data).find("accessKey").text();var policy=$(data).find("policy").text();var signature=$(data).find("signature").text();var encrypted_guid=$(data).find("encryptedGuid").text();var boundary=parseInt(2147483647*Math.random())+"";var fields={key:"uploads/"+encrypted_guid,policy:policy,signature:signature,AWSAccessKeyId:accessKey,acl:"private","Content-Type":"text/plain",file:value};var content="";for(var i in fields){content+=["--"+boundary,'Content-Disposition: form-data; name="'+i+'"',"",fields[i],""].join("\r\n");}content+="--"+boundary+"--";$.ajax({url:_this._aws_root,type:"POST",contentType:"multipart/form-data; boundary="+boundary,processData:false,data:content});}});}});})(jQuery);var TvAWSStore=(function($){return $.extend({},AWSStore,{_bucket:"tvservice",_url_node:"signedTvUrl",_aws_root:"/aws/tv/"});})(jQuery);var FancastAWSStore=(function($){return $.extend({},TvAWSStore,{_is_logged_in:function(){console.log("the FancastAWSStore checked window.parent.user.signedIn which returned "+window.parent.user.signedIn);return window.parent.user.signedIn;},_get_guid:function(){return"";}});})(jQuery);Prefs.TV="tv";Prefs._stores.tv=TvAWSStore;Prefs._search_order.push("tv");
/* /lib/beta/cookie.js */
jQuery.cookie=(function($){return{__read:function(name){var cookies=document.cookie.split(";");var re=new RegExp("(?:^|\\s+)"+name+"=(.*)");for(var i=0,l=cookies.length;i<l;i++){var match=cookies[i].match(re);if(match){return match[1];}}return null;},__write:function(name,value,options){options[name]=value;var keys=[name,"expires","path","domain"],parts=[];for(var i=0,l=keys.length;i<l;i++){if(typeof options[keys[i]]=="undefined"){continue;}parts.push([keys[i],options[keys[i]]].join("="));}document.cookie=parts.join("; ");},__remove:function(name,options){this.write(name,"",$.extend(options,{expire_days:-1}));},read:function(name){var value=this.__read(name);if(value===null){var t,i=0;while(t=this.__read([name,i].join("."))){value=(value||"")+t;i++;}}return value;},write:function(name,value,options){var cookie_data=$.extend({path:"/",domain:".comcast.net"},options);if(typeof cookie_data.expire_days!="undefined"){var d=new Date();d.setTime(d.getTime()+cookie_data.expire_days*86400000);cookie_data.expires=d.toGMTString();}if(typeof cookie_data.expire_date!="undefined"){cookie_data.expires=cookie_data.expire_date.toGMTString();}var max_length=4000;if(value.length<max_length){this.__write(name,value,cookie_data);}else{this.remove(name,options);var i=0;while(value.length>0){this.__write([name,i].join("."),value.substr(0,max_length),cookie_data);value=value.substr(max_length);i++;}}},remove:function(name,options){if(this.__read(name)!==null){this.__remove(name,options);}else{var i=0;while(this.__read([name,i].join("."))){this.__remove([name,i].join("."),options);i++;}}},encode:function(data){var results=[];$.each(data,function(i,v){results.push([i,v.replace("%","%25").replace(";","%3B")].join("="));});return results.join("&");},decode:function(data){if(!data){return{};}var results={},pairs=data.split("&");for(var i=0,l=pairs.length;i<l;i++){var nv=pairs[i].split("=");results[nv[0]]=unescape(nv[1]);}return results;}};if(!getPortalData()){$.cookie.remove("edata");$.cookie.remove("xedata");$.cookie.remove("entitlementPageViewCount");}})(jQuery);
/* /modules/remotescheduling/activation.js */
var RemoteSchedulingActivation=function(){this.current_user_id=getPortalData().em;this.deviceType=Prefs.get("rs_auth");if(!this.authed()){this.attemptMigration()}};RemoteSchedulingActivation.prototype={loggedIn:function(){return getPortalData()},attemptMigration:function(){this.users={tauth:this.readCookie("rs_tauth"),gauth:this.readCookie("rs_gauth")};if(this.authed()){this.deviceType=this.authed();this.store()}},readCookie:function(B){var A=Prefs.get(B);if(A){return jQuery.map(A.split("&"),function(C){return unescape(C)})}else{return[]}},store:function(){if(this.deviceType){Prefs.set("rs_auth",this.deviceType,Prefs.TV)}},enable:function(A){this.deviceType=A;this.store()},authed:function(){if(this.deviceType){return this.deviceType}else{if(this.users){if(jQuery.inArray(this.current_user_id,this.users.gauth)!=-1){return"guideworks"}else{if(jQuery.inArray(this.current_user_id,this.users.tauth)!=-1){return"tivo"}}}}},checkAvailability:function(A,B){if(!A||A==""){console.log("[RemoteSchedulingActivation] checkAvailability : no zipcode provided");return }jQuery.get("/user/authkey/rtivo/validateZipcode/?zipcode="+A,function(D,E){var C=jQuery.xml(D).find("validateZipcode").text()=="available";if(B){B(C)}})},validate:function(F,C,E){if(this.loggedIn()){var D=new RemoteSchedulingUser();var A=this;var B=function(H,G){A.enable(G[0].type);if(F){F(G[0].type)}};jQuery(D).one(RemoteSchedulingUserEvents.DEVICES_LOADED,B);jQuery(D).one(RemoteSchedulingUserEvents.DEVICES_REGISTRATION_PENDING,B);if(E){jQuery(D).one(RemoteSchedulingUserEvents.DEVICE_LOAD_PENDING,E)}if(C){jQuery(D).one(RemoteSchedulingUserEvents.DEVICE_LOAD_FAILED,function(G,H){C(H)})}D.loadDevices()}else{location.href=document.config.getSigninHref}}};
