﻿/* Global Page-Scope Ad Variables */
var traxAdCount = 0;
var dartTile = 1;
/* ingrid ad counter */
var gridTile = 1;

try {
	if(!bTopRowGridAd) { gridTile = 2; }
}
catch(e) {
	gridTile = 1;
}

var tvgtoday = new Date();
var dartOrd = tvgtoday.getTime();

var adsIsIE = (navigator.userAgent.toLowerCase().indexOf("msie")>=0);
var adsIsSafari = (navigator.userAgent.toLowerCase().indexOf("safari")>=0);
var adsIsChrome = (navigator.userAgent.toLowerCase().indexOf("chrome")>=0);

var framePrefix = "adframe_";
var frameArray = new Array();
var useIFrames = false;
var bDelayLoad = false;

var strRelativePath = document.location.pathname.toLowerCase();

function isEmptyString(str)
{
	if(str===null) { return true; }
	if(str==="") { return true; }
	if(str.length<=0) { return true; }
	return false;
}

/* apply rules for 'moving' ads */
function isAdPositionEnabled(position)
{	
	try
	{   
		if((strRelativePath=='\/home.aspx')||(strRelativePath=='\/'))
		{
			switch(position)
			{
				case "banner_top_0":
					return (slot_banner_top_HP === 0);
				case "banner_top_1":
					return (slot_banner_top_HP == 1);	
				case "box_300x250_0":
					return (slot_box_300x250_HP === 0);
				case "box_300x250_1":
					return (slot_box_300x250_HP == 1);	
				case "wallpaper":
				case "wallpaperhead":
				case "wallpaperfoot":		
					return bEnableWallpaperAds_HP;
				case "richmedia":
					return bEnableRichmediaAds_HP;	
				default: break;	
			}
		}
		else if (strRelativePath.indexOf('\/listings')===0)
		{
			switch(position)
			{
				case "banner_top_0":
					return (slot_banner_top_LST === 0);
				case "banner_top_1":
					return (slot_banner_top_LST == 1);	
				case "wallpaper":
				case "wallpaperhead":
				case "wallpaperfoot":		
					return bEnableWallpaperAds_LST;
				case "richmedia":
					return bEnableRichmediaAds_LST;		
				default: break;	
			}
		}
		else
		{
			switch(position)
			{
				case "banner_top_0":
					return (slot_banner_top === 0);
				case "banner_top_1":
					return (slot_banner_top == 1);	
				case "box_300x250_0":
					return (slot_box_300x250 === 0);
				case "box_300x250_1":
					return (slot_box_300x250 == 1);	
				case "wallpaper":
				case "wallpaperhead":
				case "wallpaperfoot":		
					return bEnableWallpaperAds;
				case "richmedia":
					return bEnableRichmediaAds;		
				default: break;	
			}
		}
	}
	catch(err)
	{
	}
	
	return true;
}

function getGoogleAdTag(gaWd,gaHt)
{
	if(!bypassAds()) { document.write("<scr" + "ipt language='javascript' src='http:\/\/pagead2.googlesyndication.com/pagead/show_ads.js'>" + "<\/scr" + "ipt>"); }
	else { document.write("<table align='center' style='width:"+gaWd+"px;height:"+gaHt+"px;display:block;background-color:#AAAAAA;'><tr><td style='text-align:center;vertical-align:middle;'><center>Google Ads<br>"+gaWd+"x"+gaHt+"<\/center><\/td><\/tr><\/table>"); }
}

function drawMoveableDartTag(position, divID)
{
    var urlDART = getDARTag(position);    

    if(urlDART.length<=0) { return; }
	
	var obj = document.getElementById(divID);
	obj.style.display = "block";
		    
    if(bypassAds())
    {
        document.write(urlDART);
    }
    else
    {    
		/* no script tags for iframed ads */
		if(urlDART.indexOf("iframe")>=0)
		{
			document.write(urlDART);
		}
		else
		{		
			/* wrap the returned URL in a script tag */
			document.write("<scr"+"ipt type='text/javascript' language='javascript' src='" + urlDART + "'></scr"+"ipt>");
			
			/* BUG FIX: write the wallpaperhead ad twice for safari/chrome browsers */
			if( (position=="wallpaperhead") && ((adsIsSafari)||(adsIsChrome)) )
			{ document.write("<scr"+"ipt type='text/javascript' language='javascript' src='" + urlDART + "'></scr"+"ipt>"); }	
			
			traxAdCount++;			
		}
    }
}


