
//////////////////////////////////////////////////////////
// Управление блоками рекламы 							//
//////////////////////////////////////////////////////////

// Таймеры //
var m_ArvertisingTimers = new Array();
// Количество запусков функций //
var m_AdvertisingOpens = new Array();
// Список загруженных рекламных блоков в iframe //
var m_arrayLoadedFrames = new Array();

function EditAdvertisingBlock(strID, strBlockToDisplay)
{
	if (!m_AdvertisingOpens[strID])
		m_AdvertisingOpens[strID] = 0;
	
	m_AdvertisingOpens[strID]++;
	
	if (m_ArvertisingTimers[strID])
		clearInterval(m_ArvertisingTimers[strID]);
		
	var BlockHolder = document.getElementById(strID);
	
	// Если реклама загружается в iframe, то ожидаем окончания 	//
	// его загрузки и прерываем таймер							//
	if (BlockHolder.firstChild && BlockHolder.firstChild.tagName.toLowerCase() == "iframe")
	{
		BlockHolder.firstChild.onload = function() 
		{ 
			clearInterval(m_ArvertisingTimers[strID]);
			m_arrayLoadedFrames[strID] = true;
		};
		try
		{
			if (BlockHolder.firstChild.clientHeight && BlockHolder.firstChild.clientHeight >= (90 * 5))
				m_arrayLoadedFrames[strID] = true;
		}
		catch(e) { }
	}
	
	if (BlockHolder)
	{
		var coll = BlockHolder.getElementsByTagName("img");
		
		var ImagesSrc = new Array();
		
		// Находим все картинки, и если ни одной не найдено, то вызываем функцию снова,	//
		// но не более 5 раз 															//
		if (coll.length > 0)
		{
			var bAbleToModify = true;
			
			for (var i = 0; i < coll.length; i++)
			{
				var advImage = coll[i];
				
				// Стиль картинки //
				coll[i].style.marginRight = "0px";
				coll[i].style.marginBottom = "0px";
				coll[i].style.marginLeft = "0px";
				coll[i].style.marginTop = "0px";
				
				var bSrcExists = false;
				for (var j = 0; j < ImagesSrc.length; j++)
				{
					if (ImagesSrc[j].toLowerCase() == coll[i].src.toLowerCase())
						bSrcExists = true;
				}
				if (!bSrcExists)
					ImagesSrc.push(coll[i].src);
				
				// В Netscape Navigatorи IE высота картинки (advImage.height) иногда	//
				// равна нулю, что приводит к bAbleToModify = false, поэтому проверяем 	//
				// оба значения: ширину и высоту										//					
				if ((advImage.width > 0 && advImage.width < 40) && (advImage.height > 0 && advImage.height < 40))
				{
					bAbleToModify = false;
				}
			}
			
			if (bAbleToModify)
			{
				var strInnerHtml = 	BlockHolder.innerHTML;
				
				// Заменяем текст, написанный крупным шрифтом //
				try
				{
					for (var i = 0; i < 10; i++)
					{
						var regex = new RegExp(">([^<]+[А-Я]{5,}[^<]+)<");
						var strFind = strInnerHtml.match(regex);
						if (strFind[1])
						{
							strInnerHtml = strInnerHtml.replace(strFind[1], strFind[1][0].toUpperCase() + strFind[1].substr(1).toLowerCase());
						}
						else
						{
							break;	
						}
					}
				}
				catch (e) { }
				
				// Заменяем картинки //
				var nPos = 0;
				try
				{
					for (var i = 0; i < ImagesSrc.length; i++)
					{
						var regex = new RegExp("(<img[^>]+src=\"?" + ImagesSrc[i] + "\"?[^>]+>)", "ig");
						strInnerHtml = strInnerHtml.replace(regex, m_strImagePrerender + "$1" + m_strPastPrerender);
						// Удаляем стили изображений //
						regex = new RegExp("(<img[^>]+)(style=\"?[^\">]+\"?)([^>]+>)", "ig");
						strNewInnerHtml = strInnerHtml.replace(regex, "$1 border=\"0\" width=\"95\" $3");
						
						// Очистка свойств таблиц //
						regex = new RegExp("(<table[^>]+cellspacing=\"?)([0-9]{1,})", "ig");
						strNewInnerHtml = strNewInnerHtml.replace(regex, "$1" + "0");
						regex = new RegExp("(<table[^>]+cellpadding=\"?)([0-9]{1,})", "ig");
						strNewInnerHtml = strNewInnerHtml.replace(regex, "$1" + "0");
					}
				}
				catch (e) { }
				
				BlockHolder.innerHTML = strNewInnerHtml;
			}
		}
		else if (m_AdvertisingOpens[strID] <= 16)
		{
			m_ArvertisingTimers[strID] = setInterval("EditAdvertisingBlock('" + strID + "', '" + strBlockToDisplay + "')", 160);
		}
		
		// Скрываем только если не загружен фрейм (реклама во фрейме) //
		
		else if (coll.length == 0 && !m_arrayLoadedFrames[strID])
		{
			var BlockParentNode = BlockHolder.parentNode;
			while (BlockParentNode && BlockParentNode.tagName.toLowerCase() != "body")
			{
				// Если параметр strBlockToDisplay != null, то отображаем иной блок //
				if (strBlockToDisplay)
				{
					var alternativeBlock = document.getElementById(strBlockToDisplay);
					if (alternativeBlock && alternativeBlock.style.display != "block")
					{
						alternativeBlock.style.display = "block";
					}
				}
				
				// Скрытие блока, если в рамке //
				if (BlockParentNode.className == "Arvertising Noframe Dummy" && BlockParentNode.tagName.toLowerCase() == "table")
				{
					BlockParentNode.style.display = "none";
					
					break;
				}
				
				BlockParentNode = BlockParentNode.parentNode;
			}
		}
	}
}

