var requester = null;

function init()
{
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();
	}

	try
	{
		requester = new XMLHttpRequest();
	}
	catch (error)
	{
		try
		{
			requester = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (error)
		{
			requester = null;

			return false;
		}
	}

	requester.onreadystatechange = onreadystatechange;

	requester.open("GET", "imagedata.xml");
	requester.send(null);

	return true;
}

/* Execute the action which has been associated with the completion of this object */
function onreadystatechange()
{
	// If XMLHR object has finished retrieving the data
	if (requester.readyState == 4)
	{
		// If the data was retrieved successfully
		try
		{
			if (requester.status == 200)
			{
				loadData();
			}
			// IE returns a status code of 0 on some occasions, so ignore this case
			else if (requester.status != 0)
			{
				alert("There was an error while retrieving the URL: " + requester.statusText);
			}
		}
		catch (error)
		{
		}
	}

	return true;
}

/* Update users details after data is retrieved via XMLHR */
function loadData()
{
	var root = null;
	var content = null;
	
	if (requester.responseText.charAt(0) == "<")
	{
		
		var xmldoc = requester.responseXML;
		root = xmldoc.getElementsByTagName('root').item(0);
		content = root.childNodes;

		var cookieStr = "";

		for (var iNode = 0; iNode < content.length; iNode++) {
			var contentNode = content.item(iNode);
			var itemIndex = createContent(contentNode);
			
			var item = contentNode.getAttribute("id");
			cookieStr = cookieStr + item + ":" + itemIndex + ",";
		}

		setCookie( 'IDEA_currentIndx', cookieStr, 300);
	}
	else
	{
		receipt.valid = false;
	}
	return true;
}

function calculateItemNumber(item, maxItems) {
	if (useCookies()) {
	  	return newRandomNumber(maxItems);
	} else {
		return newCookieNumber(item, maxItems);
	}
}

function newRandomNumber(maxItems) {
	// Makes a random, whole number between 0 and 2
	return Math.round(Math.random()*maxItems);
}

function newCookieNumber(item, maxItems) {
var oldIndx = getCookie('IDEA_currentIndx');
var currentIndx = 0;
	if ((oldIndx==null) || (oldIndx=='')) {
		currentIndx = 0;
	} else {
		currentIndx = 0;

		var arr = oldIndx.split(',');
		for (i=0; i<arr.length; i++) {
			var data = arr[i].split(':');
			if (data[0]==item) {
				currentIndx = data[1];
				currentIndx++;
				break;
			}
		}
	}
	
	if (currentIndx>=maxItems) currentIndx=0;

	return currentIndx;
} 

function createContent(contentNode) {
//alert(contentNode.getAttribute("id"));
	var item = contentNode.getAttribute("id");
	var maxItems = contentNode.childNodes.length;
	var itemIndex = calculateItemNumber(item, maxItems);

//alert(maxItems + " " + itemIndex);
	var spaceHolder = document.getElementById(item);
	
	var item = contentNode.childNodes.item(itemIndex);
//alert(item.getAttribute("id"));
	var img = item.getElementsByTagName("image")[0].text;
	var alt = item.getElementsByTagName("alt")[0].text;
	var link = item.getElementsByTagName("link")[0].text;
	var target = item.getElementsByTagName("target")[0].text;
	var text = item.getElementsByTagName("text")[0].text;
	var placement = item.getElementsByTagName("placement")[0].text;

//alert(img);	
	var str = "";
	
	//img
	if (img!="") str = "<img src='" + img + "' border='0' ";
	//alt tag
	if (alt!="") str = str + "alt='" + alt + "' />";
	else str = str + "/>";
	//link
	if (link!="") {
		var strlink = "<a href='" + link + "' ";
		if (target!="") strlink = strlink + "target='" + target + "' ";
		str = strlink + ">" + str + "</a>";
	}
	if (text!="") {
		if (placement=="") placement="bottom";
		if(placement=="top") {
			str = "<table border='0' cellpadding='0' cellspacing='0'><tr><td>" + text + "</td></tr><tr><td>" + str + "</td></tr></table>";
		}
		if(placement=="bottom") {
			str = "<table border='0' cellpadding='0' cellspacing='0'><tr><td>" + str + "</td></tr><tr><td>" + text + "</td></tr></table>";
		}
		if(placement=="left") {
			str = "<table border='0' cellpadding='0' cellspacing='0'><tr><td>" + text + "</td><td>" + str + "</td></tr></table>";
		}
		if(placement=="right") {
			str = "<table border='0' cellpadding='0' cellspacing='0'><tr><td>" + str + "</td><td>" + text + "</td></tr></table>";
		}
		
	}
	spaceHolder.innerHTML = str;
	
	return itemIndex;
}
