// JavaScript Document
function setLinkList(listContainer, eventType, eventFunction)
{
	var listContainer = document.getElementById(listContainer);
	var newList = document.createElement("ul");
	newList.setAttribute("id", "link-list");
	listContainer.appendChild(newList);
	for(var i=0; i<aAdverts.length; i++)
	{
		if(document.getElementById(aAdverts[i].group)==null && aAdverts[i].group != "" && aAdverts[i].group != "undefined")
		{
			var groupHeading = document.createElement("span");
			groupHeading.className = "listheading";
			groupHeading.setAttribute("id", aAdverts[i].group);
			var newheaderText = document.createTextNode(aAdverts[i].group);
			groupHeading.appendChild(newheaderText);
			newList.appendChild(groupHeading);
		}
		var newListItem = document.createElement("li");
		newListItem.setAttribute("id", "link-list-item" + i);
		var newLink = document.createElement("a");
		newLink.setAttribute("id", "link-list-anch" + i);
		if(i==0)
		{
			newLink.style.textDecoration = "none";
			newLink.style.cursor = "default";
		}
		var newLinkImage = document.createElement("img");
		if(eventType == "onclick") newLink.onclick = createMouseOverEvent(i, eventFunction);
		else newLink.onmouseover = createMouseOverEvent(i, eventFunction);
		newLinkImage.setAttribute("src", "imgs/arrow_right.gif");
		newLinkImage.border = 0;
		var newLinkText = document.createTextNode(" " + aAdverts[i].linkText);
		newLink.setAttribute("href", aAdverts[i].linkHREF);
		newLink.appendChild(newLinkImage);
		newLink.appendChild(newLinkText);
		newListItem.appendChild(newLink);
		newList.appendChild(newListItem);
	}
}

function animateFlash()
{
	var linkcontainers = $("#link-list li a");
	var timer = 125;
	for(var i = 0; i<linkcontainers.length; i++)
	{
		setTimeout("flashElement('" + linkcontainers[i].getAttribute("id") + "',  '#bbbbbb','#ececec')", timer * i)
	}
	setTimeout("setSelectedItem(0)", timer * linkcontainers.length + 750);
}

function flashElement(id, startcolour, endcolour)
{
	var animateItem = $("#" + id);
	animateItem.css("backgroundColor", startcolour);
	animateItem.animate( { backgroundColor: endcolour }, 750);
}


//sets the selected class in the link list
function setSelectedItem(index)
{
	clearSelectedItem(currentAdvertIndex);
	currentAdvertIndex = index;
	$("#link-list-item" + index).addClass("selected");
	$("#link-list-anch" + index + " img:fisrt-child").attr("src", "/imgs/arrow_right_orange.gif");
}

//clears the selected class in the link list
function clearSelectedItem(index)
{
	$("#link-list-item" + index).removeClass("selected");
	$("#link-list-anch" + index + " img:fisrt-child").attr("src", "/imgs/arrow_right.gif")
}

function createMouseOverEvent(index, eventFunction)
{
	if(typeof(eventFunction)!="undefined")
		return function(){eval(eventFunction + "(" + index + "); lastItem = " + index + ";");return false};
	else
		return function(){eval("swapAdvert(" + index + "); lastItem = " + index + ";");return false};
}

function Advert()
{
	//add new parameters in here
	this.image = "";
	this.heading = "";
	this.bodyText = "";
	this.linkText = "";
	this.linkHREF = "";
	this.group = "";
}

//******* This function creates a new advert object and adds it into the Adverts collection (aAdverts array)
function addNewAdvert(image, heading, bodyText, linkText, linkHREF, group)
{
	// create new Advert object (new Advert(image))
	var newAdvertObj = new Advert();
	//set the parameters for the new object
	newAdvertObj.image = image;
	newAdvertObj.heading = heading; 
	newAdvertObj.bodyText = bodyText; 
	newAdvertObj.linkText = linkText; 
	newAdvertObj.linkHREF = linkHREF; 
	newAdvertObj.group = group;
	
	aAdverts.push(newAdvertObj);
}


function fader(p1, index, speed)
{
	var p2 = $("#" + p1.attr("id") + "temp" + index);
	p2.fadeOut(speed, function(){
		cleanUp($(this));
		setSelectedItem(index);
		});
}

function cleanUp(p2)
{
	p2.remove();
}

function setUpFader(p1, index)
{
	var p2 = p1.clone();
	p2.attr("id", p1.attr("id") + "temp" + index);
	p2.css("position", "absolute");
	p1.css("position", "relative");
	p1.css("zIndex", 0);
	p2.css("zIndex", 1);
	p2.width(p1.width());
	var p1pos = p1.position();
	p2.css("left", p1pos.left);
	p2.css("top", p1pos.top);
	p1.after(p2);
}

function swapAdvert(index)
{
	setUpFader($("#advertImage"), index);
	$("#advertImage").attr("src", aAdverts[index].image);
	fader($("#advertImage"), index, 300);
}


function setUpFader1(index, swapItems, mainItemContainer, swapQueue)
{
	var p1 = $(swapQueue).eq(0);
	var p2 = $(swapItems).eq(index).clone();
	$(mainItemContainer).css("position", "relative");
	p1.css("position", "absolute");
	//p2.attr("id", p1.attr("id") + "temp" + index);
	p2.css("position", "absolute");
	p2.css("left", 0);
	p2.css("top", 0);
	p1.css("left", 0);
	p1.css("top", 0);
	p2.attr("swapIndex" , index);
	p2.width(p1.width());
	p2.appendTo(mainItemContainer);
	for(var i=0; i< $(swapQueue).length; i++)
	{
			$(swapQueue).eq(i).css("zIndex", ($(swapQueue).length - i));
	}
	var p1pos = p1.position();
}

function cleanUp2(p1)
{
	p1.remove();
	$(".product-advertimg").eq(0).attr("id", "advertImage");
}

function fader2(swapQueue)
{
	if($(swapQueue).length > 1)
	{
		//var p2 = $("#" + p1.attr("id") + "temp" + index);
		$(swapQueue).eq(0).fadeOut(300, function(){
			$(this).remove();
			setSelectedItem($(swapQueue).eq(0).attr("swapIndex"));
			$(".adverts div").eq($(swapQueue).eq(0).attr("swapIndex")).clone().appendTo(".product-adverttext");
			$(".product-adverttext div").eq(0).remove();
			fader2(swapQueue);
		});
	}
}

function swapContent(index)
{
	//***swapImage
	var flag = $(".mainAdvertImage img").length > 1;
	setUpFader1(index, ".advertImages img", ".mainAdvertImage", ".mainAdvertImage img")
	if(!flag)fader2(".mainAdvertImage img");
}