function drawDartTagWithDiv(position, styleID, styleClass)
{
    var urlDART = getDARTag(position);    

    if(urlDART.length<=0) { return; }
	
	/* wrap the script tag in a DIV with the ID and CLASS passed in */
	document.write("<div id='"+styleID+"' class='"+styleClass+"'>");
		    
    if(bypassAds())
    {
        document.write(urlDART);
    }
    else
    {    
		/* no script tags for iframed ads */
		if(urlDART.indexOf("iframe")>=0)
		{
			document.write(urlDART);
		}
		else
		{		
			/* wrap the returned URL in a script tag */
			document.write("<scr"+"ipt type='text/javascript' language='javascript' src='" + urlDART + "'></scr"+"ipt>");
			
			/* BUG FIX: write the wallpaperhead ad twice for safari/chrome browsers */
			if( (position=="wallpaperhead") && ((adsIsSafari)||(adsIsChrome)) )
			{ document.write("<scr"+"ipt type='text/javascript' language='javascript' src='" + urlDART + "'></scr"+"ipt>"); }				
		}
    }
	document.write("</div>");    
}

function getFullDARTad(position)
{
    var urlDART = getDARTag(position);

    if (position === "meebo") {
        TVGOL.services.Meebo.ad = urlDART;
        return;
    }   
    
    if(bypassAds())
    {
        document.write(urlDART);
    }
    else
    {    
        if(urlDART.length>0)
        {
			/* no script tags for iframed ads */
			if(urlDART.indexOf("iframe")>=0)
			{
				document.write(urlDART);
			}
			else
			{
				/* wrap the returned URL in a script tag */
				document.write("<scr"+"ipt type='text/javascript' language='javascript' src='" + urlDART + "'></scr"+"ipt>");
				
				/* BUG FIX: write the wallpaperhead ad twice for safari/chrome browsers */
				if( (position=="wallpaperhead") && ((adsIsSafari)||(adsIsChrome)) )
				{ document.write("<scr"+"ipt type='text/javascript' language='javascript' src='" + urlDART + "'></scr"+"ipt>"); }
				traxAdCount++;			
			}
        }    
    }
}

function refreshAllAds()
{
	var frm = null;
	if(adsIsIE) {
	    dartTile = 1;
    }
    else {
        dartTile = 2;
    }
    gridTile = 1;
	if(!bTopRowGridAd) { gridTile = 2; }
    
    tvgtoday = new Date();
    dartOrd = tvgtoday.getTime();
	
	for(var x=0; x<frameArray.length; x++)
	{
		var strID = frameArray[x];
		frm = document.getElementById(strID);
		if(frm)
		{
			strID = strID.replace(framePrefix,"");			
			strID = strID.replace(/^\d+\_/,"");
			frm.src = getDARTagEX(strID, true);
		}
	}
}

function refreshAllAdsEx(bOnlyEmptyFrames)
{	
	var frm = null;
	if(adsIsIE) {
	    dartTile = 1;
    }
    else {
        dartTile = 2;
    }
    gridTile = 1;
	if(!bTopRowGridAd) { gridTile = 2; }
    
    tvgtoday = new Date();
    dartOrd = tvgtoday.getTime();
	
	for(var x=0; x<frameArray.length; x++)
	{
		var strID = frameArray[x];
		frm = document.getElementById(strID);		
		if(frm)
		{
			if( (!bOnlyEmptyFrames) ||  ((bOnlyEmptyFrames)&&(isEmptyString(frm.src))) )	
			{
				strID = strID.replace(framePrefix,"");			
				strID = strID.replace(/^\d+\_/,"");
				frm.src = getDARTagEX(strID, true);
			}
		}
	}
}


function getDARTImageTag(position)
{
    var urlDART = getDARTag(position);   
    var tagImg = urlDART.replace('/adj/','/ad/');
    var tagURL = urlDART.replace('/adj/','/jump/');
    var strImageAd = "<div><a href=\"" + tagURL + "\"><img src=\"" + tagImg + "\" alt=\"\"></a></div>";
    return strImageAd;
}

function getDARTag(position)
{
	 return getDARTagEX(position, false);	
}

