if (typeof firstTimeCalled == 'undefined') 
{
var firstTimeCalled = true ;
var firstTimeCalledNew = true ;
}

if (firstTimeCalled == true)
{
if (typeof point == 'undefined') point = '';
if (typeof tile == 'undefined') tile = '';


var debugAdCode = false ;
if (document.location.search.indexOf("debugAdCode")+1)
  debugAdCode = true ;
var show_doubleclick_ad = true ;


// constants
var KEEP_NODE = false ;
var CHANGE_NODE = true ;
 
// changed on first call to placeAd


//var adUniqueNumber = '' ;
//var newsAncestorAsString = new String("") ;
// var newsAncestorAsString = new String(",metro,nation,style,opinion,food,outlook,magazine,books,digest,archive,print,") ;

// changed on first call to placeAd or when assertive is true
var adAncestor = new String() ;
var adNoda = new String() ;
var adSite = new String() ;
var adZone = new String() ;
var adSiteZone = new String() ;
var adDir = new String() ;
var adArgs = 0 ;

/* layer = 0 ==> no layer */
/* layer = [1-6] ==> use layer, layer should match tile */
/* w = width, h = height */
function placeAd(layer,node,kw,pos,dir,w,h,tile)
{


if (show_doubleclick_ad)
{
  
  // if ((tile == 1||layer == 1||kw == 1) || (layer ==0) || (node.substring(5,15) == "liveonline") || (node.substring(5,13) == "washtech"))
	if(typeof ord == "undefined")
{
    var axel = Math.random()+"";
	ord = axel * 1000000000000000000;
    adUniqueNumber = ord+'?' ;
}
  
  if (node.indexOf("/") == -1) node += "/" ;

  // only pass in abbreviated argument list: layer [0,1,2] and node (tile and pos are set based on layer)
  // usage: placeAd(layer,node); example: placeAd(1,'wpni.entertain/music');
  if ( arguments.length == 2 )
  {
	adArgs = 2 ;
    platform = 'STATIC' ;
    layer = arguments[0] ;
    if (layer == 0) { tile = 1 } else { tile = layer }
    node = arguments[1] ;
    pos = setPosition(tile); w = setWidth(tile); h = setHeight(tile);
	
	kw = '';dir='';
	dir=getDir(node);
	node=mkNode(node);
  }
  
  // only pass in abbreviated argument list: layer, node, and tile (pos is set based on tile)
  // this is to be used when layer is 0, but you still need to set tile=1 and tile=2
  // usage: placeAd(layer,node,tile); example: placeAd(0,'wpni.entertain/music',1);


  //insert interstitial value in the top banner
    inter_value="";  
    
    

    kw = mkKeyword(kw,node) ;
    dir = mkDir(dir) ;
    if (layer== 1) var inter_value='dcopt=ist;'
	else if (kw == 'cover');
	var keyvalues = node+dir+inter_value+"kw="+kw+";pos="+pos+";"+point+"sz="+w+"x"+h+";tile="+tile+";ord="+adUniqueNumber ;
  
  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); }

    
	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 ) { wi = "728"; }	// leaderboard
  else if ( tile == 2 ) { wi = "300"; } // showcase
  else if ( tile == 3 ) { wi = "160"; } // skyscraper
  else if ( tile == 4 ) { wi = "120"; } // 120x163
  else if ( tile == 5 ) { wi = "180"; } // 180x150

  // document.write(wi) ;
  return wi ;
}

function setHeight(tile)
{
  var he ;
  if      ( tile == 1 ) { he="90"; }
  else if ( tile == 2 ) { he="250"; }
  else if ( tile == 3 ) { he="600"; }
  else if ( tile == 4 ) { he="163"; }
  else if ( tile == 5 ) { he="150"; }

// document.write(he) ;
  return he ;
}


function mkDir(myDir)
{
  var dirAry = myDir.split("/") ;
  var dirBreakUp = 0 ;
  if ( dirAry.length > dirBreakUp )
  {
    var myDir = "" ;
    for(var i=0;i<dirBreakUp;i++)
    {
      myDir += dirAry[i] ;
      if (i < dirBreakUp-1)
        myDir += "/" ;
    }
    myDir += ";" ;
    for(var i=0;i<dirAry.length;i++)
    {
      myDir += "dir="+dirAry[i]+";" ;
    }
  }
  else
  {
    myDir += ";" ;
  }
  return myDir ;
}

function mkKeyword(myKeyword,myNode)
{
  if (myKeyword == "" )
  {
    if (myNode.indexOf("/") != -1 )
    {
      nodeAry = myNode.split("/") ;
      myKeyword = nodeAry[1] ;
    }
  }
  return myKeyword ;
}

function getDir(node)
{
  var dirAry = node.split("/") ;
  var newDir = "" ;
  if (dirAry.length > 1)
  {
    for (i=1;i<dirAry.length;i++)
	{
	  newDir += dirAry[i] ;
	  if (i!=dirAry.length-1)
	    newDir += "/" ;
	}
  }
  return newDir ;
}

function mkNode(node)
{
  var dirAry = node.split("/") ;
  var newNode = node ;
  if (dirAry.length >3)
  {
    newNode = "" ;
    for (i=0;i<3;i++)
    {
      newNode += dirAry[i] ;
      if (i!=2)
        newNode += "/" ;
    }
  }
  return newNode ;
}


function debugTextArea(ac)
{
  var re = new RegExp("\"","g") ;
  ac = ac.replace(re,"\\\"") ;
  return '<form><textarea wrap=physical cols=\"+55+\" rows=\"+10+\">'+ac+'</textarea></form>';
}


  // 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 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 ;
  }

// end crk added 17 July 2002

}
//end "if first timecalled logic"