/**
 * @author Greg Robbins
 */
//alert("js OK");

function addEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla 
// By Scott Andrew 
{
  if (elm.addEventListener) { 
    elm.addEventListener(evType, fn, useCapture); 
    return true; 
  } else if (elm.attachEvent) { 
    var r = elm.attachEvent('on' + evType, fn); 
    return r; 
  } else {
    elm['on' + evType] = fn;
  }
}

function dropEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla 
// By Greg Robbins :P 
{
  if (elm.removeEventListener) { 
    elm.removeEventListener(evType, fn, useCapture); 
    return true; 
  } else if (elm.detachEvent) { 
    var r = elm.detachEvent('on' + evType, fn); 
    return r; 
  } else {
    elm['on' + evType] = null;
  }
}

// climb up the tree to the supplied tag.
function ascendDOM(e, target) {
  while (e.nodeName.toLowerCase() != target && e.nodeName.toLowerCase() != 'html')
  {
  	e = e.parentNode;
  	//alert(e.nodeName);
  }
  return (e.nodeName.toLowerCase() == 'html') ? null : e;
}

function fetchTarget(e)
{
	if(window.event && window.event.srcElement)
	{
		return window.event.srcElement;
	}
	else if(e && e.target)
	{
		return e.target;
	}
	else
	{
		return;
	}
}

function cancelClick()
{
	return false;
}

function findPos(obj) {
	curleft = curtop = 0;
	
	while(obj.id != "wrapper")
	{
		curleft += obj.offsetLeft;
		curtop += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return [curleft,curtop];
}

function imgSwapper(e)
{
	target = fetchTarget(e);
	newImg = target.src.replace(/(img_prod_sm)/, "img_prod_lg");;
	newTitle = target.alt;
	
	imgObj = document.getElementById("mainImg");
	imgSubtitleObj = document.getElementById("mainImgSubtitle");

	//newImg = newImg.replace(/(img_prod_sm)/, "img_prod_lg");
	
	imgObj.src = newImg;
	imgObj.alt = newTitle;
	imgSubtitleObj.innerHTML = newTitle;
}

function setImgSwappers()
{
	imgThumbsObj = document.getElementById("imgThumbs");
	if(!imgThumbsObj) return;
	imgArr = imgThumbsObj.getElementsByTagName("IMG");
	for(i = 0; i < imgArr.length; i++)
	{
		addEvent(imgArr[i], "click", imgSwapper, false);
	}
}

function positionSubMenus()
{
	allUls = document.getElementsByTagName("UL");
	for(i = 0; i < allUls.length; i++)
	{
		if(allUls[i].className.match(/sub/))
		{
			myUl = allUls[i];
			//eval("var " + myUl.id + "_obj = new Object;");
			eval (myUl.id + "_obj.rollState = false;");
			
			parentLiId = myUl.id + "_parent";
			parentLiObj = document.getElementById(parentLiId);
			//alert(parentLiObj.nodeName);
			addEvent(parentLiObj, "mouseover", rollOnMenuParent, false);
			addEvent(parentLiObj, "mouseout", rollOffMenuParent, false);
			posParent = findPos(parentLiObj);
			myUl.style.left = (posParent[0] - 1) + "px";
			myUl.style.top = (posParent[1] + parentLiObj.offsetHeight + 1) + "px";
			addEvent(myUl, "mouseover", rollOnMenu, false);
			addEvent(myUl, "mouseout", rollOffMenu, false);
		}
	}
}

function rollOnMenuParent(e)
{
	target = fetchTarget(e);
	myUlId = target.id.match(/(sub_([0-9]+))_parent/)[1];
	//eval("alert(" + myUlId + "_obj.rollState);");
	myUl = document.getElementById(myUlId);
	myUl.style.display = "block";
	eval(myUlId + "_obj.rollState = true;");
	eval(myUlId + "_int = setInterval(\"checkRollOff('" + myUlId + "')\", 500)");
}

function rollOffMenuParent(e)
{
	target = fetchTarget(e);
	myUlId = target.id.match(/(sub_([0-9]+))_parent/)[1];
	myUl = document.getElementById(myUlId);
	eval(myUlId + "_obj.rollState = false;");
}

function rollOnMenu(e)
{
	inittarget = fetchTarget(e);
	target = ascendDOM(inittarget, "ul");
	//alert(target.id);
	myUlId = target.id.match(/sub_([0-9]+)/)[0];
	eval(myUlId + "_obj.rollState = true;");
}

function rollOffMenu(e)
{
	inittarget = fetchTarget(e);
	target = ascendDOM(inittarget, "ul");
	//alert(target.id);
	myUlId = target.id.match(/sub_([0-9]+)/)[0];
	eval(myUlId + "_obj.rollState = false;");
	
}

function checkRollOff(rollUlId)
{
	eval("rollState =" + rollUlId + "_obj.rollState"); 
	//alert(rollState);
	if(rollState == false)
	{
		eval("clearInterval(" + rollUlId + "_int)");
		myUl = document.getElementById(rollUlId);
		myUl.style.display = "none";
	}
}










function addAllEvents()
{
	setImgSwappers();
	positionSubMenus();
}

addEvent(window, "load", addAllEvents, false);