function getDARTagEX(position, rawframe)
{
    var url = document.location.pathname;
    var site = "";
    var baseSite = "root";    
    var s1 = "";
    var s2 = "";
    var pos = "";
    var size = "";
    var iHt = 0;
    var iWd = 0;
    var bDetail = false;
    var bSubSpecial = false;    
    var bAllowIFrame = true;
    
    /* make sure the slot is "on" */
	if(!isAdPositionEnabled(position)) { return ""; }
        
    /* 4-18-08 fix problems with apostrophes */  
    url = url.replace("'","");
    
    /* 4-18-08 fix problems with quotes */
    url = url.replace("\"","");
      
    url = url.toLowerCase();
    position = position.toLowerCase();
    

    /* HACK: for news-views we send real url */
    try
    {
        /* HACK HACK: no REAL URL for photo */
        if(strRealURL)
        {   
            if(strRealURL.length>0)
            {  
                url = strRealURL;
            }
        }    
    }
    catch(err)
    {
        /* do nothing - fail silently */
    }
            
    switch(position)
    {
        case "banner_top" : 
        case "banner_top_0" :         
        case "banner_top_1" : 
            size = "728x90";
            pos = "top";
            iWd = 728; iHt = 90;
            break;
        case "banner_bottom" : 
            size = "728x90";
            pos = "bottom";
            iWd = 728; iHt = 90;
            break;
        case "mid_banner" : 
            size = "728x90";
            pos = "ingrid";
            iWd = 728; iHt = 90;
            break;
        case "box_300x250" : 
        case "box_300x250_0" : 
        case "box_300x250_1" : 
            size = "300x250";
            pos = "right";
            iWd = 300; iHt = 250;
            break;
        case "mag_300x250":
            size = "300x250";
            pos = "right";
            iWd = 300; iHt = 250;
            break;
        case "sky_160x600":
            size = "160x600";
            pos = "right";
            iWd = 160; iHt = 600;
            break;
        case "inline":
            size = "300x250";
            pos = "right";
            iWd = 300; iHt = 250;
            break;
        case "header_320x55":
            size = "320x55";
            pos = "head";
            iWd = 320; iHt = 55;
            break;
        case "photo_gallery":
            size = "300x250";
            pos = "photo_gallery";
            iWd = 300; iHt = 250;
            break;
        case "promo_320x95":
            size = "320x95";
            pos = "right1";
            iWd = 320; iHt = 95;
            break;
		case "richmedia":
            size = "1x1";
            pos = "richmedia";
            iWd = 1; iHt = 1;
            bAllowIFrame = false;
            break;
        case "listings_right":
            size = "160x600";
            pos = "listings_right";
            iWd = 160; iHt = 600;
            break;
        case "listingstop":
            size = "220x50";
            pos = "listingstop";
            iWd = 220; iHt = 50;
            break;
        case "wallpaper":
            size = "2x2";
            pos = "wallpaper";
            iWd = 2; iHt = 2;
            bAllowIFrame = false;
            break;
        case "hpvideo":
            size = "160x30";
            pos = "hpvideo";
            iWd = 160; iHt = 30;
            break;
        case "hpfullepisodes":
            size = "160x30";
            pos = "hpvideo";
            iWd = 160; iHt = 30;
            break;               
        case "hphotlist":
            size = "160x30";
            pos = "hphotlist";
            iWd = 160; iHt = 30;
            break;
        case "hpspotlight":
            size = "160x30";
            pos = "hpspotlight";
            iWd = 160; iHt = 30;
            break;
        case "hpbreaking":
            size = "160x30";
            pos = "hpbreaking";
            iWd = 160; iHt = 30;
            break;
        case "ovghead":
            size = "295x35";
            pos = "ovghead";
            iWd = 295; iHt = 35;
            break;
        case "halfpage":
            size = "300x600";
            pos = "halfpage";
            iWd = 300; iHt = 600;
            break;
        case "wallpaperhead":
            /* Non-IE Browsers get the wallpaper at the top of the page */
            if(adsIsIE) { return ""; }
            size = "2x2";
            pos = "wallpaper";
            iWd = 2; iHt = 2;
			bAllowIFrame = false;            
            break;
        case "wallpaperfoot":
            /* IE gets the wallpaper at the bottom of the page */
            if(!(adsIsIE)) { return ""; }
            size = "2x2";
            pos = "wallpaper";
            iWd = 2; iHt = 2;
			bAllowIFrame = false;            
            break;
        case "textlink":
            size = "5x5";
            pos = "textlink";
            iWd = 5; iHt = 5;
            break;            
        case "objlistings":
            size = "160x30";
            pos = "objlistings";
            iWd = 160; iHt = 30;
            break;
        case "quiz":
            size = "160x30";
            pos = "quiz";
            iWd = 160; iHt = 30;
            break;
        case "ovgfly":
            size = "162x33";
            pos = "ovgfly";
            iWd = 162; iHt = 33;
            break;
        case "hptonights":
            size = "160x30";
            pos = "hptonights";
            iWd = 160; iHt = 30;
            break;
        case "hplastnights":
            size = "160x30";
            pos = "hplastnights";
            iWd = 160; iHt = 30;
            break;
        case "hpbna":
            size = "160x30";
            pos = "hpbna";
            iWd = 160; iHt = 30;
            break;
       case "hpfeatureddvd":
            size = "160x30";
            pos = "hpfeatureddvd";
            iWd = 160; iHt = 30;
            break;
        case "hphotornot":
            size = "160x30";
            pos = "hphotornot";
            iWd = 160; iHt = 30;
            break;
        case "onebyone":
            size = "1x1";
            pos = "onebyone";
            iWd = 1; iHt = 1;
			bAllowIFrame = false;                        
            break;
        case "tvglogo":
            size = "110x81";
            pos = "tvglogo";
            iWd = 110; iHt = 81;
			bAllowIFrame = false;                        
            break;
        case "prestitial":
            size = "800x500";
            pos = "prestitial";
            iWd = 800; iHt = 500;
            bAllowIFrame = false;            
            break;
        case "closeup":
            size = "468x60";
            pos = "closeup";
            iWd = 468; iHt = 60;
            break;
        case "sponsorbar":
            size = "160x30";
            pos = "sponsorbar";
            iWd = 160; iHt = 30;
            break;
        case "networkhome":
            size = "620x299";
            pos = "networkhome";
            iWd = 620; iHt = 299;
            break;
        case "networkstamp":
            size = "620x299";
            pos = "networkstamp";
            iWd = 620; iHt = 299;
            break;
        case "ipad_sky_160x600":
            size = "160x600";
            pos = "ipad_right";
            iWd = 160; iHt = 600;
            break;
        case "ipad_banner_bottom" : 
            size = "728x90";
            pos = "ipad_bottom";
            iWd = 728; iHt = 90;
            break;
        case "curb_object" : 
            size = "620x210";
            pos = "curb_object";
            iWd = 620; iHt = 210;
            break;
        case "magazine_620x80" : 
            size = "620x80";
            pos = "magazine_620x80";
            iWd = 620; iHt = 80;
            break;
        case "meebo":
            size = "1x1";
            pos = "meebo";
            iWd = 1; iHt = 1;
            bAllowIFrame = false;
            break;
        case "chksponsortracker":
            size = "1x1";
            pos = "chksponsortracker";
            iWd = 1; iHt = 1;
            break;
        case "chkprogtracker":
            size = "1x1";
            pos = "chkprogtracker";
            iWd = 1; iHt = 1;
            break;
        case "chksponlow":
            size = "160x30";
            pos = "chksponlow";
            iWd = 160; iHt = 30;
            break;
        case "spontopvideo":
            size = "160x30";
            pos = "spontopvideo";
            iWd = 160; iHt = 30;
            break;
        case "hprankingslogo":
            size = "160x30";
            pos = "hprankingslogo";
            iWd = 160; iHt = 30;
            break;
        case "ecomlogo":
            size = "160x30";
            pos = "ecomlogo";
            iWd = 160; iHt = 30;
            break;            
        case "watchlistbar":
            size = "1x1";
            pos = "watchlistbar";
            iWd = 1; iHt = 1;
            break;
        default:
            return "";
    }
    
    /* NEW - for listings - put everything in an iFrame */
	// bAllowIFrame = true;
    

    if(bypassAds())
    {        
        if((iWd>2)&&(iHt>2))
        {
            if(pos!="ingrid")
            {
				var strType = "script";
				if((bAllowIFrame)&&(useIFrames)){ strType = "iframe"; }				
                return "<table align='center' style='height:"+iHt+"px;width:"+iWd+"px;background-color:#AAAAAA;'><tr><td style='text-align:center;vertical-align:middle;font-size:11px;font-family:Arial,Helvetica,Sans;'>AD "+iWd+"x"+iHt+"<br>pos="+pos+"&nbsp;&nbsp;("+strType+")</td></tr></table>";
            }
            else
            {
                return "http://www.tvguide.com/images/space.gif";
            }
        }
        else
        {
            return "";
        }
    }

    
    /* detail pages fix */
    try 
    {
        if(parseInt(iTvObjectID,10)>0) 
        {
            switch(strTvObjectType)
            {
                case "tvshow":
                    url = "/detail/tvshow/id_" + iTvObjectID;
                    s1 = "tvshow"; s2 = iTvObjectID;
                    bDetail = true;
                    break;
                case "celebrity":
                    url = "/detail/celebrity/id_" + iTvObjectID;
                    s1 = "celebrity"; s2 = iTvObjectID;
                    bDetail = true;
                    break;
                case "movie":
                    url = "/detail/movie/id_" + iTvObjectID;
                    s1 = "movie"; s2 = iTvObjectID;
                    bDetail = true;
                    break;
              	default: break;	
            }     
        }
    }
    catch(err)
    {
    }

    /* process page URLs */
    url = url.replace(/home\.aspx/i, "");
    url = url.replace(/default\.aspx/i, "");
    url = url.replace(/betagrid\.aspx/i, "");
    url = url.replace(".aspx", "");

    /* remove trailing slash... */
    url = url.replace(/\/$/,"");
    
    /* process the URL param - convert slashes to underscores and remove first slash  */  
    var urlparam = url.replace( /\//g,"_");
    urlparam = urlparam.replace(/^_/g,'');
    
    /* remove hyphens from url */
    url = url.replace(/-/g, "");

    /* split url into components */
    var secs = url.split('/');
        
    switch(strHostname)
    {
        case "video.tvguide.com" :
        case "video-qa.tvguide.com" :
        case "video-stg.tvguide.com" :
        case "bbp-pilot.tvguide.com" :
        case "rad1onlsps1.tvguide.com" :
            baseSite = "bbportal";
            break;
		case "sports.tvguide.com" :
		case "sports-qa.tvguide.com" :
			baseSite = "sports";
			break;
		default: break;		    
    }

    /* build site, s1, s2 params */
    /* ignore if detail page */
    switch(secs.length)
    {
        case 0:
            site = baseSite;
            // set s1 for www only !
            if(site=="root"){ s1 = "home"; }
            break;
        case 1:
            site = baseSite;
            // set s1 for www only !
            if(site=="root"){ s1 = "home"; }
            break;
       case 2:
            site = secs[1];
            if ( site == "keywords" || site == "authors" || site == "episoderecaps" || site == "news" || site == "americanidol" || site == "dancingstars" || site == "asks" || site == "celebrityblogs" || site == "cheersjeers" || site == "roush" || site == "biz" )
            {
                site = "newsviews";
                s1 = secs[1];
                bSubSpecial = true;
                break;
            }
            if(site=="fashion")
            {
                site = "newsviews";
                s1 = secs[1];
                bSubSpecial = true;
                break;
            }
            if ( site == "toptvshows" )
            {
                site = "top/tv";
                bSubSpecial = true;
                break;
            }
            if ( site.indexOf("soap")>=0 )
            {
                site = "soaps";
                break;
            }
            if (site == "sports") {
                site = "sports";
                bSubSpecial = true;
                break;
            }
            if ( site == "moviesdvd" )
            {
                site = "dvds/movie";
                bSubSpecial = true;
                break;
            }
            if ( site == "moviestv" )
            {
                site = "movies/tv";
                bSubSpecial = true;
                break;
            }
            if ( site == "movienews" )
            {
                site = "movies/news";
                bSubSpecial = true;
                break;
            }  
            if ( site == "dvdnews" )
            {
                site = "newsviews/dvd";
                bSubSpecial = true;
                break;
            }                                    
            if ( site == "moviestrailers" )
            {
                site = "movies/trailers";
                bSubSpecial = true;
                break;
            }
            break;
        case 3:
            site = secs[1];
            if ( site == "keywords" || site == "authors" || site == "episoderecaps" || site == "news" || site == "americanidol" || site == "dancingstars" || site == "asks" || site == "celebrityblogs" || site == "cheersjeers" || site == "roush" || site == "biz" || site =="fashion")
            {
                site = "newsviews";
                
                s1 = secs[1];
                s2 = secs[2];

                if (s2 === "moviescoop") {
                    site = "movies";
                }
                
                bSubSpecial = true;
                break;
            }
            if ( site == "newsviews" && secs[2]== "dvdsales")
            {
                site = "dvds";
                s1 = "tv";
                s2 = secs[2];
                bSubSpecial = true;
                break;
            }
            
            if ( site.indexOf("soap")>=0 )
            {
                site = "soaps";
                s1 = "updates";
                s2 = secs[2];
                bSubSpecial = true;
                break;
            }
            if ( site == "dvdnews" )
            {
                site = "news";
                s1 = "dvd";
                s2 = secs[2];
                bSubSpecial = true;
                break;
            }            
            if ( site == "movienews" )
            {
                site = "movies";
                s1 = "news";
                s2 = secs[2];
                bSubSpecial = true;
                break;
            }            
            if ( site == "moviestrailers" )
            {
                site = "movies";
                s1 = "trailers";
                s2 = secs[2];
                bSubSpecial = true;
                break;
            }
            if(!bDetail)
            { 
                s1 = secs[2]; 
            }
            break;
        case 4:
            site = secs[1];
            if (site == "keywords" || site == "authors" || site == "episoderecaps" || site == "news" || site == "americanidol" || site == "dancingstars" || site == "asks" || site == "celebrityblogs" || site == "cheersjeers" || site == "roush" || site == "biz" || site == "fashion") {
                site = "newsviews";
                s1 = secs[1];
                s2 = secs[2];
                bSubSpecial = true;
                break;
            }
            if(!bDetail)
            {
                s1 = secs[2];
                s2 = secs[3];
            }                
            break;
        case 5:
		case 6:
            site = secs[1];
            if(!bDetail)            
            {
				switch(site)
				{
					case "sports":
						s1 = secs[2];
						s2 = secs[3];
						break;
					default:				
						s1 = secs[3];
						s2 = secs[4];
						break;
				}
            }  
		default:
            site = secs[1];
			s1 = secs[2];
			s2 = secs[3];
			break;		    
    } 

    var strAdPath=site;
    if (s1.length > 0) { strAdPath += "/" + s1; }
    if ( bSubSpecial !== true )
    {
        if (s2.length > 0) { strAdPath += "/" + s2; }
    }
    
    if(bDetail)
    { strAdPath += "/id_" + iTvObjectID; }

    var strAd = "http://ad.doubleclick.net/adj/tvg.";
    if (position == "meebo") {
        strAd = "http://ad.doubleclick.net/pfadx/tvg.";
    }
    var locOrd = dartOrd;
    
    /* handle IFramed ad positions */
    if(((useIFrames)&&(bAllowIFrame))||(pos=="ingrid")||(pos=="closeup"))
    {
        strAd = "http://ad.doubleclick.net/adi/tvg.";
        if(pos=="ingrid")
        {
			locOrd += dartTile;
		}
    }
    
    strAd += strAdPath+";s1="+s1+";s2="+s2+";url="+urlparam+";tvg=ad;pos="+pos+";tile="+dartTile+";";

    if (site == "special" && s2 =="photogallery") {
        fullurl = document.location.pathname;
        lastpart = fullurl.substring(fullurl.lastIndexOf('/') + 1);
        strAd += "s3=" + lastpart + ";";
    }  
    
    if (position == "mag_300x250") {
        strAd += "s3=magazine;";
    }
    
    if(position=="banner_top" || position=="banner_top_0" || position=="banner_top_1")
    {
        strAd+="dcopt=ist;";
    }
    else
    {
        strAd+="dcopt=;";
    }

	if(pos=="ingrid") {
		strAd += "gridtile=" + gridTile + ";";
		gridTile++;
    }

    if (position == "meebo") {
        strAd += "dcmt=text/html;";
    }
    
    // retrieve the tagtest
    var tagtest = ad_getQueryParam("tagtest");
    if(tagtest.length>0) { strAd += "tagtest=" + tagtest + ";"; }
    
    strAd += getKeywords();
    
    strAd += "promo=;"+strRsiSegments+"sz="+size+";ord="+locOrd+"?";
    
    dartTile++;
    
    /* See if ad is to be placed in an IFRAME */
    if((bAllowIFrame)&&(useIFrames)&&(!rawframe))
    {
		frameArray.push(framePrefix + position);
		if(bDelayLoad) 
		{
			/* no url when delay loading */ 
			return "<iframe id='"+frameArray[frameArray.length-1]+"' frameborder='0' scrolling='no' style='width:"+iWd+"px;height:"+iHt+"px;' allowtransparency='true'></iframe>";
		} 
		else 
		{
			return "<iframe id='"+frameArray[frameArray.length-1]+"' src='"+strAd+"' frameborder='0' scrolling='no' style='width:"+iWd+"px;height:"+iHt+"px;' allowtransparency='true'></iframe>";
		}
    }

    return strAd;
}

function bypassAds()
{	
	/* look for nads query */
	ac = ad_getQueryParam("nads");
	if(ac.length>0)
	{
		if(ac=="no"){ad_writeCookie("nads","",-1);return false;}
		else{ad_writeCookie("nads","8086",0);return true;}
	}

	/* don't show ads if we have the nads cookie */
	var ac = ad_readCookie("nads");
	if(ac){if(ac.length>0){return true;}}	

	/* show ads on port 80 or "no port" which is port 80 */
    if((document.location.port=="80")||(document.location.port===""))
    { return false; }

	return true;
}

function ad_writeCookie(strName, strValue, iDays)
{
	var strCookie = strName + "=" + strValue + "; ";
	if(iDays!==0)
	{
	    var date = new Date();
	    date.setTime(date.getTime()+(iDays*24*60*60*1000));
		strCookie += "expires=" + date.toGMTString() + "; ";
	}
    var dom = document.domain;
    var tvg = ".tvguide.com";
    
    if (dom.match(/tvguide.com$/i))
	{
        strCookie += "domain=" + tvg + "; ";
    }
	strCookie += "path=/";
	document.cookie = strCookie;
}

function ad_readCookie(strName)
{
	var name = strName + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(name) === 0) return c.substring(name.length,c.length);
	}
	return null;
}

