var BOARD_HEIGHT = 400;
var BOARD_WIDTH = 778;
var BOARD_X = 100;
var BOARD_Y = 210;

var _currentIntervalId;
var _currentAnchor;
var _currentAdCategory;
var _currentAdIndex;
var _board;
var _boardShadow;
var _blinkingAnchor;
var _blinkingIntervalId;
var _blinkCount;


function initializeQuickSolution()
{
	var qsWrap = document.getElementById("qs-wrap");
	var table = getChildNodes(qsWrap, "table")[0];
	var tbody = getChildNodes(table, "tbody")[0];
	var tr = getChildNodes(tbody, "tr")[0];
	var td = getChildNodes(tr, "td")[0];
	var anchor = getChildNodes(td, "a")[0];
	showBoard(anchor);
}

/**
*
*
**/
function showBoard(anchor)
{
	if (!document.getElementById) return;

	_board = document.getElementById("adBoard");

	var adCategoryId = anchor.innerHTML;
	var adCategory = document.getElementById("ad_" + adCategoryId);
	if (_currentAdCategory && adCategory == _currentAdCategory) return;
	
	if (_currentAdCategory) hide();
	if (_currentAnchor) _currentAnchor.className = "qs-item";
	if (_blinkingAnchor)
	{
		clearInterval(_blinkingIntervalId);
		_blinkingAnchor.className = "qs-item";
		_blinkingAnchor = null;
	}

	adCategory.style.display="block";
	_currentAdCategory = adCategory;
	_adNodes = getChildNodes(_currentAdCategory, "a");
	_currentAnchor = anchor;
	_currentAnchor.className = "qs-item-active";
	
	_board.style.height = 10;
	_board.style.visibility="visible";

	_boardShadow = document.getElementById("adBoardShadow");
	_currentIntervalId = setInterval("rollOutBoard()", 30);
	
	setupNavigation();
}

function blinkAnchor(anchor)
{
	if (anchor == _currentAnchor) return;
	if (anchor == _blinkingAnchor) return;
	if (_blinkingAnchor)
	{
		_blinkingAnchor.className = "qs-item";
		clearInterval(_blinkingIntervalId);
	}

	_blinkingAnchor = anchor;
	anchor.className = "qs-item-active";
	_blinkCount = 1;
	_blinkingIntervalId = setInterval("flipAnchor()", 150);
}

function flipAnchor()
{
	//alert("a");
	_blinkCount += 1;
	if (_blinkCount > 5) 
	{
		_blinkingAnchor.className = "qs-item";
		clearInterval(_blinkingIntervalId);
		_blinkingAnchor = null;
	}
	else
	{
		if (_blinkingAnchor.className == "qs-item-inactive") _blinkingAnchor.className = "qs-item-active";
		else _blinkingAnchor.className = "qs-item-inactive";
	}
}

function getChildNodes(parent, tagName)
{
	var nodes = new Array();
	for (index = 0; index < parent.childNodes.length; index++)
	{
		var tag = parent.childNodes[index].tagName;
		if (!tag) continue;
		if (tagName && tag.toLowerCase() != tagName) continue;
		nodes[nodes.length] = parent.childNodes[index];
	}
	return nodes;
}

function rollOutBoard()
{
	var height = parseInt(_board.style.height.replace("px", ""));
	if (height < BOARD_HEIGHT) 
	{
		height += 30;
		_board.style.height = height;
	}
	else 
	{
		clearInterval(_currentIntervalId);
		_boardShadow.style.visibility="visible";
	}
}

function hide()
{
	clearInterval(_currentIntervalId);
	if (!_currentAdCategory) return;
	_currentAdCategory.style.display="none";
	_board.style.visibility="hidden";
	_boardShadow.style.visibility="hidden";
	_currentAnchor.className = "qs-item";
	_currentAdCategory = null;
}

function setupNavigation()
{
	_currentAdIndex = 0;
	setupArrows();
	
	if (_adNodes.length == 0) 
	{
		document.getElementById("currentAdIndex").innerHTML = "0";
	}
	else
	{
		_adNodes[0].style.display="block";
		for (index = 1; index < _adNodes.length; index++)	_adNodes[index].style.display="none";
		document.getElementById("currentAdIndex").innerHTML = "1";
	}
		document.getElementById("currentAdCount").innerHTML = _adNodes.length;
}

function nextAd()
{
	var nextAdIndex = _currentAdIndex + 1;
	if (nextAdIndex >= _adNodes.length) nextAdIndex = 0;
	_adNodes[_currentAdIndex].style.display="none";
	_adNodes[nextAdIndex].style.display="block";
	_currentAdIndex = nextAdIndex;
	setupArrows();
	document.getElementById("currentAdIndex").innerHTML = _currentAdIndex + 1;
}

function previousAd()
{
	var previousAdIndex = _currentAdIndex - 1;
	if (previousAdIndex < 0) previousAdIndex = _adNodes.length - 1;
	_adNodes[_currentAdIndex].style.display="none";
	_adNodes[previousAdIndex].style.display="block";
	_currentAdIndex = previousAdIndex;
	setupArrows();
	document.getElementById("currentAdIndex").innerHTML = _currentAdIndex + 1;
}

function setupArrows()
{
	if (_adNodes.length == 0 || _adNodes.length == 1)
	{
		document.getElementById("leftArrow").className="inactiveArrow";
		document.getElementById("rightArrow").className="inactiveArrow";
		
		document.getElementById("leftArrow").removeAttribute("href");
		document.getElementById("rightArrow").removeAttribute("href");
	}
	else if (_currentAdIndex == 0)
	{
		document.getElementById("leftArrow").className="inactiveArrow";
		document.getElementById("rightArrow").className="activeArrow";
		
		document.getElementById("rightArrow").href="javascript:nextAd(this)";
		document.getElementById("leftArrow").removeAttribute("href");
	}
	else if (_currentAdIndex == _adNodes.length - 1)
	{
		document.getElementById("leftArrow").className="activeArrow";
		document.getElementById("rightArrow").className="inactiveArrow";
		
		document.getElementById("leftArrow").href="javascript:previousAd(this)";
		document.getElementById("rightArrow").removeAttribute("href");
	}
	else
	{
		document.getElementById("leftArrow").className="activeArrow";
		document.getElementById("rightArrow").className="activeArrow";
		
		document.getElementById("leftArrow").href="javascript:previousAd(this)";
		document.getElementById("rightArrow").href="javascript:nextAd(this)";
	}
}

function captureAdClick(anchor)
{
	var adId = encodeURI(anchor.id);
	var category = encodeURI(anchor.parentNode.id.substring(3));
	var url = encodeURI(anchor.href);

	var children = 	getChildNodes(anchor);
	var imageUrl = "";
	var title = "";
	for (index = 0; index < children.length; index++)	
	{
		if (children[index].tagName.toLowerCase() == "img") imageUrl = encodeURI(children[index].src);
		else if (children[index].tagName.toLowerCase() == "div") var title = encodeURI(children[index].innerHTML);
	}
	
	var action = "?request=captureadclick&app=agr";
	action += "&qsAdId=" + adId;
	action += "&qsCategory=" + category;
	action += "&qsUrl=" + url;
	action += "&qsImageUrl=" + imageUrl;
	action += "&qsTitle=" + title;
	
	var xmlhttp;
	if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
	else if (window.ActiveXObject) xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	else return;
	if (!xmlhttp) return;
	xmlhttp.onreadystatechange = handleQuoteResponse;
	// Use POST because no time for finding how to disable IE caching of GET
	xmlhttp.open("POST", action, false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlhttp.send(null);
}
