var debugAdCode = false;
var show_doubleclick_ad = true ;
if (document.domain == 'www.shoplocal.com') thisNode = 'shoplocal';
if (document.location.search.indexOf("debugAdCode")+1) debugAdCode = true ;
if (document.location.search.indexOf("no_ads")+1) show_doubleclick_ad = false;
if (typeof commercialNode == 'undefined') commercialNode = '';
if (typeof thisNode == 'undefined') thisNode = adNode;


var _rs  = ''; // revenue science data
var _poe = ''; // point of entry
var _tc = 'tile'; // tiling category
var _cn = ''; // commercial node
var _an = false; // ad node
var _t = '';

(typeof thisNode != 'undefined')?_tn = thisNode:null;


blu = (typeof blu_name != 'undefined')?true:false;


if (typeof commercialNode != 'undefined' && commercialNode != '') {
_cn = 'cn=yes;pnode='+thisNode.split("/")[0]+';';
_an = true;
}
var static_wpatc = getWPATCookie();

 
// changed on first call to placeAd
var firstTimeCalled = true ;
var firstTimeCalledNew = true ;
var adUniqueNumber = '' ;
var newsAncestorAsString = new String("") ;

// changed on first call to placeAd or when assertive is true
var adAncestor = new String() ;
var adNode = new String() ;
var adSite = new String() ;
var adZone = new String() ;
var adSiteZone = new String() ;
var adDir = new String() ;
var adArgs = 0 ;