function ad_getQueryParam(strName)
{
    var u,i;
    u = document.location.search + "";
    i = u.indexOf(strName+"=",0);
    if(i>=0)
    {
        i += strName.length+1;
        var n = u.indexOf('&',i);
        if(n>i)
        {
            return unescape(u.substring(i,n));
        }
        else if(i<u.length)
        {
            return unescape(u.substring(i));
        }
    }
    return "";
}

function getKeywords()
{
    var strkys = "";
    try 
    { 
        if(strTvObjectName.length>0) 
        {
            var tobj = strTvObjectName.replace("'","");   
            tobj = escape(tobj).replace(/%20/g,"+");
            strkys+="kw="+tobj+";"; 
        } 
    }
    catch(err){}
    try { if(strTvObjectType.length>0) { strkys+="kw="+escape(strTvObjectType)+";"; } }
    catch(err){}    
    try { if(strSearchKey .length>0) { strkys+="kw="+escape(strSearchKey )+";"; } }
    catch(err){} 
    
	if(typeof(optionGenreFilter) != "undefined")
	{     
        switch(optionGenreFilter)
        {
            case 2:
                strkys += "filter=movies;";
                break;
            case 3:
                strkys += "filter=sports;";
                break;
            case 4:
                strkys += "filter=family;";
                break;
            case 5:
                strkys += "filter=ppv;";
                break;
            case 6:
                strkys += "filter=news;";
                break;
			default: break;		    
        }
	}
    
	if(typeof(bHDTVOnlyFilter) != "undefined")
	{     
        if(bHDTVOnlyFilter)
        {
            strkys += "filter=hd;";
        }
    }

    var provider = ad_readCookie("Provider");

    if (provider !== null) 
    {
        strkys += "provider="+provider+";";            
		try
		{
			var strProvider = provider.toLowerCase();            
			if((strProvider.indexOf("directv")>=0)||(strProvider.indexOf("dish")>=0))
			{
					strkys += "service=satellite;";
			}
			else if(strProvider.indexOf("national")>=0)
			{
					strkys += "service=national;";    
			}
			else
			{
				strkys += "service=cable;";    
			}
		}
		catch(err)
		{
		}
	}
	 
    try
    {    
        if(strHostname.indexOf("qa")>=0)
        {
            strkys += "srvr=qa;";    
        }
    }
    catch(err)
    {
    }

    return strkys;
}

