function changeSiteAds()
{
	// getting ads collection
	var ads = changeSiteAdsGetAdContainers();
	if( ads )
	{
		var href = window.location.href.replace(/[?#].*/, '' );
		var requestId = Math.floor( Math.random() * 1000000000 );
	
		for ( var i = 0; i < ads.length; i++ )
		{
			var div = ads[i];
			var url = href + '?service=ajax&tool=adReload&elementGroup=' + div.id;
			
			changeSiteAdsLoadAd( url, div, requestId );
		}
	}
}

function changeSiteAdsLoadAd( url, container, requestId )
{
	// AJAX fetch
	var client = AJAXHttpClient();
	client.onreadystatechange = function()
	{
		if( ( client.readyState == 4 ) && ( client.status == 200 ) )
		{
			// get content
			var content = client.responseText;
			
			// filter surrounding div
			content = content.replace(/^\s*<div[^>]+>\s*|\s*<\/div>\s*$/g, "");

			// check if double click ad
			var regex = /<scr[^>]*?src=["']http:\/\/ad.doubleclick.net\/adj\/[^\/]+\/(.+?)\??["'][^>]*>/;
			var match = regex.exec( content );				
			if( match !== null )
			{
				changeSiteAdsLoadDoubleClickAd( match[1], container, requestId );
			}
			else if( content.search(/<script/) == -1 )
			{
				container.innerHTML = content;
			}
		}
	};
	client.open( "GET", url, true );
	client.send( null );
}

function changeSiteAdsLoadDoubleClickAd( parameters, container, requestId )
{
	if (requestId !== null)
	{
		parameters = parameters.replace(/(^|;)ord=\d+(;|$)/, "$1ord=" + requestId );
	}

	var href = location.href.replace(/[?#].*/, "" );
	var url = href + "?service=ajax&tool=adReloadProxy&settings=" + parameters;

	var iFrameAdContainer = document.getElementById( 'cxAdvertisementIframe' );
	
	if( iFrameAdContainer !== undefined )
	{
		iFrameAdContainer.src = url;
	}
	else
	{
		var client = AJAXHttpClient();
		client.onreadystatechange = function()
		{
			if( ( client.readyState == 4 ) && ( client.status == 200 ) )
			{
				var content = "";
				var script = client.responseText.replace(/document\.write/g, "container=");
				eval(script);					
		
				if( content.search(/<script/) == -1 )
				{
					container.innerHTML = content;
				}
			}
		};
		client.open( "GET", url, true );
		client.send( null );
	}
}

function changeSiteAdsGetAdContainers()
{
	var result = new Array();
	var divs = document.getElementsByTagName( "div" );

	for( var i = 0; i < divs.length; i++ )
	{
		var div = divs[i];
		if( div.id.search(/^adPosition\d+$/) != -1 )
		{
			result[result.length] = div;
		}
	}
		
	return result;
}