function EditAdvertisingBlockWidth(strID, strBlockToDisplay)
{
	if (!m_AdvertisingOpens[strID])
		m_AdvertisingOpens[strID] = 0;

	m_AdvertisingOpens[strID]++;
	
	if (m_ArvertisingTimers[strID])
		clearInterval(m_ArvertisingTimers[strID]);
		
	var BlockHolder = document.getElementById(strID);
	
	// Если реклама загружается в iframe, то ожидаем окончания 	//
	// его загрузки и прерываем таймер							//
	if (BlockHolder.firstChild.tagName.toLowerCase() == "iframe")
	{
		BlockHolder.firstChild.onload = function() 
		{ 
			clearInterval(m_ArvertisingTimers[strID]);
			m_arrayLoadedFrames[strID] = true;
		};
		try
		{
			if (BlockHolder.firstChild.clientHeight && BlockHolder.firstChild.clientHeight >= (90 * 5))
				m_arrayLoadedFrames[strID] = true;
		}
		catch(e) { }
	}
	
	if (BlockHolder)
	{
		var coll = BlockHolder.getElementsByTagName("img");
		
		var ImagesSrc = new Array();
		
		// Находим все картинки, и если ни одной не найдено, то вызываем функцию снова,	//
		// но не более 5 раз 															//
		if (coll.length > 0)
		{
			var bAbleToModify = true;
			coll[0].parentNode.parentNode.style.paddingTop = "0px";
			
			for (var i = 0; i < coll.length; i++)
			{
				var advImage = coll[i];
				
				// Стиль картинки //
				coll[i].style.marginRight = "8px";
				coll[i].style.marginBottom = "0px";
				coll[i].style.marginLeft = "0px";
				coll[i].style.marginTop = "0px";
				nWidth = coll[i].width;
				nHeight = coll[i].height;
				coll[i].className = "img_preview";
				
				// Расчет для Opera //
				if (nWidth == coll[i].width)
				{
					coll[i].width = 73;
				}
				// Иногда при загрузке высота картинки мала и на выходе получаем 	//
				// тонкую полоску вместо картинки, поэтому делаем проверку			//
				if (coll[i].height == nHeight)
				{
					coll[i].height = (73 / nWidth) * nHeight;
					if (coll[i].height < 73)
						coll[i].height = 73;
				}
				
				if (nWidth == 0 || nHeight == 0)
				{
					coll[i].width = 73;
					coll[i].height = 73;
				}
								
				coll[i].parentNode.parentNode.style.paddingLeft = "0px";
				
				var bSrcExists = false;
				for (var j = 0; j < ImagesSrc.length; j++)
				{
					if (ImagesSrc[j].toLowerCase() == coll[i].src.toLowerCase())
						bSrcExists = true;
				}
				if (!bSrcExists)
					ImagesSrc.push(coll[i].src);
				
				if (advImage.width < 40 || advImage.height < 40)
				{
					bAbleToModify = false;
				}
			}
			
			if (bAbleToModify)
			{
				var strInnerHtml = 	BlockHolder.innerHTML;
				var bChanged = false;
				
				// Заменяем текст, написанный крупным шрифтом //
				try
				{
					for (var i = 0; i < 10; i++)
					{
						var regex = new RegExp(">([^<]+[А-Я]{5,}[^<]+)<");
						var strFind = strInnerHtml.match(regex);
						if (strFind[1])
						{
							strInnerHtml = strInnerHtml.replace(strFind[1], strFind[1][0].toUpperCase() + strFind[1].substr(1).toLowerCase());
							bChanged = true;
						}
						else
						{
							break;	
						}
					}
					if (bChanged)
						BlockHolder.innerHTML = strInnerHtml;
				}
				catch (e) { }
				
			}
		}
		else if (m_AdvertisingOpens[strID] <= 18)
		{
			if (strBlockToDisplay)
				m_ArvertisingTimers[strID] = setInterval("EditAdvertisingBlockWidth('" + strID + "', '" + strBlockToDisplay + "')", 250);
			else
				m_ArvertisingTimers[strID] = setInterval("EditAdvertisingBlockWidth('" + strID + "')", 250);
		}
		
		// Скрываем только если не загружен фрейм (реклама во фрейме) //
		
		else if (coll.length == 0 && !m_arrayLoadedFrames[strID])
		{
			var BlockParentNode = BlockHolder.parentNode;
			while (BlockParentNode && BlockParentNode.tagName.toLowerCase() != "body")
			{
				// Если параметр strBlockToDisplay != null, то отображаем иной блок //
				if (strBlockToDisplay)
				{
					var alternativeBlock = document.getElementById(strBlockToDisplay);
					if (alternativeBlock && alternativeBlock.style.display != "block")
					{
						alternativeBlock.style.display = "block";
					}
				}
				
				// Скрытие блока, если в рамке //
				if (BlockParentNode.className == "Arvertising Dummy" && BlockParentNode.tagName.toLowerCase() == "table")
				{
					BlockParentNode.style.display = "none";
					break;
				}
				
				BlockParentNode = BlockParentNode.parentNode;
			}
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
// Управление блоком Zorkabiz таким образом, чтобы изменить стиль заголовочных ссылок //
////////////////////////////////////////////////////////////////////////////////////////
function EditZorkaBlock(strID)
{
	if (!m_AdvertisingOpens[strID])
		m_AdvertisingOpens[strID] = 0;

	m_AdvertisingOpens[strID]++;
	
	if (m_ArvertisingTimers[strID])
		clearInterval(m_ArvertisingTimers[strID]);
		
	var BlockHolder = document.getElementById(strID);
	if (BlockHolder)
	{
		var coll = BlockHolder.getElementsByTagName("a");
		var nTitleLinksCount = 0;
		
		for (var i = 0; i < coll.length; i++)
		{
			// Назначаем стиль //
			if (coll[i].className.toLowerCase() == "beguntitle")
			{
				coll[i].style.fontWeight = "normal";
				coll[i].className = "a_link";
				coll[i].style.fontFamily = "Tahoma, Arial, Helvetica, sans-serif";
				coll[i].innerText = coll[i].innerText;
				nTitleLinksCount++;
			}
		}
		
		if (nTitleLinksCount < 5 && m_AdvertisingOpens[strID] <= 12)
		{
			m_ArvertisingTimers[strID] = setInterval("EditZorkaBlock('" + strID + "')", 200);
		}
		
		// Если нет ссылок, и отведенное время на проверку закончилось,	//
		// скрываем блок рекламы, чтобы он не висел пустым				//
		else if (coll.length == 0)
		{
			var BlockParentNode = BlockHolder.parentNode;
			while (BlockParentNode && BlockParentNode.tagName.toLowerCase() != "body")
			{
				if (BlockParentNode.className == "Arvertising Dummy" && BlockParentNode.tagName.toLowerCase() == "table")
				{
					BlockParentNode.style.display = "none";
					break;
				}
				
				BlockParentNode = BlockParentNode.parentNode;
			}
		}
		/*
		else
			document.write(BlockHolder.innerHTML);*/
	}
}

/////////////////////////////////////////////////////////////
// Визуализация блока рекламы посредством GET-запроса Ajax //
/////////////////////////////////////////////////////////////
function RenderAdvertisingBlock(strID, nBlock, nMarginTop, nRightIndent, lParam, wParam)
{
	var DivNode = document.getElementById(strID);
	if (!DivNode || !nBlock)
		return;
		
	var UserRequest = GetRequest();
	
	var strURL = "advertising_render.php?a=" + nBlock;
	
	if (nMarginTop)
		strURL += "&mt=" + nMarginTop;
	if (nRightIndent)
		strURL += "&ri=" + nRightIndent;
	if (lParam)
		strURL += "&lparam=" + lParam;
	if (wParam)
		strURL += "&wparam=" + wParam;

	var strResponse = "";
	
	UserRequest.open("GET", strURL, true);
	UserRequest.onreadystatechange = 
	function ()
	{
		if (UserRequest.readyState == 4)
		{
			if (UserRequest.status == 200)
			{
				strResponse = UserRequest.responseText;
				DivNode.innerHTML = strResponse;
			}
		}
	}
	UserRequest.setRequestHeader("Content-Type", "text/html; charset=windows-1251");
	UserRequest.send(null);
}

var m_strImagePrerender = "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-image:url(img/img.left.melt.jpg); background-position:left; background-repeat:repeat-y; margin-right:5px;\"><tr><td style=\"background-image:url(img/img.top.melt.jpg); background-position:top; background-repeat:repeat-x; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px\"><table cellpadding=\"0\" cellspacing=\"0\" style=\"background-image:url(img/img.right.melt.jpg); background-position:right; background-repeat:repeat-y\"><tr><td style=\"background-image:url(img/img.bottom.melt.jpg); background-position:bottom; background-repeat:repeat-x; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px\"><table cellpadding=\"0\" cellspacing=\"0\" style=\"background-image:url(img/img.left.top.jpg); background-position:left top; background-repeat:no-repeat\"><tr><td style=\"background-image:url(img/img.right.top.jpg); background-position:right top; background-repeat:no-repeat; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px\"><table cellpadding=\"0\" cellspacing=\"0\" style=\"background-image:url(img/img.right.bottom.jpg); background-position:right bottom; background-repeat:no-repeat\"><tr><td style=\"background-image:url(img/img.left.bottom.jpg); background-position:left bottom; background-repeat:no-repeat; padding-left:5px; padding-top:5px; padding-right:7px; padding-bottom:7px\">";

var m_strPastPrerender = "</td></tr></table></td></tr></table></td></tr></table></td></tr></table>";