function getNewRsiStringForDART() 
{
    var DMSegCookie = ad_readCookie("rsi_segs");

    if (DMSegCookie === null) {
        return "";
    }

    var segs = DMSegCookie.split('|');

    var sbRSI = "";
    for (var i = 0; i < segs.length; i++) {
        var seg = segs[i].split('_');
        if (seg.length == 2) {
            sbRSI += "segs=" + seg[1] + ";";
        }
    }
    return sbRSI;
}


function getRsiStringForDART()
{
    /* try the new code first */
    var sbRSI = getNewRsiStringForDART();
    
    if (sbRSI.length>0)
    {    
        return sbRSI;
    }
    
    sbRSI = "";
    
    /*
    Special Processing for RSI tags. The cookie format is as follows....
    DMSEG=<UniqeID>&<CustomerID>&<InternalUSE>&<NumberOfSegmetns>&<SegID1,SegID2,SegID3>
    */
    			
    var DMSegCookie = ad_readCookie("DMSEG");

    if (DMSegCookie===null)
    {
        return "";
    }

    var DMSegCnt = 0;
    var DMSegArray = DMSegCookie.split('&');
   
    if (DMSegArray.length >= 5)
    {
        try
        {
            DMSegCnt = parseInt(DMSegArray[4],10);
        }
        catch(err)
        {
            return "";
        }

        if (DMSegCnt > 0)
        {
            var DMSegIDs = DMSegArray[5].split(',');

            if (DMSegIDs.length > 0)
            {
                for (var dm=0; dm<DMSegIDs.length; dm++)
                {
                    sbRSI += "segs=" + DMSegIDs[dm] + ";";
                }
            }
        }
    }

    return sbRSI;
}


