/*
 * FIXME: This is here only for backward compatibility serves legacy atlas calls 
 * from static modules kept in the database. 
 */
function placeDeferredAd(div, adCall) {

  if (window.adType) {

    if (adType=='atlas') {

      var type = adCall;

      if (adCall.match(/=/)) {
        type = adCall.split(/=/)[1];
      }

      document.write('\n<div id="' + div + '" class="adTag"></div>\n');
      adverts.addToArray(div, type);
    }	  
  }
}

var adverts = (function(){
	var ord=Math.random()*10000000000000000,
		tile=1;
	
	//ATLAS specific code
	var i,
		adTags = [],
		ads=[],
		fullAds=[];

	//revenue science code
	// Start RSI ad integration
	var rsi_segs = [];
	var segs_beg=document.cookie.indexOf('rsi_segs=');
	if(segs_beg>=0){
		segs_beg=document.cookie.indexOf('=',segs_beg)+1;
		if(segs_beg>0){
			var segs_end=document.cookie.indexOf(';',segs_beg);
			if(segs_end==-1)segs_end=document.cookie.length;
			rsi_segs=document.cookie.substring(segs_beg,segs_end).split('|');
		}
	}
	var segQS = rsi_segs.length> 0 ? ";rsi=" + rsi_segs[0] +";" : "";
	for (var i = 1; i <rsi_segs.length && i <20; i++)
		segQS += ("rsi" + "=" + rsi_segs[i] + ";");
	// End RSI ad integration
	
	/**
	 * Function renders DART tags inline
	 */
	var runDart = function(ad){
		var adZone = "http://ad.uk.doubleclick.net/adj/"+dartSiteId+"/"+adAreaSiteId+"_"+adAreaSiteId+adAreaId+"_"+adSubareaId+adPageType;
		var op='';
		if(ad.type=="468x60,728x90"){
			op="dcopt=ist;";
		}
		var scriptBlock = "<scr" + "ipt language=\"JavaScript\" src=\""+adZone+";area="+adAreaId+";subarea="+adSubareaId+";target="+ad.target+";article="+adArticleId+";content="+adContent+";"+segQS+op+"tile="+tile+";sz="+ad.type+";ord="+ord+"?\" type=\"text/javascript\"></script>";
		document.writeln(scriptBlock); 
		tile++;
	}
	
	/**
	 * Function runs ads based on dart / atlas
	 * @param {Object} [ad]
	 */
	var runAds = function(ad){

		switch(adType){
			case'dart':
				runDart(ad);
				break;
			case'atlas':
				ads.push(ad);
		}
	}
	
	/**
	 * Function renders ads for Atlas
	 * @param divName
	 * @param aambTag
	 * @return
	 */
	function renderAd(divName, aambTag){
		var invObj = 'INV' + divName;
		try {
			var code = eval(aambTag);
		} catch (aamErr){
		}

		if(typeof code !=='undefined'){
			if(navigator.userAgent.indexOf('MSIE') > -1) {
				document.getElementById(divName).innerHTML +=
				'<div id="TMP' + divName +'" style="display:none;">' +
				escape('<body><div id="adDiv">' + code + '</div>')+
				'</div><iframe name="' + invObj + '" width="0" height="0" frameborder="0" ' +
				'onload="try{document.getElementById(\'' + divName + '\').' +
				'insertAdjacentElement(\'beforeEnd\',window.frames[\'' + invObj + '\'].' +
				'document.getElementById(\'adDiv\')) } catch(aamErr){}"></iframe>';

				window.frames[invObj].document.location = 'javascript:unescape(parent.document.getElementById(\'TMP' + divName + '\').innerHTML)';

			} else {
				document.writeln('<div id="' + invObj + '" style="display:none;">' +
				code + '<script type="text/javascript" defer="true">' +
				'document.getElementById(\'' + divName + '\').innerHTML = ' +
				'document.getElementById(\'' + invObj + '\').innerHTML;' +
				'document.getElementById(\'' + invObj + '\').innerHTML = \'\';</scr' + 'ipt></div>'); 
			}
		}
	}
	
	//public
	return {
		addToArray : function(id,type,target,wide){
			if(enableAds){
				var ad = {
					id:id,
					type:type,
					target:target||''
				}
				runAds(ad);
			}	
		},
		ads : function(){	
			i=fullAds.length;
			while(i>0){
				--i;
				renderAd(fullAds[i], 'AAMB'+(i+1));
			}
		},
		init : function(){
			i = ads.length;
			if(i>0){
				//Atlas init code
				var curAd,
					target='';
				
				while(i>0){
					--i;
					if(ads[i].type=="468x60,728x90"){
						ads[i].type="468x60";
					}
					fullAds.push(ads[i].id);
					if(ads[i].target!=='') target = '/TARGET='+ads[i].target;
					adTags.push(['pos=',adTags.length,'/','AAMSZ=',ads[i].type,target].join(''));
					target='';
				}
				// Setup Advertising
		
				//As tag targeting values which will be appended to each ad request section in the bserver ad call
				var allAdTags = ['http://ads.anm.co.uk/bserver/AAMALL/SITE='+adAreaSiteId+'/AREA=',adAreaId,'/SUBAREA=',adSubareaId,'/CONTENT=',adContent,'/ARTICLE=',adArticleId,'/acc_random=',ord,'/pageid=/RS=',segQS].join('');
				//build string of all ad calls
				var adString='';
				
				i=adTags.length;
				while(i>0){
					--i;
					adString += ['/AAMB',(i+1),'/',adTags[i]].join('');
				}
				//write script to call adserver
				document.writeln("<script type=\"text/javascript\" src=\""+allAdTags+adString+"\"></script>");
			}	
		}		
	}
})();