//ffx_swap unaltered. Will add the html to the innerHTML of the defined div
//081118 - added if for 1x8 sponsored links - dfinnecy
//081230 - AREA scrubbing for multiple sector search results - ln 90-94
// 2009/09/14 AL Added AdTest Module - authored by dfinnecy

function LogAdvertScriptCall(text)
{
	if (typeof console != "undefined")
	{
		console.log('ffxUtils - ' + document.location.href + ':\n' + text + '\n');
	}
}
  
//***START  This is the Adtest Module that helps test ads via parameters passed via URLs***
function getAdCallUrl()
{
	try
	{
		if (window.location.search && window.location.search.toLowerCase().indexOf("adcall=") > -1)
		{
			return window.location.search.toLowerCase();
		}
		if (window.parent.location.search && window.parent.location.search.toLowerCase().indexOf("adcall=") > -1)
		{
			return window.parent.location.search.toLowerCase();
		}
		return "";
	}
	catch(ex)
	{
		return "";
	};
}

function getVal(keyName,queryString)
{
	keyName = keyName+"=";
	var keyNamePos = queryString.indexOf(keyName)+keyName.length;
	if(keyNamePos==(keyName.length-1)) //test for myStr not found
		return "";
	queryString += "&";
	return queryString.substring(keyNamePos,queryString.indexOf("&",keyNamePos));
}
	
// Change Url for Ad Testing and append Ad Testing information to final DoubleClick Url
function adCallMods(adSize,testKey,testSize,queryString)
{
	testSizeMatch = 0;

	if(testSize)
	{
		testSize = testSize.split("_");
	}
  
	for(i=0;i<testSize.length;i++)
	{
		if(adSize.indexOf(testSize[i]) > -1)
		{
			testSizeMatch=1;
			break;
		}
	}
  
	if(testSizeMatch)
	{
		var posSiteEnd = queryString.indexOf("/");
		queryString = "onl.adtester" + queryString.substring(posSiteEnd, queryString.length);

		var posAreaEnd = queryString.indexOf(";");
		queryString = queryString.substring(0, posAreaEnd) + ";adcallkw=" + testKey + queryString.substring(posAreaEnd, queryString.length);
	}

	return queryString;
}
//***END This is the Adtest Module that helps test ads via parameters passed via URLs***

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;
}

var ad, x = 0;

var dcOptTag = ";dcopt=ist"; // Only rendered on first ad
var cacheBuster = Math.floor(Math.random()*100000000);
var adTile = 0;
var adType = "";