/* get hostname once per page */

var strHostname = document.location.hostname;
strHostname = strHostname.toLowerCase();

if(strHostname)
{
    strHostname = strHostname.toLowerCase();
    if(strHostname.indexOf("akamai-origin")>=0)
    {
        strHostname = "www.tvguide.com";
    }
}

/* get the path and set iframe vars accordingly */
var strPathname = document.location.pathname;
strPathname = strPathname.toLowerCase();


/* set the IFrame flag for certain pages -- this enables ajax ad refreshing */
if ((strPathname.match(/\/photos\/\d+/)) || (strPathname.match(/\/cast\/\d+/)) || (strPathname.match(/photogallery/)))
{
	useIFrames = true;	
}

/* setup for delay loading of listings pages */
if((bEnableDelayedAds)&&(strPathname.match(/\/listings/i))) {
	useIFrames = true;	
	bDelayLoad = true;	
}

/* do not delay load localize pages */
if(strPathname.match(/\/listings\/setup/i)) {
	useIFrames = false;
	bDelayLoad = false;	
}

/* LISTINGS INGRID AD CALL */
function drawAdCalls(nIndex)
{ 	   
    var idelay = 750;
	var adCell = null;
	var strPageURL = document.location.pathname;
	strPageURL = escape(strPageURL.toLowerCase());
	
	/* special handling of new SEO celebrity pages */
	if(strPageURL.indexOf("celebrities")>=0)
	{
	    strPageURL = escape("/detail/celebrity/");
	}
	
	var strAdCallURL = "/TVGOL/tvgas.ashx";
    if(strPageURL.indexOf('/redesign/')===0)
    {
        strAdCallURL = "/redesign" + strAdCallURL;
    }
    
    /* random value same for all ads on one page */
    strAdCallURL += "?rnd=" + dartOrd;
    
    var strAdURL = "";
    
    strAdCallURL += "&srchKey=" + escape(strSearchKey);
    strAdCallURL += "&objName=" + escape(strTvObjectName);
    strAdCallURL += "&objType=" + escape(strTvObjectType);
    
    try
    {
        switch(optionGenreFilter)
        {
            case 2:
                strAdCallURL += "&grdflt=movies";
                break;
            case 3:
                strAdCallURL += "&grdflt=sports";
                break;
            case 4:
                strAdCallURL += "&grdflt=family";
                break;
            case 5:
                strAdCallURL += "&grdflt=ppv";
                break;
			default: break;		    
        }
    }
    catch(err)
    {
    }
    
    try
    {
        if(bHDTVOnlyFilter)
        {
            strAdCallURL += "&hdflt=true";
        }
    }
    catch(err)
    {
    }
    
	switch(nIndex)
	{	
	    case 0:		
	    {
    	    dartTile++;
		    adCell = document.getElementById("TvgoIFrameStore");
		    if(adCell)
		    {
		        strAdURL = strAdCallURL + "&tile=" + dartTile + "&plcmnt=header_320x55&bgcolor=b00506&pageURL=" + strPageURL;
		        adCell.src = strAdURL;
		    }
		    setTimeout("drawAdCalls(1)", idelay);
		    break;
	    }	    
	    case 1:
	    {
		    adCell = document.getElementById("TvgoIFrameTop");
		    if(adCell)
		    {
    	        dartTile++;
		        strAdURL = strAdCallURL + "&tile=" + dartTile + "&plcmnt=banner_top&bgcolor=44443a&pageURL=" + strPageURL;
    		    adCell.src = strAdURL;
		    }
		    setTimeout("drawAdCalls(2)", idelay);
		    break;
	    }
	    case 2:
        {
		    adCell = document.getElementById("TvgoIFrameBoxAd");
		    if(adCell)
		    {
    	        dartTile++;
		        strAdURL = strAdCallURL + "&tile=" + dartTile + "&plcmnt=box_300x250&bgcolor=FFFFFF&pageURL=" + strPageURL;
		        adCell.src = strAdURL;
		    }
		    setTimeout("drawAdCalls(3)", idelay);
		    break;
	    }
	    case 3:
	    {
		    adCell = document.getElementById("TvgoIFrameBot");
		    if(adCell)
		    {
    	        dartTile++;
		        strAdURL = strAdCallURL + "&tile=" + dartTile + "&plcmnt=banner_bottom&bgcolor=DDDDDD&pageURL=" + strPageURL;
    		    adCell.src = strAdURL;
		    }
		    setTimeout("drawAdCalls(4)", idelay);
		    break;
	    }
	    case 4:
        {
		    adCell = document.getElementById("TvgoIFramePromo");
		    if(adCell)
		    {
    	        dartTile++;
                strAdURL = strAdCallURL + "&tile=" + dartTile + "&plcmnt=promo_320x95&bgcolor=FFFFFF&pageURL=" + strPageURL;
		        adCell.src = strAdURL;
		    }
		    setTimeout("drawAdCalls(5)", idelay);
		    break;
	    }
	    case 5:
	    {
		    for (var n=0; n<iGridAds; n++)
		    {
			    adCell = document.getElementById("inGridAdCell"+n);
			    if(adCell)
			    {
					if(bEnableDelayedAds) {
        				adCell.src = getDARTagEX("mid_banner",false);
        		    } else {
        				adCell.src = getDARTagEX("mid_banner",true);
        		    }
			    }
		    }
		    break;
	    }
		default: break;		    
	}
}

/* get RSI tags once and re-use for each call */
var strRsiSegments = getRsiStringForDART();

/* get keywords string once and re-use for all calls */
var strTvgAdKeywords = getKeywords();