function placeAd(layer,node,kw,pos,dir,w,h,tile)
{


if (show_doubleclick_ad)
{
  if ( firstTimeCalled )
  {
    var axel = Math.random()+"";
    var ord = axel * 1000000000000000000;
    adUniqueNumber = ord+'?' ;
  }
  
  if (node.indexOf("/") == -1) node += "/" ;

    
	var na = [arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]] ;
    adArgs = 5 ;
    platform = na[0] ;
    //if (_an) {node = cleanNode(commercialNode)}
	//else node = cleanNode(na[1]) ;
	node = cleanNode(na[1]) ;
	
	if (node.indexOf("media") >= 0 || node.indexOf("gallery") >= 0) node = 'photo';

	//temp fix for email-friend problem
	if (node == '') node = 'technology';
	//temp fix for contentconversion
	if (node == 'contentconversion') node = 'nation';
	//temp fix for uncategorized
	if (node == 'uncategorized') node = 'technology';
	if (node == 'high schools') node = 'technology';
	if (node == 'wizards') node = 'technology';

	tile = na[2] ;
	kw = na[3];
	// Fantasy Football one-off for Nissan
	oo_url = document.location.href;
	if (oo_url.indexOf("DI2005090201773") != -1) kw= 'kw=fantasy908;';
	if (oo_url.indexOf("DI2005083101900") != -1) kw= 'kw=redskins;'; 
	if (oo_url.indexOf("test_ads") != -1) kw = 'kw=wpni_test;';
	if (oo_url.indexOf("DI2005090901729") != -1) kw = 'kw=fantasy915;';
	if (oo_url.indexOf("DI2005091601422") != -1) kw = 'kw=fantasy922;';
	if (oo_url.indexOf("DI2005092301254") != -1) kw = 'kw=fantasy929;';
	if (oo_url.indexOf("DI2005093001351") != -1) kw = 'kw=1006;';
	if (oo_url.indexOf("DI2005100701380") != -1) kw = 'kw=1013;';
	if (oo_url.indexOf("DI2005101301486") != -1) kw = 'kw=1020;';
	if (oo_url.indexOf("DI2005102101288") != -1) kw = 'kw=1027;';
	if (oo_url.indexOf("DI2005102801404") != -1) kw = 'kw=1103;';
	if (oo_url.indexOf("smallbusiness101") != -1) kw = 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005100501552") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005100500899") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005110101296") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005102001378") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005103101365") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005102602804") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005101100729") != -1) kw= 'kw=smallbus101;';
	if (oo_url.indexOf("DI2005110401575") != -1) kw= 'kw=1110;';
	if (oo_url.indexOf("DI2005111100695") != -1) kw= 'kw=1117;';

	
	flexdisplay = na[4] ;
	
	pos = setPosition(tile); w = setWidth(tile); h = setHeight(tile); f = setFlexvalue(tile);
	
    if ( firstTimeCalledNew )
	{
	  adAncestor = getAdAncestor(node) ;
	  adSite = getAdSite(adAncestor) ;
	  adNode = getAdNode(node,adAncestor) ;
	  adZone = getAdZone(adNode) ;
	  adDir = getAdDir(node) ;
	  firstTimeCalledNew = true;


    if (adZone)
	  adSiteZone = adSite + "/" + adZone ;
	else
	  adSiteZone = adSite ;

	}

	var alerts = false;
	if (flexdisplay)
    {
      if (alerts) alert("adAncestor: "+adAncestor) ;
      if (alerts) alert("adSite: "+adSite) ;
      if (alerts) alert("adNode: "+adNode) ;
      if (alerts) alert("adZone: "+adZone) ;
      if (alerts) alert("adDir: "+adDir) ;
    }



  //insert interstitial value in the top banner
  if ( firstTimeCalled )
  {
    inter_value="dcopt=ist;";  
	
	if (thisNode == 'sports/fantasyjob') inter_value = '';
    
    // TO DETERMINE IF USER CAME FROM GOOGLE:
    var docUrl = document.location.href;
    var key = docUrl.indexOf('?');
    
    if (key != -1) // make sure there are parameters
    {
      // get the parameter
      var temp = docUrl.substring(key + 1, docUrl.length);
      
      // if just "g" was passed in, set the interstitial to false
	  if (docUrl.indexOf("g=1") != -1 || docUrl.indexOf("G=1") != -1) 
      {
		killedPops = true;
		inter_value = "";
		nopops = true;
      } 
    }
    // END GOOGLE LOGIC
    
	if ( document.cookie.indexOf ("dcSessionLimit=") != -1 )
    {
	 inter_value = "";
	}
    else if ( document.cookie.indexOf ("dcCount=") != -1 )
    {
      var startAt = document.cookie.indexOf( "dcCount=" ) + 8;
      var endAt = document.cookie.indexOf( ";", startAt );
      if ( endAt == -1 ) endAt = document.cookie.length;
      dcCount = parseInt ( document.cookie.substring ( startAt, endAt ) );
      if ( dcCount >= 5 ) inter_value = "";
    }
    if ( location.href.indexOf ( ".washingtonpost.com" ) == -1 )
    {
      inter_value = "";
    }
	if (document.location.search.indexOf("test_ads") != -1) inter_value="dcopt=ist;"
  }
  else
    inter_value="";
	
	(flexdisplay)?adSize = "":adSize = 'sz='+w+'x'+h+';';
	
	passArticle = (platform.toLowerCase().indexOf("article") != -1)?'article':'';
	page_a = (passArticle.indexOf("article") != -1)?'page=article;':'page=section;';
	
	if (typeof v2 != 'undefined') {
	if ( typeof adTemplate != 'undefined' && (( adTemplate & BANNER_FLEX_TOP ) == BANNER_FLEX_TOP && ( adTemplate & BIG_FLEX_RIGHT ) == BIG_FLEX_RIGHT) ) _t = (tile == 1)?'t=y;':'';
	}
	
	//var keyvalues = adSiteZone+";"+static_wpatc+inter_value+adDir+kw+"pos="+pos+";"+adSize+f+";"+_cn+_tc+"="+tile+";ord="+adUniqueNumber ;
	
	dtile = (typeof dfpcomp == 'undefined')?'':"dfpcomp="+dfpcomp+";";


	var exempt = "";
	if (thisNode == 'nation' || thisNode.indexOf("nation/special") != -1) {
		exempt = "!category=supremecourt;";
	}

	var keyvalues = adSiteZone + ";" + static_wpatc + inter_value + adDir + kw + "pos=" +pos+ ";"+ dtile + adSize + f + ";" + _t + _rs + poe +page_a + _cn + _tc + "=" + tile + ";"+exempt+"ord=" + adUniqueNumber ;


// adSiteZone = wpni.site (if article is first param them site has aritlce appended to it.
// static_wpatc = registration data
// inter_value = interstitial value;
// adDir = key values for the node
// pos = ad position #.
// adSize = size of ad;
// f = flex display value;
// _rs = revenue science values
// _cn = commercial node;
// _tc = tile category (tile v. ptile)
// adUniqueNumber = random number

	

  
  var adCode = "" ;
  adCode += ('<script language="JavaScript1.1" src="http://ad.doubleclick.net/adj/'+keyvalues+'">');
  adCode += ('</script>');

  if ( (typeof ceTag != 'undefined') && (ceTag) ) adCode = '';
  
  if (debugAdCode) {  adCode += debugTextArea(adCode); }

    if (tile == 7) document.write('<img src="http://media.washingtonpost.com/wp-srv/hp/img/ad_label_leftjust.gif" border="0" width="100" height="13"><br>');
	// hack added for fantasy job last second deal.
	if (thisNode != 'sports/fantasyjob' && thisNode != 'news') {
	document.write(adCode);
	}
	else {
	if (tile != 2) document.write(adCode);
	}
	


  firstTimeCalled = false ;
  
} // end if (show_doubleclick_ad)

} // end placeAd