while(ad = ffxAds[x])
{
	adTile++;

	adType = ad.adtype;

	if(typeof(ad.height) == "undefined")
		hei = "1";
	else
		hei=ad.height;

	if(typeof(ad.width) == "undefined")
		wid = "1";
	else
		wid=ad.width;

	if(hei=="0"&&wid=="0")
	{
		hei = "68";
		wid = "638";
	}

	testcheck = "";

	if(document.location.toString().indexOf("ffxdtest")!=-1)
		testcheck = "test=true&";

	var isLeaderBoard = 0;

	if (ad.adtype == "panorama" && "468x60,728x90".indexOf(wid+"x"+hei) > -1)
	{
		isLeaderBoard = 1;
	}

	var pageString = "onl.mycareer";

	if (document.location.href.indexOf("courses.mycareer.com.au") > -1 || document.location.href.indexOf("coursesnow.com.au") > -1)
	{	   
		ffxpageVars.section = "education";
	}

	if(typeof(ffxpageVars.section)!="undefined" && ffxpageVars.section=="homepage")
	{
		if(wid=="468"&&hei=="60")
			pageString += "/homepage;exclusive=homepage";
		else
			pageString += "/homepage";
	}
	else
	{
		add = "";

		if(typeof(ffxpageVars.sector)!="undefined")
		{
			pvSector = ffxpageVars.sector.split(",",10);
			pvRand = Math.floor((pvSector.length)*Math.random());
			add = "/"+pvSector[pvRand].toLowerCase();
		}

		if(typeof(ffxpageVars.section)!="undefined")
			add += "/"+ffxpageVars.section.toLowerCase();

		if(add.length==0)
			add = "/other";

		pageString += add;
	}

	var adString = "";

	for(i in ad)
	{
		// Redundant
		if (i=="loc")
			continue;
		if (i=="adtype")
			continue;
		if (i=="isiframe")
			continue;
		if (i=="batch")
			continue;

		if(i!="height"&&i!="width")
			adString += ";"+i.toLowerCase()+"="+ad[i].toLowerCase();
	}

	for(i in ffxpageVars)
	{
		// Redundant
		if (i=="domain")
			continue;

		if(i!="site")
			adString += ";"+i.toLowerCase()+"="+ffxpageVars[i].toLowerCase();
	}

	adString = adString.replace(/section=/gi,"sect=").replace(/location=/i,"locarea=");

	/*state targeting*/
	if(adString.indexOf("locarea=nswcountry")!=-1||adString.indexOf("locarea=sydneymetro")!=-1)
		adString += ";locstate=nsw";
	if(adString.indexOf("locarea=qldcountry")!=-1||adString.indexOf("locarea=brisbanemetro")!=-1)
		adString += ";locstate=qld";
	if(adString.indexOf("locarea=viccountry")!=-1||adString.indexOf("locarea=melbournemetro")!=-1)
		adString += ";locstate=vic";
	if(adString.indexOf("locarea=wacountry")!=-1||adString.indexOf("locarea=perthmetro")!=-1)
		adString += ";locstate=wa";
	if(adString.indexOf("locarea=sacountry")!=-1||adString.indexOf("locarea=adelaidemetro")!=-1)
		adString += ";locstate=sa";
	if(adString.indexOf("locarea=tascountry")!=-1||adString.indexOf("locarea=hobartmetro")!=-1)
		adString += ";locstate=tas";
	if(adString.indexOf("locarea=ntcountry")!=-1||adString.indexOf("locarea=darwinmetro")!=-1)
		adString += ";locstate=nt";
	if(adString.indexOf("locarea=actcountry")!=-1||adString.indexOf("locarea=canberrametro")!=-1)
		adString += ";locstate=act";

	pageString = pageString.replace(/#|@|!|\||\$|\*/g,"");
	adString = adString.replace(/#|@|!|\||\$|\*/g,"");

	if(adString.length>0)
		adString = adString.substring(0,adString.length);

	var adSize = wid+"x"+hei;
	if (ad.adspace == "networkad")
	{
		adSize = "1x4";
	}
	if (isLeaderBoard)
	{
		adSize = "468x60,728x90";
		wid="728";
		hei="90";
	}

	var targetString = pageString+adString+";tile="+adTile+";sz="+adSize+dcOptTag+";ord="+cacheBuster+"?";
	dcOptTag = "";

	// Now default and adjust IFrame Width/Height
	var iFrameWid = wid, iFrameHei = hei;
	if (iFrameWid == "68")
	{
		iFrameWid = "90";
	}
	if (iFrameWid == "1" && iFrameHei == "8")
	{
		//sponsored links
		iFrameWid = "298";
		iFrameHei = "200";
	}

	//***START  This is the Adtest Module that helps test ads via parameters passed via URLs***
	//test for adtest and modify target if neccessary
	var urlStr = getAdCallUrl();
	if (getVal("adcall",urlStr) == "true")
	{
		testKeyword = getVal("adcallkw",urlStr);
		testSizes = getVal("adcallsz",urlStr);
		targetString = adCallMods(adSize,testKeyword,testSizes,targetString);
	}
	//***END  This is the Adtest Module that helps test ads via parameters passed via URLs***

	//Detect if we need to user Intermediatory page, this is used for IFRAME Busters
	var call = "http://ad-apac.doubleclick.net/adi/";
	if (document.location.href.indexOf("courses.mycareer.com.au") + document.location.href.indexOf("coursesnow.com.au") < 1)
	{
		if (isLeaderBoard || "1x11,300x250".indexOf(adSize) > -1) {
			call = "/ffxd/intermediatoryv2.html?ad=http://ad-apac.doubleclick.net/adj/";
		}
	}

	var iFrame = "<iframe id='ffxadiframe"+x+"' name='ffxadiframe"+x+"' style='width:"+iFrameWid+"px;' allowtransparency='true' width="+iFrameWid+" height="+iFrameHei+" marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no bordercolor='#000000' src='"+call+targetString+"'></iframe>";
	var holderDivId = "ffxad"+(x + 1);

	//LogAdvertScriptCall(iFrame);

	ffx_swap(holderDivId, iFrame);
	document.writeln("<!-- "+document.domain+" -->");
	x++;
}
