//ffx_swap
//http://fdimages.fairfax.com.au/crtvs/code/asx/ffxutils.js
//090825 dfinnecy - commented out ad intermediatory ~ line 70 and change hei and wid to 728x90 ~ line 106
// 2009/09/14 AL Added AdTest Module - authored by dfinnecy
    
//***START  This is the Adtest Module that helps test ads via parameters passed via URLs***
function getVal(zMSmyStr,zMStagline)
{
	zMSmyStr = zMSmyStr+"=";
	var zMSind = zMStagline.indexOf(zMSmyStr)+zMSmyStr.length;
	if(zMSind==(zMSmyStr.length-1)) //test for myStr not found
		return "";
	zMStagline += "&";
	return zMStagline.substring(zMSind,zMStagline.indexOf("&",zMSind));
}
	
// Testmodule - takes query string values for ad testing
function testMods(testTarg,testKey,testSize){
	testSizeMatch = 0;
	testSizeList = 0;
	if(testSize){
		testSize = testSize.split("_");
		testSizeList=1;
		}
	for(i=0;i<testSize.length;i++){
		if(testTarg.match("AAMSZ="+testSize[i])) testSizeMatch=1;
		}
	if(!testSizeList || testSizeMatch){
		testTarg = testTarg.replace(/SITE=[A-Z\.]+\//gi, "SITE=ZZ.ADTEST/");
		if(testTarg.indexOf("/KEYWORD=")!=-1) testTarg = testTarg.replace(/\/KEYWORD=[A-Z\.]+\//gi, "/KEYWORD="+testKey+"/");
		else testTarg = testTarg.replace(/SITE=ZZ.ADTEST\//gi, "SITE=ZZ.ADTEST/KEYWORD="+testKey+"/");
		}
	return(testTarg);
}
//***END This is the Adtest Module that helps test ads via parameters passed via URLs***

  function fixStr(str){
  return str.toUpperCase().replace(/[/\-\&]/gi,"").replace(/[ +]/,"_");
}

ran = Math.floor(Math.random()*100000000000000000);
  function ffx_swap(elName, html) {
      var d = document;
      if (!d.getElementById) {
          return;
      }
      var el = d.getElementById(elName);
      if (!el) {
          return;
      }
      var remove = false;
      if (typeof ffxAdExclusionList != "undefined") {
        var thisPage = window.location.pathname;
        for (var i=0; i<ffxAdExclusionList.length; i++) {
          var current = ffxAdExclusionList[i];
          if (current == 'remove_all_ads'){
            return;
          }
          else if (current == 'remove_article_ads'){
            if (thisPage.match(/\/news\/[a-zA-Z0-9-]+\/[a-zA-Z0-9-]+\/[0-9]{4}\/[0-9]{2}\/[0-9]{2}\/[0-9]+.html/) || thisPage.match(/\/articles\/.*?/)){
              remove = true;
            }
          }
          else if (current == 'remove_index_ads'){
            if  (thisPage.match(/\/index.html$/) || !thisPage.match(/.html$/)){
              remove = true;
            }
          }
          else if (current == thisPage) {
            return;
          }
        }
      }
      if (remove == true) {return;}
      el.innerHTML = html;
  }

function runAds(){
var currDom = document.domain, match, rootDomain;
 if(match = currDom.match(/([a-z0-9-_]+).(com|org|net|info|id|asn|biz|name)/i)){
 rootDomain = currDom.substr(currDom.indexOf(match[1]));
	try{
	if(rootDomain != currDom)
	document.domain = rootDomain;
	}
	catch(e){}
}

if(document.location.toString().toLowerCase().indexOf("first_time")!=-1)
 ffxpageVars.subcat = "first_time";

var ad, x = 0;
while(ad = ffxAds[x]) {

if(typeof(ad.height) == "undefined")
	hei = "1";
else
   hei=ad.height;
if(typeof(ad.width) == "undefined")
	wid = "1";
else
   wid=ad.width;

//  var call = "http://"+currDom+"/ffxd/intermediatory.html?w="+wid+"&h="+hei+"&ad=http://direct.fairfax.com.au/jserver/acc_random="+ran+"/";
//  if(ad.adtype == null || (ad.adtype.toLowerCase()!="panorama" && ad.adtype.toLowerCase()!="doubleisland"))
   call = "http://direct.fairfax.com.au/hserver/acc_random="+ran+"/";

   cat = "";
   if(typeof(ffxpageVars.cat) == "undefined" || ffxpageVars.cat.length<=0)
    cat = "OTHER";
    else{
    cat = ffxpageVars.cat;
   if(typeof(ffxpageVars.subcat) != "undefined" && ffxpageVars.subcat.length>0)
 	cat += "."+ffxpageVars.subcat;
 }

  var pageString = "SITE=ONL.CH.ASX.FINANCE/AREA=FINANCE.ASX."+fixStr(cat)+"/";
  var adString = "";
  for(i in ad){
  if(i!="height"&&i!="width"&&i.toLowerCase().indexOf("site")==-1)
    adString += fixStr(i).toUpperCase()+"="+fixStr(ad[i]).toUpperCase()+"/";
}
adString = adString.replace(/LOC=/gi,"POS=");
//  if(adString.indexOf("adspace")==-1)
  	adString += "AAMSZ="+wid+"X"+hei+"/";
  var adspace = wid+"x"+hei;

  for(i in ffxpageVars){
  if(i.toLowerCase().indexOf("site")==-1)
	pageString+= fixStr(i).toUpperCase()+"="+fixStr(ffxpageVars[i]).toUpperCase()+"/";
	}
  if(adString.length>0)
  	adString = adString.substring(0,adString.length-1);
//  var targetString = escape(pageString+adString);
var targetString = pageString+adString;
//  if(ad.adtype == null || (ad.adtype.toLowerCase()!="panorama" && ad.adtype.toLowerCase()!="doubleisland"))
//      targetString=unescape(targetString);
  
  if(wid==468 && hei==60) {wid=728; hei=90}
  
  //***START  This is the Adtest Module that helps test ads via parameters passed via URLs***
  //test for adtest and modify target if neccessary
  targetString = unescape(targetString.toUpperCase());
  var urlStr = window.location.search.toUpperCase();
  if(urlStr.indexOf("ADTEST=TRUE")!=-1 && urlStr.indexOf("ADTESTKEYWORD=")!=-1){
  	testKeyword = getVal("ADTESTKEYWORD",urlStr);
  	testSizes = getVal("ADTESTSIZE", urlStr);
  	targetString = escape(testMods(targetString,testKeyword,testSizes));
  	}
  //***END  This is the Adtest Module that helps test ads via parameters passed via URLs***	
  
  var iFrame = "<iframe id='ffxadiframe"+x+"' name='ffxadiframe"+x+"' width="+wid+" height="+hei+" marginwidth=0 marginheight=0 hspace=0 VSPACE=0 frameborder=0 scrolling=no bordercolor='#000000' src='"+call+targetString+"'></iframe>";
  var holderDivId = "ffxad"+(x + 1);
  ffx_swap(holderDivId, iFrame);
  x++;
}
}

var alreadyrunflag=0 //flag to indicate whether target function has already been run

if (document.addEventListener)
  document.addEventListener("DOMContentLoaded", function(){alreadyrunflag=1; runAds()}, false)
else if (document.all && !window.opera){
  document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>')
  var contentloadtag=document.getElementById("contentloadtag")
  contentloadtag.onreadystatechange=function(){
    if (this.readyState=="complete"){
      alreadyrunflag=1
      runAds()
    }
  }
}
//backupOnload = window.onload;
window.onload=function(){
//backupOnload();
setTimeout("if (!alreadyrunflag) runAds()", 0)
}