function setPosition(tile)
{
  var p = "ad"+tile ;
  // document.write(p) ;
  if (tile == 4 || tile == 5 || tile == 6) var p = "ad6";
  return p ;
}

function setWidth(tile)
{
  var wi ;
  if ( tile >= 1 && tile <= 1) { wi = "728"; } // top leaderboard
  else if ( tile >= 2 && tile <= 2 ) { wi = "728"; } // bottom leaderboard
  else if ( tile >= 3 && tile <= 3 ) { wi = "160"; } // skyscraper left only
  else if ( tile >= 4 && tile <= 4 ) { wi = "160"; } // skyscraper only
  else if ( tile >= 5 && tile <= 5 ) { wi = "300"; } // big box and skyscraper
  else if ( tile >= 6 && tile <= 6 ) { wi = "336"; } // skyscraper, big box and half page
  else if ( tile >= 7 && tile <= 7 ) { wi = "446"; } // feature bar
  else if ( tile >= 8 && tile <= 8 ) { wi = "125"; } // travel tile
  else if ( tile >= 9 && tile <= 9 ) { wi = "479"; } // rss tile
  else if ( tile >= 10 && tile <= 10 ) { wi = "125"; } // travel tile right
  else if ( tile >= 11 && tile <= 11 ) { wi = "120"; } // 120x60 tile

  // document.write(wi) ;
  return wi ;
}

function setHeight(tile)
{
  var he ;
  if ( tile >= 1 && tile <= 1) { he = "90"; } // top leaderboard
  else if ( tile >= 2 && tile <= 2 ) { he = "90"; } // bottom leaderboard
  else if ( tile >= 3 && tile <= 3 ) { he = "600"; } // skyscraper left only
  else if ( tile >= 4 && tile <= 4 ) { he = "600"; } // skyscraper only
  else if ( tile >= 5 && tile <= 5 ) { he = "250"; } // big box and skyscraper
  else if ( tile >= 6 && tile <= 6 ) { he = "850"; } // skyscraper, big box and half page
  else if ( tile >= 7 && tile <= 7 ) { he = "33"; } // feature bar
  else if ( tile >= 8 && tile <= 8 ) { he = "125"; } // travel tile
  else if ( tile >= 9 && tile <= 9 ) { he = "40"; } // rss tile
  else if ( tile >= 10 && tile <= 10 ) { he = "125"; } // travel tile right
  else if ( tile >= 11 && tile <= 11 ) { he = "60"; } // 120x60

  // document.write(he) ;
  return he ;
}

function setFlexvalue(tile) {
  var fv ;
  if ( tile >= 1 && tile <= 2) { fv = "ad=lb"; } // top leaderboard
  else if ( tile >= 2 && tile <= 2 ) { fv = "ad=lb"; } // bottom leaderboard
  else if ( tile >= 3 && tile <= 3 ) { fv = "ad=ss"; } // skyscraper left only
  else if ( tile >= 4 && tile <= 4 ) { fv = "ad=ss"; } // skyscraper only
  else if ( tile >= 5 && tile <= 5 ) { fv = "ad=ss;ad=bb"; } // big box and skyscraper
  else if ( tile >= 6 && tile <= 6 ) { fv = "ad=ss;ad=bb;ad=hp"; } // half page
  else if ( tile >= 7 && tile <= 7 ) { fv = "ad=fb"; } // feature bar
  else if ( tile >= 8 && tile <= 8 ) { fv = "ad=tt"; } // travel tile
  else if ( tile >= 9 && tile <= 9 ) { fv = "ad=rss"; } // rss tile
  else if ( tile >= 10 && tile <= 10) { fv = "ad=tt"; } // travel tile right
  else if ( tile >= 11 && tile <= 11) { fv = "ad=tl"; } // 120x60


return fv ;

}


function mkKeyword(myKeyword,myNode)
{
  if (myKeyword == "" )
  {
    if (myNode.indexOf("/") != -1 )
    {
      nodeAry = myNode.split("/") ;
      myKeyword = nodeAry[1] ;
	}
  }
  return myKeyword ;
}






function debugTextArea(ac)
{
  var re = new RegExp("\"","g") ;
  ac = ac.replace(re,"\\\"") ;
  return '<form><textarea wrap=physical cols=\"+55+\" rows=\"+10+\">'+ac+'</textarea></form>';
}

