// Revenue science data
// point of entry data

var debugAdCode = false;
var show_doubleclick_ad = true ;
if (document.location.search.indexOf("debugAdCode")+1) debugAdCode = true ;
if (document.location.search.indexOf("no_ads")+1) show_doubleclick_ad = false;


var _rs  = ''; // revenue science data
var _poe = ''; // point of entry
var _tc = 'tile'; // tiling category
var _cn = ''; // commercial node
var _an = false; // ad node

(typeof thisNode != 'undefined')?_tn = thisNode:null;

if (typeof commercialNode != 'undefined' && commercialNode != '') {
_cn = 'cn=yes;pnode='+thisNode+';';
_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';

	tile = na[2] ;
	kw = na[3];
	if (document.location.search.indexOf("test_ads") != -1) kw = 'kw=wpni_test;';
	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;";  
    
    // 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 (temp.length == 1 && (temp == "g" || temp == "G" || temp == "local") )
      {
        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':'';
	
	//var keyvalues = adSiteZone+";"+static_wpatc+inter_value+adDir+kw+"pos="+pos+";"+adSize+f+";"+_cn+_tc+"="+tile+";ord="+adUniqueNumber ;

	var keyvalues = adSiteZone + passArticle + ";" + static_wpatc + inter_value + adDir + kw + "pos=" +pos+ ";" + adSize + f + ";" + _rs + _cn + _tc + "=" + tile + ";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>');
	document.write(adCode);


  firstTimeCalled = false ;
  
} // end if (show_doubleclick_ad)

} // end placeAd



function setPosition(tile)
{
  var p = "ad"+tile ;
  // document.write(p) ;
  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

  // 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

  // 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


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]+';';
}


/**
 * 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 ;
  }