function getWPATCookie()
{
  if (document.cookie.indexOf("WPATC") != -1)
  {
    var start = (document.cookie.indexOf("WPATC") + 6);
    var end = (document.cookie.indexOf(";",start)) == -1 ? document.cookie.length : document.cookie.indexOf(";",start);
    var cookie = document.cookie.substring(start,end) + ";";
    while (cookie.indexOf(":") != -1)
      cookie = cookie.substring(0,cookie.indexOf(":"))+";"+cookie.substring(cookie.indexOf(":")+1,cookie.length);
    if (cookie.lastIndexOf(";") != cookie.length - 1) cookie += ';';
    if (cookie.indexOf("=") == 0) cookie = cookie.substring(cookie.indexOf(";")+1,cookie.length);
  }
  else var cookie = "" ;
  return cookie ;
}



//Revenue Science Values
function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

var crumbs = (getCookie("DMSEG"))?"".concat(getCookie("DMSEG")).split("&"):"";
var segments = (crumbs[5])?crumbs[5]:"";
var seg = (segments)?segments.split(","):"";

for(i=0;i<seg.length;i++) {
_rs += 'rs='+seg[i]+';';
}

// mimic revenue science value for rss users
// check to see if url has "rss" and set up a value
// that AMs can target to
// added 6/28/05 sja
function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function createTime() {
var cDate = new Date();
var cMil = cDate.getTime();
var e = cMil % (1000 * 60 * 60 * 24);
var r = (1000 * 60 * 60 * 24) - e;
var nr = 28 * 24 * 60 * 60 * 1000;
return(nr);
}

var wpniPOE = new Date();
var interval = 0;

var wpniWeek = wpniPOE.getTime() + createTime();
wpniPOE.setTime(wpniWeek);

if (location.search.indexOf("nav=rss") != -1) {
setCookie("rss","true",wpniPOE.toGMTString(),"/",".washingtonpost.com",'')
_rs += 'rss=y;';
}

if (getCookie("rss") != null) {
if (_rs.indexOf("rss=") == -1) _rs += 'rss=y;';
}
else _rs += 'rss=n;';

poe = 'poe=no;';
if (getCookie("wp_poe") == null || getCookie("wp_poe") == "false") {
poe = 'poe=yes;';
setCookie("wp_poe","true","","/",".washingtonpost.com",'')
}

// end rss code
/**
 * crk added 17 July 2002
 * methods for 5 parameter placeAd call
 * placeAd(platform,node,tile,kw,assertive)
 **/

  // get ancestor from node
  function getAdAncestor(node)
  {
	var end = node.indexOf("/") ;
	if ( end == -1 )
	  return node ;
    else
	{
	  var adAncestor = node.substring(0,end) ;	
      return adAncestor ;
	}
  }

  // get adSite
  function getAdSite(ancestor)
  {
    if ( isNewsAncestor(ancestor) )
      return "wpni.news" ;
    else
      return "wpni."+ancestor ;
  }
  
  // get ad node
  function getAdNode(node,ancestor)
  {
    if ( isNewsAncestor(ancestor) )
	  return node ;
	else
	{
	  var start = node.indexOf("/")+1 ;
	  if (start)
        return node.substring(start) ;
	  else
	    return "" ;
	}
  }

  // get ad node
  function getAdZone(node)
  {
    var ary = new Array() ;
	if ( node.indexOf("/") != -1 )
	  ary = node.split("/") ;
	else
	  ary[0] = node ;

	if ( ary.length <= 2 )
	  return node ;
	else
	{
	  var zone = '' ;
	  for(var i=0; i<2; i++)
	  {
	    zone += ary[i] ;
		if (i==0) zone += "/" ;
	  }
	  return zone ;
	}
  }
  
  function getAdDir(node)
  {
    var page = "" ;
    var ary = new Array() ;
	if ( node.indexOf("/") != -1 )
	  ary = node.split("/") ;
	else
	  ary[0] = node ;

	var dir = '' ;
	for(var i=0; i<ary.length; i++)
	{
	  // parse out article string if present in ancestor
	  if ( i == 0 &&
	       ary[i].indexOf("article") != -1 &&
		   ary[i].indexOf("article") == ary[i].length - "article".length &&
		   ary[i] != "article" )
	  {
	    ary[i] = ary[i].substring(0,ary[i].indexOf("article")) ;
		page = "page=article;" ;
	  }
	  dir += "dir="+ary[i]+";" ;
	}
	return "dir="+ary[ary.length-1]+"node;"+dir+page ;
  }

  // check if adSite should be wpni.news
  function isNewsAncestor(ancestor)
  {
    if ( newsAncestorAsString != null &&
	     newsAncestorAsString != ""   &&
		 newsAncestorAsString.indexOf(","+ancestor+",") != -1
	   )
      return true  ;
    else
	  return false ;
  }
  
  function cleanNode(node)
  {
	if ( node.charAt(node.length-1) == "/" )
	  return node.substring(0,node.length-1) ;
	else
	  return node ;
  }